HISE Logo Forum
    • Categories
    • Register
    • Login

    SliderPack for variables storage: strange behaviour

    Scheduled Pinned Locked Moved Scripting
    16 Posts 3 Posters 192 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.
    • d.healeyD
      d.healey
      last edited by

      Can you make a minimal snippet that demonstrates the issue?

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

      G 1 Reply Last reply Reply Quote 0
      • G
        Giuseppe @d.healey
        last edited by

        @d-healey do you mean a simplified version of my script?

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

          @Giuseppe Not really, I mean a snippet that contains only the necessary components/script to demonstrate the problem.

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

          G 1 Reply Last reply Reply Quote 0
          • G
            Giuseppe @d.healey
            last edited by

            @d-healey hopefully this one is a bit clearer:

            HiseSnippet 5744.3oc6c01caajcFz1LYEadwIM6oae4C33ydRkVqXwKA3awI6RIJIatQuUQYs1MmrLPjiDQCH.W.PYoj3sd6o+I525G2Ot8ef+IjeB8mP9GzNC.H4.QRQRMyfPMsL4HS.Lycdl68NOyfKuCvAtNMQddNtJoxbzkcQJodmz0uz1uc01Fl1J01TI06ktqQKuFcLsM6XXorwkcM77PsTRk5tOgTlTKcOkfO+3uYCCKC6lngmRQ4XGylncL6X5O7rGT4KLsr11nE5HyNTkVuRslN1Ucrb5gwycSmUoqQyuw3LzdFjhcmzJO0vqsRpeU5b4NsYorYKookOqggVKCCc.oUFcZgSalOa4rsNIeV7+UPI0asUKSeG259F9HOkT2aCmVWVusyKsCafiM8LOwBQN.Tpia4vSusiUKRWjbVkpsMsZcPeEkmBVJGLTsc2P01GkdWyVlCN+P028Ctf5vZPq.Scm3v6twfGPCurTvaLPJEEjtWHj9fz0a5Z10e3UH34uJcMaej6oFX6DMTBKqxc92amtpCtD19Opiw2f11EevfZrLjMa1UU0KlckGm4bCWUyGmAax77UIG3g6InF3uYZfAsm5mq1WRmg7q5zoqiM9fkevUJ2Cvx5Jm5QdHb4NOr2+fUAbIHeVasMbcdomo8Ypazy2G2vYx3hNSE6f1vr0EON7HOKG+nCi9r1ZGr9dasSc0OQcWyKPtqpRT6pGf8qU+X0setJtyiPDoMryDTiFAEehcDpx7fHHhaqcq87sND+uGhcdUqirPM8GB2gMvgqW8Kpiqtgqqwk3l3KGea3hkRCOjUitvCVY0LpS9yzpeNFquFi0Wmw5mmw5Wfw5Wjw5Whw5Wlw5CYYU.r5ABr5BBr5CBr5DBr5EBX2vuJfqvz1xzFodZO6l9lN1pN1CJEQHtNVK2ruDVESYX0CsRluKyRled1GmYoWhmB.sr4mEiF4QVH6y7auRlkvkaoXW5KM+JBq5wDwrLg9dokLe3Cw+yqxrzflYXIHTtKEwqhImh2Jl1sPWr+oCgGovigButkYKj6534OvkeY7DGQBLn3QrzXge0ZdV+ZF.k08WN2CopXlkNZqmeTip8bcwsbi5Fc5ZgBmvvGcg+CVU8AXhc0G7vkipzCgUH0itV0wMNcUdP.WMAR35sqge6G45zyt0x8A4mT3WEWXXCjmCtY65ZhMu8KF4JN1+yHWmFFVVMHlykoPti8Sw8Jxz6M194MphMwVdwpa8msQ3TJD0MtH08wyIek4BCLcAliFqGXWiZfu5KGErws3qs1enGBqqUa4btqgoZGjOdZcKGUSa0d1p3YlvSJhcDMr9T0fRZDdtuEeNDw+Coh6yNpdHUxeIJq81eO0yMQ3K2BcJdAh9lmiWpFd.fpqIpSW7RaVU047ywJjfZYf+qEJTd1XO9ttNdny5gGCXZ6nhUYFjugdzU8wGnWpWaumryV80LgJf397WaQiFCbUs4fABuBOtLnku9AWeWlwNzJZPaUb+3DhkezwyjFKnsdEd4Aq2pk5oWndRzJCFtvfgdAjpiMkYgItBjwTVxJQtNgkaNDVtoILs4PXZSSX5ygvzmlvxOGBK+zDVg4PXEllvJNGBq3zDVo4PXkllvJOGBq7TDFjc1EFYkIWuvliQ.vzFA.ywH.XZi.f4XD.LsQ.vbLB.l1H.XNFA.SaD.LGi.ffQ.TRa8cBmQq9juKmwxiMw0YMGzWLKCMNHCcNHi7bPFE3fLJxAYThCxnL6x3Zugn4fsgYYvA+TfC9o.G7SAN3m1+VjF8FjF+RqG8lhFv3DewgCN8nKDbvs574plwWSH4V0hG0lAqIaBjYAKDOnLMpMk6VbxZEZgvIovGwbLOjBeDRs.+jwXbxMCFmb7v3jiKFmb7w3jiKFmbM3iPlnwQaFLNZ7v3nwEiiFeLNZbw3n0fOBYhFG8Yv3nyCiiNWLN57w3nyEiidC9HjIZbxOCFm77v3jmKFm77w3jmKFm7M3iPlnwovLXbJvCiSAtXbJvGiSAtXbJzfOBYhFmhyfwoHOLNE4hwoHeLNE4hwoXC9HjIZbJMCFmR7v3ThKFmR7w3ThKFmRM3iPlnwo7LXbJyCiSYtXbJyGiSYtXbJ2fOBYRFmfXrNEiCjkCFGhP3jT3iXNlGRgOBYhFmYHBA.OhP.vkHD.7IBA.WhP.viHD.WSDBfYHBA.OhP.vkHD.7IBA.WhP.viHD.WSDBfYHBA.OhP.vkHD.7IBA.WhP.viHD.WSDBfYHBA.OhP.vkHD.7IBA.WhP.viHD.WSDBfYHBA.OhP.vkHD.7IBA.WhP.viHD.WSDBfYHBA.OhP.vkHD.7IBA.WhP.viHD.ChPvUSC2vzChXdF966r5veMggeUa3W0G907C+Zgges3vuVZ3WKu5vUuO7qCaMXXqACaMXXqACaMnvW8X0e59LEqwX986pY6E9q7QR.uojkiToWHwdFlFaqP9A5fneNuveyuq6G8KnXW2O6WX9eE8i8QRExYJG7fv7P7ULjEiTUbbIy2XRwxGNHs9v9uD86TSmvImjhSMWMGf0UUoqGWygRR51MR11EN16poZW3YmXd1MV2JbSPzRCGEyV00Xq55rU87rU8BrU8hrU8RrU8xLUcHKaUmMuNfMuNfMuNfMuNfMuNX9855mcrjsQy1OWspgO5LGWSjGlcESCqtbWCaj0JiMS0nnqmgbUipzOHZuLEH6miq63mB3LBU2EwJ7Kt9BeYrB+6t9B+RyV9siUgmd8UnMx7r19jZf0UOaupGUa+89T0pVlXVXmd9dX5bU+1Hx1aJT446n1zxwCoZ5mIC0VWhXh10omGZfAp+L1KiNmLyClENX9X0kCOwit3yhzUe+2qFclec3YdXTWcvEt7yhzTCOSXQeQXQe5Jqn9webjbaR.OpU3b7pQyxeMIT+rmv7xeFyuz1OmjP5g8vo0wFcwSyXJ1GtfpaTR1SuHqf++Uj0Pk4UwyUTpdwjuaosed00Opw1lVXqg20daAWW827RaiNlMYP.lj0QQb.XPFHKiKuw09P73F2St4s9Al9MauqSqnsjznKXOrX2jEp+4eNb0sjwTGj9SpO40K.xlN0Bc5ECFKc0aG3Ubd0wzMHdj.03hwu8qtxh8op8JjYTisPaZgQsRaZFjIMycLGhUd7RiLkc3U7Tq26j.B9OEOcy+nWvLQFtHC0W1F4NbhIbu2ibdL+XS7j8sTuRZiO3FalgTGePYiROPhvgYHnAp2.4lSPxUSPxUWPxMufjaAtK2bBxeHmf7GxIH+gbBxeHmf7GxIH+AMA4OnIH+AMA4OnIH+AMA4OnIH+AcA4OnKH+AcA4OnKH+AcA4OnKH+g7BxeHuf7GxKH+g7BxeHuf7GxKH+gBBxenff7GJHH+gBBxenff7GJHH+ghBxennf7GJJH+ghBxennf7GJJH+gRBxenjf7GJIH+gRBxenjf7GJIH+gxBxenrf7GJKH+gxBxenrf7GJKF+AHqX7GhjaNAIWMAIWcAI27BRt72ePPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IAAEeRPPwmDDT7IgAwmb7OwqttT7d7O2qFTvQe1WM3RilOLCyG8w7.vZs0HvH3AkdPlD9x1Ha0fDZYbY7gpomZTl7kIdq1uQ9pYIkCizjSHC1++hoin5+e9HJjb+hNUDWas.27HWYO0tHW0lgog7kpKeZXJGtpZKWyyQ3+IJEBUQ9MWIy3RK4wgnYKWl1t1NGs0g06mixSm1YtXf17E6IJIWq9QhRzasy5uPPx9vsNdqC2PPB+fZGU8o6t+l8EeP1Vhc0hRVP0vGh4pjTET0Cy1q9Ip6XbBxh1kZLO0ymXdtSW1HgG7LYcs05exvWNEDFf9M03aofhLKMCofQuDLVasZ6U6nZquSs5ao9rZpU2e2C1eus16n5AWiPxXXYhoSF8s4QlgOx4m59ohLL9lt+qVasw9FGAyAZzyJjWZvyDxUh1lRC3l13v8+cjw0M13YGcz96UebO68GeYtlGB+wahs1r1QGr9liUzwu1zD47Qn9cYtQjoCxAzLwevnOJYOIWYmwme+TYIarTikmoY6jmMeZ6ttYct9.iPlqrPlo4p1Gi4VIbDE0BB2ywGsu8xAlJrJW8pW5zSG60hVklExcrWl7hXx85p3x185bB4MmyvD+dzwPicH5rTN5glu5wYTURcu3uXjRO4WLRzu2lZFRSQUPxdMxze+tH6I81bRIhai7RTJpyhad+fWgReXzqPoPzd.1CQwrE4MqzU5QJAZELLSQdOV0xv2PI0+UZHWoGE+i193+b9iVG+2s1D+mWb.430wGe9SvGe5Yji+saPtdMxweC43SHGu4ukTdGxwcHGaSN9f+.43SeHQzkq1W92niwxWQ4Y01j.8HEAVmf0S3E.4aRLAo1DctYST36VpkRuIx6a7c5h0pClPPI0OKTs8dQpsPZ8.U1amN30hjxECdce80WT4xAG75uqhmw4nZ1G3hvigBslg6voguev90UB1jTCNw+Y6JjQ8ABmrQlHlxAP4sCgx61+kfEY4bAH4cSSs2mlDdT9kWosdy+Vkq.mJeaELsgyK6eKLXUz6mdcKKUpS7ePAnkhqaBcoBPz6j9bGKxMC1HKPAHLFFBn2bbktFDFOJIFum34eIY.QlzGSrXMMrTh2CTzuZOP4EiQoqLuPNGEje8StU.YMZs7ytU.YcJHW42eq.x4of7aZdq.xEn4CZeq.xEo8k6bq.xknf7Oz8VAjKSAYUuEWH+tTSkjkByc6c6.yzy+8lWd6.yzS.d+u81AlomA7q+9aGXldJv+xe71AlomC70u91AlomD7O+m9oFySbc7+7zi4kFD8jgeDMzslFziCzudjk6+5mUI0aMS2py6kl90kAMh9weykzuajGAQiuKcEU3winBOdJpvIC02OFTowZkWTYACq2ONVoAqpYkEZE6wzK3wcQCqw7Wog58ubgVsdLsKvA+q+jh0YidJmPomNueLwRc24moJG6LU4RHKeNNvTkKgXpxwClpDTwxLSUtDhoJG6LUImZkclpbILSk1hKSkF6LUZIjkWiCLUZIDSkFOXpRPEKyLUZIDSkF6LUImZkclJsDloRewkoRmclJ8DxxqyAlJ8DhoRmGLUInhkYlJ8DhoRmclpjSsxNSkdByTkewkoJO6LU4SHKedNvTkOgXpxyClpDTwxLSU9DhoJO6LUImZkclp7ILSUgEWlpBryTUHgr7E3.SUgDhop.OXpRPEKyLUERHlpBryTkbpU1YpJjvLUEWbYpJxNSUwDxxWjCLUESHlph7foJAUrLyTULgXpJxNSUxoVYmopXByTUZwkopD6LUkRHKeINvTUJgXpJwClpDTwxLSUoDhopD6LUImZkclpRILSU4EWlpxryTUNgr7k4.SU4DhopLOXpRPEKyLUkSHlpxryTkbpU1YpJmrLUwxv8EKlJx6ndFYpv8tDwxSfJqLUhEq2ONVYkoJIUrrxTIVrFyekUlpDTsxLSEGw5rwTAKtLUrmi5PBkyu.GxQcHgxQcfG4ndRpXYloJgxQcf8bTOAUqryTkv4nNr3li5.64nNjP47KvgbTGRnbTG3QNpmjJVlYpRnbTGXOG0SP0J6LUIbNpCKt4nNvdNpCITN+BbHG0gDJG0Adji5IohkYlpDJG0A1yQ8DTsxNSUBmi5vhaNpCrmi5PBkyu.GxQcHgxQcfG4ndRpXYloJgxQcf8bTOAUqryTkv4nNr3li5.64nNjP47KvgbTGRnbTG3QNpmjJVlYpRnbTGXOG0SP0J6LUIbNpCKt4nNvdNpCITN+BbHG0gDJG0Adji5IohkYlpDJG0A1yQ8DTsxNSEGv5RShoRM8DdsRF859ilW3WPg8eviURKkWL0GGsTjZyDs6T5L49IsyvCyg1hn43l1YzkoNSdYpyTPN5L4VbovtoclbxTmQSl5L5xTmIuL0YjD1LMYhMSSlXyzjI1LMYhMSSlXyzjI1LcYhMSWlXyzkI1LcYhMSWlXyzkI1r7xDaVdYhMKuLwlkWlXyxKSrY4kI1rBxDaVAYhMqfLwlUPlXyJHSrYEjI1rhxDaVQYhMqnLwlUTlXyJJSrYEkI1rRxDaVIYhMqjLwlURlXyJISrYkjI1rxxDaVYYhMqrLwlUVlXyJKSrYkkH1LHqDwlE0YxIScFMYpynKScl7xTmQRXy.YhMCjI1LYZu..xzdA.jo8B.HS6E.Pl1K.fLsW..YZu..xzdA.jo8B.HS6E.Pl1K.fLsW..YZu..xzdA.jo8B.HS6E.Pl1K.fLsW..YZu..xzdA.jo8B.HS6E.Pl1K.fLsW..YZu..xzdA.jo8B.HS6E.Pl1K.fLsW..YZu..xzdA.jo8B.b6Yu.riwIQclOL8Qa87iZTsmKAY0w3eRv++lc3muhO5hfpQdfsoRzVp4TPsL8MBv7r+Xi6cS6Rdju4grZzMFi6ujBwpsmODqnOBh+na7C1NZDRSi95mrHhvXbiOaQDgzDdU98KhHjlE6MMWDQHM0zW2dQDgEo8C6rHhP5202+P2EQDR+N9U0aQAguGMiM8K2yt8VHgH8rJu4kKjPjdZk6+sKjPjddku96WHgH8DK+k+3BIDomY40udgDhzSs7m+SIKDe+Is31edrE2pV2nSW7xLmv5aU9WFogyVYjkzdpis+dFcvM2OK8gNm336nPNUc+KIKf8sRugiUKkvU491oOvnkJnLktuoOpSUGKmdt31Ic4xEJCkxoX4z7aPsH8UP4jy5e82IsdthkfxYyVJaX6Z9sng38QUl7Zom3sy72P8XTd8peA9VZp6iKgPeDrOy2EyRuU+G+yy3ip82O81Ou55G0XaSKejq2DeVs+wUF4AE8HcqIoYtpax+DCOAzCQ6lWZazwro2DebsuX.2+59v0zy2w02zw1ahOy1WLP761GwHKiKm3yr8ECr1208Pz4H2S7l3is8EKW2CL8a1dWmVS7I2dRB2IRx82GKlMaWami15v5SknaZzTy.S2T3JGCQ27RZi6Oa9h8tE2W9Ew6K0pezs3Nyea7NyV6r9KtE2a96h0aNbqi25vMtE2c9Gh0cNn1QUe5t6u4heGJhE9Ci5P0sLagbO.21A8pOHMY1XTiyMbMIq8K1hdTTnVJ9Kqzw3B5nI64i5FeIj+3uwKP5q2womMEyakJsPmZzyx+XCqdHZ4qbfqSSjmmCd8o26n.fd+z3ID5YYfgU01Fl1J01jbxmf+ZzEvKcPYiK6Z34QVjap6Vy1GY6Y5eIMRRcmsvKm0wstugOtWk5ta3z5x5scdoc35hOtuViLMPc7Rj6OgPaSqVCPk2rCwOHc+YyFCFuyXvHdYoh.i28nHG3sN8TTS+g.7d3Icio23WyenSOeS6y10.OX.6ijdudcpiumilHbqaiG.gEd5T2g3WFdbVxwDMPcjcqfC9evehtHPNNUzEg9WToiQSWmFMw22hqCVfXG6fyfwjcvsTsT5cIGiumoyupWVGyVlMZ1LtnFoh4toUT6lVQ8aZEyeSqXgaZEKdSqXooWwcwGudOemNgCaTT18fs1zv2.6itkMgTJvaU4+EH6pAKG
            

            Basically, pad_idx counts the 16 small buttons under the sliders, whereas slot_idx counts the latest clicked slot (square button) in each pad selection.
            pad_idx and slot_idx are both stored in the SliderPack, but when Hise is launched the getSliderValueAt() is ineffective. Just compile it and it reads the values from the SliderPack, so pad_idx and slot_idx are correctly assigned .
            Sorry if it sounds confused, I'm trying my best to make it clear :)

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

              @Giuseppe A minimal snippet would probably just contain 1 button and the sliderpack. The process of making a minimal snippet might also help you solve the issue. It's the first thing I do when I have a weird issue in a complicated project, I break out the issue into a separate standalone snippet.

              But I think the problem here is the program flow. The on init callback runs before the values are restored from the preset. So when you try to get the value in on init it won't be the value you expect. Try assigning a control callback to the sliderpack and get the value in there instead of in on init.

              I also notice some other things in your code. You're using while loops when for or for in loops would be more appropriate - are you coming from KSP?

              I also see a lot of unnecessary repetition that is bloating your code. For example you can replace lines 341 to 436 with one line:

              const ALL_FX_Cntrls = Content.getAllComponents("SUBPANEL_FX_Cntrls_pad");

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

              G 1 Reply Last reply Reply Quote 0
              • G
                Giuseppe @d.healey
                last edited by

                @d-healey said in SliderPack for variables storage: strange behaviour:

                Try assigning a control callback to the sliderpack and get the value in there instead of in on init.

                Thanks a lot David. I thought about the SliderPack custom callback, but I should have specified that the only reason the SliderPack is there is because to store data (in the real script it will be invisible). Should I create the callback regardless of the user interaction?

                PS: yes, I'm coming from there! :)

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

                  @Giuseppe said in SliderPack for variables storage: strange behaviour:

                  Should I create the callback regardless of the user interaction?

                  Yes

                  @Giuseppe said in SliderPack for variables storage: strange behaviour:

                  PS: yes, I'm coming from there! :)

                  Your code now makes sense :) I was there too when I first started.

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

                  G 2 Replies Last reply Reply Quote 1
                  • G
                    Giuseppe @d.healey
                    last edited by

                    @d-healey thanks again, will give it a try tomorrow!

                    1 Reply Last reply Reply Quote 0
                    • G
                      Giuseppe @d.healey
                      last edited by

                      @d-healey said in SliderPack for variables storage: strange behaviour:

                      Yes

                      Update: I just stored the variables in two separate Sliders instead of SliderPacks and it works. It's the SliderPack having this init behaviour for some reasons.
                      Will try to store the values into a numeric array because having a bunch of knobs just for variable persistence sounds a bit tedious.

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        Giuseppe @Giuseppe
                        last edited by

                        @Giuseppe New update: no matter what widget I use and/or control callback assigned to it, Hise just won't recall the saved value when launched, A new compile or an interaction with the UI is required to restore those values I need to be persistent.
                        I'm obviously doing something wrong, but honestly what's the best way to store a value that needs to be recalled at launch? Is using widgets a good solution or is there something that simply makes a variable persistent?

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

                          @Giuseppe said in SliderPack for variables storage: strange behaviour:

                          Is using widgets a good solution

                          It's pretty much the only solution

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

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            Giuseppe @d.healey
                            last edited by

                            @d-healey ok, but given that Hise can't read the numeric value of a given widget until an UI event happens or a new compile is launched, how does one solve the issue?
                            Say I want to print the value of a given widget at launch, where should I put the Console.print() line?
                            What I'm trying to understand is how Hise handles the variables storage.

                            d.healeyD G clevername27C 3 Replies Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @Giuseppe
                              last edited by d.healey

                              @Giuseppe said in SliderPack for variables storage: strange behaviour:

                              where should I put the Console.print() line?

                              In the component's control callback - the component must have saveInPreset enabled.

                              What I'm trying to understand is how Hise handles the variables storage.

                              Only component values are saved/restored, not variables.

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

                              1 Reply Last reply Reply Quote 1
                              • G
                                Giuseppe @Giuseppe
                                last edited by

                                @Giuseppe Thanks David. It's starting to make sense :)

                                1 Reply Last reply Reply Quote 0
                                • clevername27C
                                  clevername27 @Giuseppe
                                  last edited by

                                  @Giuseppe Also: ScriptSliderPack.getDataAsBuffer().

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

                                  49

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  102.1k

                                  Posts