HISE Logo Forum
    • Categories
    • Register
    • Login

    Sliderpack always returns last changed index

    Scheduled Pinned Locked Moved Solved Bug Reports
    19 Posts 4 Posters 867 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.
    • ustkU
      ustk @d.healey
      last edited by ustk

      @d-healey Where is this important? I mean, value isn't used anyway, because it can't reflect multiple values at once, (or indexes or whatever) from such a component. That is why there are specific methods.
      Even if it would have returned a slider's value, how do you want to tell from which slider it is?

      Can't help pressing F5 in the forum...

      1 Reply Last reply Reply Quote 0
      • ustkU
        ustk @d.healey
        last edited by

        @d-healey do you have a specific use case for this?

        Can't help pressing F5 in the forum...

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

          @ustk

          Even if it would have returned a slider's value, how do you want to tell from which slider it is?

          It doesn't return the slider's value, it returns the index of the slider that was changed.

          Then I can do component.getSliderValueAt(value) to get the value of the slider.

          @ustk said in Sliderpack always returns last changed index:

          @d-healey do you have a specific use case for this?

          Yes, see first post :)

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

          ustkU 1 Reply Last reply Reply Quote 0
          • ustkU
            ustk @d.healey
            last edited by ustk

            @d-healey said in Sliderpack always returns last changed index:

            It doesn't return the slider's value, it returns the index of the slider that was changed.

            That, I understood from the start, sorry if I'm not clear...

            Then I can do component.getSliderValueAt(value) to get the value of the slider.

            Maybe you expected it to give you the last slider's value that has changed directly instead of the index?

            @ustk said in Sliderpack always returns last changed index:

            @d-healey do you have a specific use case for this?

            Yes, see first post :)

            I re-read it and don't see where the problem is. It's not clear if you want to change and track all sliders, or only one of them. In the first case value isn't your friend so you have to track the sliders indexes with another method to get the associated values, in the second it gives you the index of the last slider (so here the unique) that was changed so all is good. with the component.getSliderValueAt(value) method

            Can't help pressing F5 in the forum...

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

              @ustk

              The project I'm working on is complex.

              We have 35 effects, each with 3 knobs (so 105 knobs in total), but only 3 knobs are visible on the UI at a time. When the user changes which effect they want to edit the knobs are re-linked to the correct effect (what we actually do is change the sliderpack slider index we are changing). In order to store the values for all 35 effects in the preset we use a sliderpack.

              So the user moves one of the 3 knobs on the interface, this changes one of the sliderpack's sliders. The sliderpack callback triggers and changes the knob of the effect. To find out which slider was triggered we use the callback's value parameter. This works fine.

              The problem is when the user is using MIDI learn they can change all 3 knobs at the same time, but only the index changed by the last knob is being returned by the sliderpack's value parameter.

              It's as if there is an internal timer that groups events together (like for the undo system) but the sliderpack is not using the undo manager.

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

              ustkU 1 Reply Last reply Reply Quote 0
              • ustkU
                ustk @d.healey
                last edited by ustk

                @d-healey Now I see the issue.

                Is there too much overhead just doing this:

                local params = [param1, param2, param3];
                
                for (i=0;i<component.getNumSliders();i++)
                	myModule.setAttribute(params[i], component.getSliderValueAt(i));
                

                So you always set all parameters even if only 1 or 2 actually changed.

                Can't help pressing F5 in the forum...

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

                  @ustk I'm aware of the workaround, loop 105 x 3 each time a knob is moved. There are other workarounds too that aren't quite as extreme.

                  But the point of this thread is to figure out why this works as expected:

                  inline function onKnob1Control(component, value)
                  {
                      SliderPack1.setSliderAtIndex(0, value);
                  };
                  

                  But this doesn't

                  inline function onKnob1Control(component, value)
                  {
                      SliderPack1.setSliderAtIndex(0, value);
                      SliderPack1.setSliderAtIndex(1, value);
                      SliderPack1.setSliderAtIndex(2, value);
                  };
                  

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

                  1 Reply Last reply Reply Quote 1
                  • Christoph HartC
                    Christoph Hart
                    last edited by

                    @d-healey You're right in assuming there's a timer that coallescates the events - this is the general system that prevents multiple calls from clogging the UI.

                    I've fixed the other slider pack issue so that it behaves like any other control and I think this will also help with this problem, because now you have to call changed() between the calls.

                    inline function onKnob1Control(component, value)
                    {
                        SliderPack1.setSliderAtIndex(0, value);
                        SliderPack1.changed();
                        SliderPack1.setSliderAtIndex(1, value);
                        SliderPack1.changed();
                        SliderPack1.setSliderAtIndex(2, value);
                        SliderPack1.changed();
                    };
                    

                    But this should fire the SliderPack callback with the three different indexes.

                    d.healeyD 1 Reply Last reply Reply Quote 3
                    • d.healeyD
                      d.healey @Christoph Hart
                      last edited by

                      @Christoph-Hart Yey, thank you!

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

                      DanHD 1 Reply Last reply Reply Quote 0
                      • DanHD
                        DanH @d.healey
                        last edited by

                        @d-healey this doesn't look scary at all! Will this mean that old projects will need updating?

                        DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                        https://dhplugins.com/ | https://dcbreaks.com/
                        London, UK

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

                          @DanH I don't think so.

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

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

                            @Christoph-Hart Still not quite working. This simple snippet will demonstrate the issue better than I can explain it.

                            HiseSnippet 884.3ocsV0sSSDDEdlBC5VEhX7JuZCWsMTIsJhlfFKzBlFEnwhDuiLL6ztSX2YZlcVfpgWDeZ7Qx2.8L6tvt.MHzDaHjd94aN+Lmy2zdZEiGGqzHry9iGwQ3GS5OVZBZGPERT2NH7BjcnwFt1MS0liGQii49HLdlOZUfclEk942eXSZHUx3EpPnCTBF+yhHgoPauVeRDFtM0muuHpj2q1pKSIaqBUIP9LCoAZDkcLcHeWp0sJDDdts7EFktugZ3wfOap7G2OPcpLy+CDwhiB4Vgln9vAkoF0NPD526hZMFgvy1qnxmIqxeFYGgu3R8EcfmjZvs.Q4d.txskRMuGoDtTJMaVJsHoOSKFYJrXymGQ5JgKjATnUWNUx7EU44UHsUfGRyJQzi4aqAgKQ3sViF0cg+Ua8pUg1crw8Dp1senvmq6A86ltu28B3C4l1pnQJIH3sTIeVxhVHCERt6fDIyHTRWkbyDiQIaZgqUgdrKvVGhQXBuV0eT0QLv0KWxADcFnztdBHnMV2U39txYhM96lDkoI1qF3vxKCvRw4T1wXtISbCnR84m4Ip6tC0DrhlJ8UQd0f78ZPXAT4PtuWpkyqB+cNTSStxyqqkpYCTd00lFFdDbRdWurgCrTKYWkgumzKszqddU2qaZvfIZK+rB45IZ1t3nuMfdxjni35xMdqivj0UGWm6tMtxxZKkbTI6JEl8Fwyk2VE5aGCse+lC2n79J7su1sC0Psy645.+Fw0FgMcvc3m.DFYS+NjN73iMpQvt+kWFH7CLoVeZ9tQwcJR.wedRoKYzYErK62ZbYgSE9l.Dlf+IFgB3hgAFqTcPJldBuqrmlCW118JTofOWVvWHO3Y27oA1gjOFTJn+ZXof156st9IKh2QEAmKUCtgqftIC.v8n7SBolqRHYYdyM.W6WgEvtoKiElwkYluGrTMtUVp6ZJtHomvvBlbNVYB4HLP7+HGy41mmr0fAbloHAmkr82lVh7+Q3+hJwHjCA9Gs.lEHVJL3IMFGhtTxCisCZUrKEYxMrx1NPetzOU3OvmbiMsx3biMuvHJhxzpCYYK61WOdXpFHmjoOV5.uZCxtMQoD..NRiUZfhfGxNjwrk+Kf8zIi4kSAlWMEXVcJv75o.yZSAl2LEXd6shw9aH1HwnhxVG.E81JkIDi2RRgIqzoPzesx9d9I
                            

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

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

                              Bump bump - SliderPacks have a new and fun problem :)

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

                              ustkU 1 Reply Last reply Reply Quote 1
                              • ustkU
                                ustk @d.healey
                                last edited by ustk

                                @Christoph-Hart @d-healey and if you read the value it is indeed here and updates:

                                HiseSnippet 1044.3ocsV0saaaCElxILa1qsXcXWtKDxUxnYF1acsEnaXNwIYvnKoFyoA6tBFIJaBSQJPRkF2grmk9lrd+dY1av1gTxVzoNYCFqFAA37+24nyObjRFS0ZoBEz7r44TTv8vimKLSGLkvDngGhBd.9Dh1PUgkrNXdNQqoInffs9IKiflaib+9qe7.BmHho0rPnykrX5OyxXlZti5+BFmeLIgdFKyS6G2eXrTLPxkE.d1B2EkShmQlPOkXUqAFEryQILiTM1PLTMJX6CjIyGOU9FQo9myzrK3TKQOzXvQkrOVxSrH1xEMXJimLZQdqQfWFUWE1prJ7k3SXIrk7qqFetSPXsE90ifFqBusVAd87gWWO3sFHE3AosKgzCwiiUrbSsDKd9L7PA7wIk.kcenTpKpwe1.OPBZHLcxHynGq.hkVD8jtc2KD9W6m2pET50lvKIpvwbVBUMBp88B+gvElOgZFHyxkBfHZWOc10ZMSvYBZXZgH1vjhPo3fBiQJ5YMWI4QwKrcOHF7BZ6V+VqlrzvnJpl.YyToJLhAAs6yCYgeuORrw+zhrRN5n1fBO5QfYN6Z5qnlZJI2GxzD5UQr8BOgXl1QQDIxrn1.dugIwSIhIzjHmjqaA+cMjSqOyqxqcaaCTU1Mfv4W.dJ5losszzZcUmWHjWb20FPnVxocxULHr2nRTRdtU48MUkPHV.pWOncg61frOV.m3gxSkF5KEQN7z55Vg2TTZ5ZkU4KNUsVw1od0cYXjnH6BpxuZXUDFEVc9Be6yW9i+wkkDOEkhgBl4k4TwssT.UUGsyhUnBT03lDeP0jX4GADCF39DrqHhb.tdi1W0G8pgGRLjEtA7HDkbpxvrIPvgzKg8ikC3MwGR0yLxbHPK+zAttLnewJA01H3B78wdcFnqpC8Y8m6S7FVhY5RFuad+oT1jo0KkeupulbIcnXjhBMI1UHHOPrypYdYStC.MwUc7dA+8S7Bd+29AdloOQlA9kn.0BZ3Gn68uVhukv7teuu1L29weGmhnLVRBmNRpY1lKuyT+AbMKeL6sfpXbuNcAME9mrxHdkwN80EoorqbmeRY7LsAv0vL3pj8axqzzvDZJofaB0y.+.y4ynImIc5i9vs3v8CYRAmXV8nh8RZk.KX82ja2VKfjXt+k1+2tz7eEhODOhYhmtdL1XMXD53+Xfwp6y2GeTZJM1TCvswG+qebNFi9EYggIl.2PT1FAr8LD7DkXJDcgfxsahftXqoN5tVZaEXLUj3H9a3WkvdV5fJg8VHDZ5hUxWGWtow9BfO0wAvjv83mlvqv.5vkqXv3ttV2D1qiiso+W2CgVuMeyFXy2tA173MvluaCr4IafMOcCr4Y2oM12AtegQlUNN.LFcjaUePvQBBzY45BQ+CP7MLhM
                                

                                Can't help pressing F5 in the forum...

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

                                  @Christoph-Hart It seems this issue is only in HISE and in the compiled plugin it's working okay

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

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

                                    Issue has been resolved - https://github.com/christophhart/HISE/commit/1b51f15c36d27419712309b279cfde6e097fcc9e

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

                                    1 Reply Last reply Reply Quote 1
                                    • d.healeyD d.healey marked this topic as a question on
                                    • d.healeyD d.healey has marked this topic as solved on
                                    • First post
                                      Last post

                                    25

                                    Online

                                    1.7k

                                    Users

                                    11.8k

                                    Topics

                                    103.1k

                                    Posts