Storing data in widgets



  • @toxonic

    okay, after hours of ripping off my hair, i finally got it managed to get it working for 5 presets for a knob.
    but although i have set the Panel to saveInPreset, the values are not persistent after relaunching HISE. any ideas?
    here's a snippet:

    HiseSnippet 1062.3ocsV80aaaCDmJNrsVcdnEnO0GFD5SN.oAR9+ACE0MNICdYIwXtKn.AAFzxzwbQhzPhNyFE8w88ZeT166k8MX6HkjkriiSfABeR7t62oe2wi2wNABWZXnH.Yj+yyFSQFeGt6LtbTqQDFG09Pjwawckh.ZuNAzPprWaduNDN0qmsC5fYiIggzAHCib+jxdi7aizq+8iGP7HbWZpHD5BAyk9KLelLUZmlmv77NlLf9YleFqqzrsqf2R3Il.bKG1FMl3dC4Z5YDkYagQFO6nALfYckDIMDYr8AhAy5NR7G7H6ufEx56QUabPcAGEI9Xg2.EiURQsFw7FzIIGDh.uzIMijKJi7F7orAr4xSyLuRqvJEQ17gwVqidNYom8imdFYn21Qz603ttArwxTMJt8RbatjFLj.GAYoUjsnsNMGtk.rfK2ymbC83.XybDEqVwYWKmp024GKXVvDNHBkV2RBrZI76KNPL0w5CVIvulJAwiEbXSw2M2h2ovlh7Dtn+8iRqcID5pr6GRj5kv3Nh5dSORP.YF.LxDEtKHdSnEWNZRr6xqzJJXx3dLN0Z3DtqjI3VBtlXJBDH7J5l722EfCNbmBlesfoErTdaplpwQelep06sb.+mW+2tb5UfYZzJYwLLLwXsMJZ9MMiVaxRgJlYsHdd8gqGEWjv6DGVqJvlyz0Gb4Shr6jKuTakJ3TYu75+aZfL8gBhL0IqNPVlfJGlg+mIjzy4E2w7ql4M+lo0xpFNbk5hclGMXkpU8fBVGvh7I98oAI4nDCgKiKdaGe+21y1LxMJ2jwPAuMmIOeLkee8.PwITnaPtXVAeI08B993dAc8XCnAHFbk+4X8QCRS339q+0O7m+yGQKCtPRiD0QsF6KvQG6If+c7O287ytzdu516qV0aTsRoxkpu+tV16U1wVuJUtQEmFUanjUKRlSkx1UcbpTWaWCM1FUqsekFMpVVIqQsEs6JzcX2qhYWRcglfuDOuLYg.DVuoI52ZeHQRTcMiSYPZbLMPxTmPFGRuEFGE0CMO9PZ3MRwXcNMtHENTevr5zzenUyYoap0DkwO3GLAmwOeJieZ9klgjaos4QCeAVuUV+9rGYpI06+MMKKOooOAzgMvvFlj5Gpv4XVxrrYEypvz46LsAl4IFLwiHWbPnZ5erB39xBSbTSU3gL4rruN3IY53iktuF2gIcGsZ9t0J3KTB8Ty232ZT.ezvgTWYJY2Fe7Wd5eXA5WESjL90mRjALUIwYS76BO8xkBLgCknpdZPwmBpdusZuJyzkxGn27evJVoiZuQrRmDkHehafnmazEa0qYdgVBvIt9Qc4wmp1aM+tLFaumMxGdjUOWWUp38.2WMlRa.lxa.lJa.lpa.lZa.l5a.lFqEi58seZhT3GcMADz4HcOUCii3DnJSWQh9efqPiUr�
    


  • okay, slowly i'm getting into this thread:
    https://forum.hise.audio/topic/52/variable-persistence
    but somehow, i seem to miss something. i understand now, that i have to reacall the values, stored persistently inside a panel, within the onControl Callback. i tried to load the values into an array and print them out via console, but they are still the initial array values.

    function onControl(number, value)
    {
        if (number == Panel1)
        {
            array = Panel1.getValue();     //assign values to array
                Console.print("data loaded into array");
    
    // check loaded values -> BUT GET INITIAL VALUES OF ARRAY!? 
                 for (i=0;i<5;i++)
                {
                    var printval = array[i];
                    Console.print("array index " + i + ": " + printval);
                }
        }
    }
    

    another question: does it make a difference, if i use a panel, that i created with the interface designer and enabled it's property "saveInPreset" there, instead of creating it via script like this? and what do the both "0" define?

    var Panel = Content.addPanel("Panel", 0, 0); 
    Panel.set("saveInPreset", true);
    

    Here's a snippet, what i've got so far:

    HiseSnippet 1145.3ocsV80SajCD2a.2ir83Tqz8TexhmRD+QYoj1RygZJA3TNNfnK8PsBghL65.VrqcztNzDg3CRe69ncuduceCtar2cytIDBUQBiRH1y7yyuY73wSqPoKKJRFhrJ9og8XHqeD2dnPcUiqnbAp4dHqWgaqjgrNsBYQLUmlhNsnBlemJNncG1iFEw7PVVK7qZ8sJtHxL92OrK0mJbYYKgPmJ4tremGvUYq1p9gbe+CndrOwCxo8V0a5JEMj9x9.2V.WA0i5dM8R1wTsZEvHqmsuGGXVaEUwhPVKtqzaX6qjeUDq+o7H9E9L8DGTaXihW9.oumlw5UQMth660JMFDgfcoUVDYg3HxOiOh6wGsdVj4EFAjLD4iGVElE8bxSuJe+zyJG8VLlduD21Mj2SkIQysmiaJTrvtT3HHOsh0EU3KKhaHAMDpMBnWyNHDlLBQopa4rFwo5aKWaYa3XHRQtgFRZHCtPtqbfCYGRJ3KYJX4dRALozJizXkwQdnPdwCixHcBDlbrGFRrXCFs1zvP5PP4yprQ00l3y4fNw+wE9bAizsuvUwkBhTXrr1BgR+Rtoa+Z.C76yJur8sKaSfg1DCLbIw8zr4TsNkJSVm3.VnngBmM3bPMCZ8ZwrbinTkM5n47cFNMyngFUByZP88u.x9KMNgKOCGaDSmsyUL0yRXZlaclQKsyoieEM1MyQF7XNQtDgo6HSRP8Fli+GKUrSDkJaeqcQ66rISJpa2oJKYy7YgSUrtDS3r.VRzO3BVXZLJ87m2kjHgrSZrpbrnDMzizjv6EKqkoid.1JR5y1nWHWGp7nJJwWBU.8HvBx38YkIQQ5JCIk36ToF+WpViu5pkGW9sSndRZqwHf2.7JNCkeds6q4DTJ1S3BO1.xJjUIb3yJu27yz8qbsw1j6ri+F9OTXZ7Je3GtxW9BytwIR4TTJZJ3pS5wDOT8PTR1GTYbgjiP3WJScweJotXaetGKDwgxe+.1jGiLmtIu07We6a+yGPSBd4zhp5yRC1kvwmqofWG+asO4XSAGRxWuqhY33r8lU1dysGsd0yQ2y.uHw.o2CL1343QWKFiivXo5n+r4dPph9QfDuFhD8XgJtNHasG6F3003mDJh2iEcsR1yDVRtTBmKOZfYPlAI0GlM4M0Q41mm8nwnb6yGysO0+b8H5Mrlh3dI.VW.pHH+ZZcgH8l1vmC+hbhveHZJV8QCbY19uY48gCqGPAYXKLLgqXAQZbN1aZ+Z6srqBshbumVgG3kd88opwe0W2pSh.n5wXOupeBUDwUCy2JzSRq.euz8k3Vbk6USmuElBegDrmZ9lzX0x3861k4pxH6h3C97SeWTn+P1WwEWdDUEx0oDG2OnMzmoKCXh.Rf0EsrJnKuDOuhdtNxzlI7LS9OXjHzQO2JQnSpPT.0MT1wM9Zut0skLq.bRX5fsH9H8bxna5XbkMpfBfNJ635pCEqCbe5X1bNv754.yVyAlpyAl2LGXd6bf4cyDitY9O1WIChul.KzZeSEWKq8ETHKyjQh9eTQDSV.
    

    thanks in advance! 🙂



  • What's the end goal here? Are you trying to store the values of knobs in a panel?



  • @d-healey
    Yes, thats it. I know, i could use the sliderpack too, but i'm interested in using panels as storage objects, mainly to learn more about storing data in widgets in general.



  • My next question. Why do you want to store knob values in panels? They are stored in presets by default anyway.



  • @d-healey
    Yeah, but as far as i know, only a single value. I want to store an array of different values and recall these values according to a "preset" called by a ComboBox.



  • @toxonic Each preset can have a different value, so if you want to store multiple values you just need to use multiple presets.



  • @d-healey
    You mean each HISE preset? to clearify: in the end, i want to store different sets of start and end points of a Sample Loop an recall these on demand, in order to get different ranges of the loop to rearrange it. Finally i'd like to export a plugin.

    edit: regarding the fact, that HISE' native file format is called "preset", my choice of words might be a bit confusing. maybe i should call it "snapshots" or whatever.



  • all right, i know now, what i've done wrong. in the custom onControl callback for the knob, i did overwrite the values in the panel with the initial values of the array. i made a workaround, using a "Snapshot" button to store all values in the panel.

    HiseSnippet 1257.3ocsW0saaaCElJIbM1cdnEnWMrKH5U1.owRNw4GXDTu3jL30kDu4thBzEXvHQGSDIRCI5jXTzK2a1dA1ywtYuAaGRIYI6ZGGDfnfXYd9SeeGd3QG2IT5xhhjgHqBue7PFx5awcGKTCZMfxEn1Ggr9dbWkLj0qSHKho50VzqCUv76Y6fNb7PZTDyCYYs5Oos2pvZHy0+91Co9TgKKSDB8AI2k8K7.tJSZmlui66eB0i8ddPNq2tYaWonkzWNBv1pXazPp60zqXmQ0lsBFY8MG6wAj0UQUrHj0ZGJ8F2cf7VQr8efGwuzmoW3f5BAJV7IReOMh0RQsFv885jlChPPT5jkQVMNi7J7obO9D4YYlWXTPx7He9vZk6CdN4gm8CGdV4f2Zwv6k3ttg7gpLMZr8bbaghE1mBaA4gUrsnU9q0vsjfEB0lAzqYmDBKl3Q4Z0s2f3XaWoQohv1PjhbCMjzRFbo7P4cNjCHoNeESAhGJEvhxudhEudZOemPd4h8xncFOL0XK1kX0y3SWAcXz.oZgdkZfwOsGzvP5Xv7OYuY8Ml4+KZPpV0i0mNxWGd+QrnRE0+UsJwc.UbEKwciNBUQtheCSP3BO1cjRE4BetfQ5OR3p3RAQJL7TirPoeY2TXsQb.pTp3mKUj.WZfEGjCxR4Zl7AsckqPdCwAveAyS+SFKu.L0DEP9WZnA48lo2LRK0fiVTe+KgSVkmFdUZLgqfsjqAUDkLkpttxPOt3JsnbjddbdBAtedWHOoiIV7yB35EZxZ.mF2wIAioUVBayUMNeFOK3xyZcOOBXZxVO.NxPcQ27HYZc0R3HuOobLqN3.hSkjZ7LRY38xHUVM774zLXQGtbH8LohctnbkhetXgheoHYVU86OWcIAymENW05V24zTsZHyMWpqenLN2AlBIVZnZzvoPUZdSLJ3RVXZRSGtzCnIoprCAMzOHnG3zMYwKtIa92A3FmYyYnTzVvUmOjIVTqWTx1g9cDI3ELUYZA+cIsf65y8XgHNzo8YXSEKxPkjWqQ9y+4ueKZVmKk1+VSQiuqiioapy+A9m6d9YPOJ6csiups+d101pVsMH1atWrHGm8qYues80hpUW+4t6ru9ZOP5N0c1ZWilYr9BzWgmWjfmzCGFH8b7jyJSQI35UMQKJeb3HkRJLAnHNsvbV+gqeu8QTEU+5sjjLj3GxBUb8dp0Qraf4FheYWA7QrnqUxglcgjCEv2W59vcYOvcaNNaAQi9Iw4YKcKIWbVOeb9glQzaXsEwSIAndE3.f71zClQ5f1xmCeibtveL5lzJSqUmC.V5dPFLZ5lGFNMCnfNrEFVvUr.3AWAG2zwoX78ZI22J491I2qitk6oFjE4ecpbC9gr2lK8zHOtNqIO5TY.DHZ3Xc1A80Cx.iSI8F4SUSOikdvxDEP2hoFlQOvhHhqFmevymjAudnv8k3Nbk6f4i2UlCdgh9mZ7lLFaI7w86ybUYfcM7Ie7oelUzuIGofgENkpB45ZyyFEzElp2kAHQ.Gpz8sgBBsql01505LSWlvyr3+fqDkN50VIJcRUhBntgxdtw8gzCJutQBfIg42KT.epdMYR2KLFZmhBf42645pSEuAv978o1ivmsdD9r8ivm5OBe14Q3ytOBe16d8Q+Sm9wQJYP7wDPPmiMuEvx5XAEpxLUjn+GPaAUA5�
    


  • Yes unfortunately the HISE project file (.hip) is also called a preset which is confusing. I'm referring to the user presets and the preset browser. This is where every widget, including panels, have their data stored. So if you are just wanting to store the values of knobs I'd use the preset system. Add a preset browser floating tile to your interface and you're pretty much done.



  • @d-healey
    ah, okay - i must confess, i didn't think about that possibility and i didn't deal with the preset browser yet.
    could i assign single keys from the keyboard to single presets, so i could for example hit
    C4 on my keybord to play range from sample 0-40000 of the loop,
    C#4 on my keybord to play range from sample 50000-60000 of the loop and so on?
    would the performance of loading the presets be good enough for realtime tasks like that?
    thank you for your reply, this was helpful either way! 🙂



  • @toxonic Preset just store and recall the values of widgets. For key switches you will need to script. If you want different key switches for different presets then you can use a combination of scripting and widgets.



  • @d-healey said in Storing data in widgets:

    If you want different key switches for different presets then you can use a combination of scripting and widgets.

    does "preset" in this case mean: preset via the presetbrowser? so you can control the selection of presets via keystrokes, (...but i need to script that (which i didn't find a method for yet))?
    or am i back to the idea of storing widget values in panels?



  • @toxonic

    does "preset" in this case mean: preset via the presetbrowser?

    Yes, whenever I talk about presets this is what I mean, unless I specifically say otherwise. 🙂

    so you can control the selection of presets via keystrokes

    No. User selects the preset from the preset browser. Do you want different keyswitches for different presets?



  • @d-healey

    Yes, whenever I talk about presets this is what I mean, unless I specifically say otherwise. 🙂

    okay, do not mind me, i wasn't sure! 😉 and if i'm honest, i don't really know what you mean with that sentence

    If you want different key switches for different presets then you can use a combination of scripting and widgets.

    since this somehow contradicts with

    No. User selects the preset from the preset browser.

    or did i misunderstand that?
    but yes, i want to different presets with different keyswitches on my midi keyboard. 😉



  • The user selects a preset from the preset browser with the mouse - not the keyboard.

    i want to different presets with different keyswitches on my midi keyboard

    I don't quite understand what you want. You said this previously:

    C4 on my keybord to play range from sample 0-40000 of the loop,
    C#4 on my keybord to play range from sample 50000-60000 of the loop and so on?

    Will those keyswitches, C4 and C#4, be used for all presets or do you need each preset to have totally different keyswitches?



  • @d-healey
    uhh, i really seem to express myself very awkward, i'm sorry for that. 😕
    i want to store different loopranges (AudioWaveForm) to different presets. by pressing a key on my midi keyboard i want to select a specific preset and play the looprange saved within that preset.
    C4 -> looprange a (saved in preset 1)
    C#4 -> looprange b (saved in preset 2)
    D4 -> looprange c (saved in preset 3)
    ....and so on
    got me now? thanks for your patience with me, my english is quite poor and my HISE knowledge as well.... 😕



  • What do you want the combobox to do?

    Will you need to change the loopranges from the interface?



  • @d-healey
    okay, my first problem was storing data (start and endpoints and maybe other values) persistenly and recalling it. the combo box was just to select the.... how should i call it..... snapshots? it was only for experimenting purposes, it seemed quite handy to me for that task.



  • @d-healey said in Storing data in widgets:

    What do you want the combobox to do?

    Will you need to change the loopranges from the interface?

    later i wanted change this to control via midi keyboard


Log in to reply
 

13
Online

1.6k
Users

4.6k
Topics

42.7k
Posts