HISE Logo Forum
    • Categories
    • Register
    • Login

    Storing data in widgets

    Scheduled Pinned Locked Moved General Questions
    26 Posts 3 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • toxonicT
      toxonic
      last edited by

      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! :-)

      1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey
        last edited by

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

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        toxonicT 1 Reply Last reply Reply Quote 0
        • toxonicT
          toxonic @d.healey
          last edited by

          @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.

          1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey
            last edited by

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

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            toxonicT 1 Reply Last reply Reply Quote 0
            • toxonicT
              toxonic @d.healey
              last edited by

              @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.

              d.healeyD 1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey @toxonic
                last edited by

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

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                toxonicT 1 Reply Last reply Reply Quote 0
                • toxonicT
                  toxonic @d.healey
                  last edited by toxonic

                  @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.

                  1 Reply Last reply Reply Quote 0
                  • toxonicT
                    toxonic
                    last edited by

                    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�
                    
                    1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey
                      last edited by

                      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.

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      toxonicT 1 Reply Last reply Reply Quote 0
                      • toxonicT
                        toxonic @d.healey
                        last edited by

                        @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! :-)

                        d.healeyD 1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey @toxonic
                          last edited by

                          @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.

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          toxonicT 1 Reply Last reply Reply Quote 0
                          • toxonicT
                            toxonic @d.healey
                            last edited by

                            @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?

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @toxonic
                              last edited by

                              @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?

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              toxonicT 1 Reply Last reply Reply Quote 0
                              • toxonicT
                                toxonic @d.healey
                                last edited by toxonic

                                @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. ;-)

                                1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey
                                  last edited by d.healey

                                  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?

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

                                  toxonicT 1 Reply Last reply Reply Quote 0
                                  • toxonicT
                                    toxonic @d.healey
                                    last edited by

                                    @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.... :-/

                                    1 Reply Last reply Reply Quote 0
                                    • d.healeyD
                                      d.healey
                                      last edited by d.healey

                                      What do you want the combobox to do?

                                      Will you need to change the loopranges from the interface?

                                      Libre Wave - Freedom respecting instruments and effects
                                      My Patreon - HISE tutorials
                                      YouTube Channel - Public HISE tutorials

                                      toxonicT 2 Replies Last reply Reply Quote 0
                                      • toxonicT
                                        toxonic @d.healey
                                        last edited by

                                        @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.

                                        1 Reply Last reply Reply Quote 0
                                        • toxonicT
                                          toxonic @d.healey
                                          last edited by toxonic

                                          @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

                                          1 Reply Last reply Reply Quote 0
                                          • d.healeyD
                                            d.healey
                                            last edited by

                                            We're going around in circles. But we'll get there! :)

                                            Why do you need to store data at all? Why can't you just hardcode the values?

                                            Libre Wave - Freedom respecting instruments and effects
                                            My Patreon - HISE tutorials
                                            YouTube Channel - Public HISE tutorials

                                            toxonicT 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            50

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts