HISE Logo Forum
    • Categories
    • Register
    • Login

    Control Parameter with single Slider from Sliderpack?

    Scheduled Pinned Locked Moved Scripting
    sliderpackparameterconnectivity
    15 Posts 2 Posters 575 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.
    • trillbillyT
      trillbilly
      last edited by

      Hey Gang,

      Can you control a plugin parameter, in my case an EQ Band, with a single slider from a SliderPack?

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

        @trillbilly Yes but you need to do it through scripting. Have a search on the forum about controlling EQ bands, I can't remember the details but it's a little fiddly.

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

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

          @d-healey Hi David,

          Im able to control EQ bands with something like a knob no issue. I've scoured the forum for any info about controlling a plugin parameter with a sliderpack but have come up empty handed. I've seen some thing about controlling/linking knobs with a slider pack but nothing about a single parameter to a single slider.

          Maybe Im overlooking something. Theres not to many pages to dig through, I will search about SliderPacks again and see what I come up with.

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

            @trillbilly said in Control Parameter with single Slider from Sliderpack?:

            m able to control EQ bands with something like a knob no issue.

            How are you doing it?

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

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

              @d-healey Like This

              const var Knob1 = Content.getComponent("Knob1");
              const var ParametriqEQ1 = Synth.getEffect("Parametriq EQ1");
              
              inline function onKnob1Control(component, value)
              {
              	ParametriqEQ1.setAttribute(ParametriqEQ1.Gain + 5 * 0, value);
              };
              
              Content.getComponent("Knob1").setControlCallback(onKnob1Control);
              
              d.healeyD 1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey @trillbilly
                last edited by

                @trillbilly Ok so you do the exact same thing with a sliderpack. The value parameter of the sliderpack callback is the index of the slider that you moved.

                Also note that using a bidirectional sliderpack, where the min/max are not equally apart, prevents the sliderpack from drawing properly - bug for @Christoph-Hart

                If you draw it yourself with LAF then you shouldn't have a problem.

                HiseSnippet 1158.3oc2W0saaaCElJNpn1csnsnXXWxErKbVKLraRy1PwPsi+oHX0IdQtYaXWzwHQaSDJREJJuZLz2s8DLrGkd2tb6PI4HoFgLGiNTrpKDDO+P9cN7vuC0HkzkFFJUHqpiWDPQVehsyBgdV2YDl.cPOj0crGRB0TENQz9KBHggTOjkUkmaDXUcST7yae19DNQ3RyDgPmHYtzWv7Y5LoiZ+cLNe.wiNl4my5caefqTzUxkQ.dpX2DEPbOiLkdHwX1F1Hqaz2iokJGMQSCAa1W5svYl7WEI1eBKjcJmZFzB4.SThXT2YLt2nkwZHBYYOJKxqjD4OvdHyicg7rLvciUfy7HeNvZiqBRstFPxJGj1LAR2y1wUwBzYZL34V1GHfMjIDHUmGJI1h13urr6JAKD5F9jynCTvfK7n9dMa9HL7Z6mVqFjtC034DEdDQAIYshcd+uuE9awwEAMlR08mLg5pquUlAXvhsLdyDblfhmDIb0Lo.KENblGUMB10ZYPfRxq6J8CjB.KOBVGdDc6Z+VspboKgimCqyEpMqUh6mXLqitdh4OsZsZUKftFgTcGML3zHMsdQUlJR7CwOA+kXHJmCn7M.PWlMfkn6x0q9V4.6VaalzTH2kv4mBRqWV7.yXt38PoldjndbLU6M0vuqpISJUW5bwopRUaNUntJGqKh7OkpxmQMFBkMEqEuwpUK5ljdxYnTbffoOJflNdfj6YpwLee4JWTZ90TCmhP.J53J36mVAmkIQLXhtsctTKJNLxyZ3QzDj0Oau2tMfmQM5.u6zCd0azEi+ltvqcNBdM4gMttiQnWdPOyhjBY.8PDEPUZlIwY0iNG3sRNDV0tGM7LsLH11zxGH4dMBvWCDNVSg.ag4iOG9vOOy4O869jWmM7lsQWlJ.HgjdQbhtHyjofOUAThTfNvbjWDxzKxSQeMnqZdkzUqJDum8Hl1cV4XbiRvHrk7eAFSI4uscBgVF.2zdvOttL5q9xemjk+V1N.kYL4Z7h+owiw+.YNE+bpfpLIuVWQS1+bUaxFrxMYOxUCK+XEQDFHCKLwNTe1XndOLuvWFBsTnmerY2Lu7tRhpTUu8YCffrTebH5HUbYQGeYjPWnLnRw8gMWM1rhmHxYeIsb27Cvs.d+br5C3I+BWTo5RL5v7C3z9h4TNviFiw6CDmSHQb8RoEKrGJExfYRAyM+t9wld4SmRU4wdoADbG.Ca6ERdP6iobJIeE7Wz9EPkGQA4I5ZlKt9WZqz8qOyNAtXyoQ7+eYrq7QMicgsyZKa+2MRMm1+7zycEuHbAbbXj+.FGtncnoMuEDN6SDdMy2Y2HnUpfe4OZ0NVviK9STBucdWA6lI3tsGLXbeAABnjfux6oZYzwxHMSLcHABNyMVfvwA5R3RgTuPP4wQ0FFl9jwMMiSZSDGk1V+M7jpr0xTfQYqkJ+nYM7ItJ4qbStsqox4lwRfbqH9mUqB+0LLFWxka8g1Hux0s3TcIGe7553Nqqi6ttN9j00w8VWG+p00wu9e2QSW9NQZoeB2GBMbT+3eUvxJ2oNz+fxSipG
                

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

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

                  @d-healey Great, that works. But now it seems I cannot choose the Slider Index. i tried changing the getSliderValueAt(value); to setSliderAtIndex(0, value); with no luck.

                  Also, is there anyway I can use this in an ELSE function?

                  Here is my snippet. When I turn the power OFF, i'd like the slider to be manually editable and still control the EQ Band.

                  HiseSnippet 3176.3oc6bs8abbUFeFaONYcaCIgpBUhGFYwCavI16NydKkKYhWuapUr8t16l1zRjZGu6YWOMyNylYl0wtQQMRHjPvCEg3EDBoJgDOwCHPPe.gnuv+.fPBDRnHPkWPnFwkWo7cNm4xY1KyNqsaaZYshVumuy2224247c4b0opkYCjssoEGeh5G1Eww+jB0NzvYuh6opYvs9Zb7mQXSUaGjkHkzpG1U01F0jime1qgIvmXNNxOO5JqppqZz.EPhi6EL0Zf1PqilS.0pJWWSWurZSTcsNLbmQY8FlFEM0M6A3YVgTbcUaba01nsTwrMi.G+7kZp4XZUyQ0AYywO2plMOr1dl20fx+KnYqsqNBWHMWMPQTxkM0ahQLlJWw8zzaV0qeaywwKTMXTXV5nvSKroVSMe5AiFmkTgXfDriG7yDFdyFBdoYgWJF3MDHwy.o4nP5bB0ZXo00InFLddBg0M.iSKUXXmEJTd4lo9SKTzD3vvY4Np2FU1BJ3KQxboRcQQ3iK7EWXAXn21QbeUKwZ5ZMQVUgw9zheYQOwaibJZ1oqoATH4hL7rXXoutg4tiVNRsXIBKfTjBHMn.xQJfLASqrxFkqXyHHTbSyl8zUAaDFhDOcr39TStHviX.SgaXV4khi7RiVd43Hu7nkOSbjOynkOabjO6nkOWbjO2nkOebjO+nkuPbjufqePosYzRUUKHehik1cJscHufRsZgZ.dPALHBbzm6sCHQIi1ZFnkaXgf3bbNLqJ69ZXQos1NWcq0proXksVoR4xKnYnCLK1pmQCGMSCQSiU643XZHgcesL0S1vy28hPCn2CcgEt2BIzZIlzsTBnXhUVgzNK.e0YYajCoTQUc8cgPvjdJOIvMgcQ3GLZ2GPaHudRvROKKn41.sORGCYF1S2G+Rigeo93WdL7K2G+YFC+Y5i+rig+r8wetwvet93O+X3Oee7WXz7G9WqrBMiIdFMWRLoPwVTZwqBYmahNHIjWdeeUEImoANSGOVk.VkhGqx.qxwi0L.qYhGqYAVyFOVyArlKdrlGXMev3d+C7PvO8qgB7wp4pNPgc64fRFtJ75ZDWRLq3WPDaGfeIEzAOJZgXiN9pgX+N9pgXaO9pgX2O9pg3Sb7UCwe43qFhuTfZtO4SZRWGUKZZ2jx3ELk39K.UfzsQ3eeOWdL6RYwSNx+vbdeXpggufE2oCV7BXH5Nofel89ms.OCyBLSxr9V0KsUs0q+RCYdFxZshbVlvSM.MOdogF1ZNGlbSUXRQKUillcRdAbuI7zBwmW4If2LS.uYm.dyMA7leB3sPz7NZat6xfGtEm0tQr29V6x6.IyFtgVZxLzAgBgqprE5N8PFMN7hh98FnChmkIctg6GLbUIMgpRdzpRdBUUlQqpLSnpxNZUkcBUUtQqpbSnpxOZUkeBUUgQqpBiWUQ6fKEkCNaBMxF0DqsYkJ0e9025ZhWamJ2n5H7ykOY7yq0wzzYOMi13z0dZXR7tiiBhzmNNJHRO43nfH8eiiBhzqMNJHRe03nfH8PGgBh1uTNJ+R4vIdwNl0KsYUv87k1p3H8LoSRm9jw2rNBjF1UZiI2ub7BKebDNywQ3rGGgycbDN+wQ3BSnviagdoidgdLS7y3eskoCpBd682CuTxED6upVsFZct5RGufzgTs6RUGsfIM50YWjEqWLlQN94BePmBi9fNYOG1FzgEFFMMV2PyoRWjwnNcVN2wRNN94cQEvpC4HQOi6QhR2NHmVSN9SIPBh4H.1+nkevWSgyW34nBe9PBi2ZIQAOk.ydM8Ti.+o.szT0QkiOkfrzxHiharzM2HkbdsWN25RUbdQIzRU2nZpBEq+xcNnxssM1ZoVEt4kyWjiaTvlZvIsZBAWqee.miKVhS60GKgkNZB6A7AD+QWg6FquFdDiim20FB10tHKGMrKC+Zn80ZfnmscBg0P12F17DfF+.F36i0LefeC9v8UNzuv6rqRG0f5TdSkNZMapipZBqSG7vCp4MTbPG.M0oEnSkf6z9sehIvSIn0dm1LHgKihM8vJ5X1yf4RPDUzbPc7triDyu8u+sdeL8.pRXxdlBLJCX1i5tsCnAa388csZ9cfmvw81Lncfx5lpNjIKgXSbW3SIvRhsSnfX5Du0gJtVPp45YDVyRscaUHDurltCdHv.oGBMdHbfN4ACoS502ItK76HbuEDEWzOIv5MW74D6+PYuHlExw+.UdozjhkgLcl28EMstscW0FHnhVp3smeet6p0DLs9YCtixdHs16EXMTdUE1gMgXDmx3485r16sbcndBA+4FBYRlerAwAZ9Aayp4ltZNg.cGmfIzdSyNfVUs.13mYRZFIVa8qMrlYdA7x+ipMDhQVgfVg6qDNrf1JmRnp4cgfZtAuvqyJ3OQK68ugOrF2JvQxrW5k+NwYSCchcobwEhmSnplSi8FNFmYHXDxP9AAFcuJymRfduFA.bNgx27Cl6sjs4+b08Rd5XgT6.4Xpo1oKrTDBFVPvsT5ShaTtaruQ4pVHHiWyZZuNCauixp8fwHqvT+IJjlp+D2cUbQ9NntHU7UOwHyoU1YmqYY1qa+R8nqPbJpaASV.CErUTw.Ai0Nr8whVl11sftCQW1rUUsmUa7XU.kcP6irrCSaqdc.6sAjUFu5LddfzMrQX6qVCXq7VZGvxMoURUWkXimQfVNcekk5qrbekyzW4r8UNWekyGTlWHr+27wa4jap1kLwCCmqp45kA0QoLl69e9G6t6+OFjILzySHgGFqogG3KYrODgATvX77v55Zo1S2wipTHTtoogY28LMzZD1eF7Oa2FYwh8g1gfckgWLlOkmVYGjNR0lIf7yqrArUcUqvgoSzXQ5I9oZLT60mUfBWQbJJwO9NC1rehdFL9YFz097vZTzOj5nRWuKADIDnEhZFLNN+yP0m3232orMq4Mrq4EU1tmpdvnq3y9Y9EWcUstl5pVG2Q9w3IOWLcOdFA+N0i69wja16ilbjmlAjmkBRAgMJWwM4c32YTj.S4+b2+1UFzOBVrAdEOqavtO2WTceTKSqNt6q1uesApMzPrTB1dBiyTnySk83S1vzraIC7L1MCsnl8frsUZ0xFEZ8KX0V2j9tAKpaxlilia81FlVH5IZEZQO8rcL630A33KIjovxg+Y+J3OWB+wkKRJ2Kmy0WpJZGT1hd02ZIF94p4f5R2W4WUHWlk8qmHubkSlxmfAgyDSe6OMwCx2UA6K8XXDHEkgRW7QDJGWHnTj35Uyk9cGVHn3mrCAyJHmargfSC4lFxcjB4jiDWO3Mele8vB4RNMjaZH2zPtiVHWlHw0C+Q+3u6vB4dzUlFxMMjaZH2QJjKazyx8a+y+zgExc1oyxMMjaZH2QKjKWj35s9Vu8ecXgbWbZH2zPtogbGsPt7Quvxu2+3u++gmf4zPtogbevExUH5KM3T2+OM8DKmFxMMj6DBkOqf6svRP5i2W74YD19id.dIu21awdV6iJcG2bXgeHmgv1V85PuRcxiV5zf5VU0nYJuEQX80SofIj1C5m6gWlPPhM8Flfb32PlQyLr6rFSHq29u+m0RSHjyqUJr30HDx2uRKzuRub+JMsGT49N+xbTJdX8g2XlcoTF.roG.soG.to8vqxY9W4oT7.r32+cOfRY.Dmd.Hmd.LK4g4W87+WJlk7w7AeyuMkx.XVZ.LKM.lk7vr368GVgRwGy+b9eHkx.XVZ.LKM.lk8v7CN28oVOYOL+fev+9soTFzoX.LKO.lk8Gmu0ezUydXV4W8y9MTJCfY4AvrbHLWtbc+oA4mke1SnoA31wrG9sa68f9Df3mZl8rZfXe6eyfmkjVNEtLYpVDIrRf+8gebqLs2CEDWYZuJieFG56tSrF9OS5GCSI9jBjWcnHd0OeXBuOLrQM7TEzeb+Nc0Lyh7c6lQG+eOErKcxtWqVXHMi.7chwqC9QSxG73SU6zQMznBOkON9E1wD+hUE3+RPEaXdczgdv940bK7FjZdAba5UiaAbMtOSVu9Cj128+km1T3ZO2sRII97qWqzsveHtZOXL09Vk.7gLbDuj3ZVlFH2+SX4VT2N6aU+l0EulNXUOTDLBcP1KeW084VqWWcsFfMDOBfWNJ08DZ02K6Lbz0m1DW7uTX9ObrUcTaXY9JMn+k0PdmPDJfsxfz+SHrItrXve6QBoVNEWGslZuRiF3m91kRywMbYjNBxHeDjIyQPlrGAYxcDjI+QPlBQJC9Q+d0dvtLnKlBHTsDM7hmIqN2+CP54ziL
                  
                  d.healeyD 1 Reply Last reply Reply Quote 0
                  • d.healeyD
                    d.healey @trillbilly
                    last edited by

                    @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                    But now it seems I cannot choose the Slider Index

                    What do you mean?

                    @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                    Also, is there anyway I can use this in an ELSE function?

                    Again, not sure what you mean. Else is part of an if statement, it's not a function. You can call any function from within the else clause though.

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

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

                      @d-healey said in Control Parameter with single Slider from Sliderpack?:

                      @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                      But now it seems I cannot choose the Slider Index

                      What do you mean?

                      I now cannot choose which slider within the SliderPack controls which EQ band. They all just control the same bands.

                      @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                      Also, is there anyway I can use this in an ELSE function?

                      Again, not sure what you mean. Else is part of an if statement, it's not a function. You can call any function from within the else clause though.

                      My aplogies for incorrect wording of the ELSE Clause.

                      In the last snippet I posted, I have an Inline Function with IF & ELSE statements. I cannot nest the Inline Function you created within the first Inline Function (in the ELSE clause).

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

                        @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                        I now cannot choose which slider within the SliderPack controls which EQ band. They all just control the same bands.

                        The value parameter is the index. You can use that in your code that calculates the band to move.

                        @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                        I cannot nest the Inline Function you created within the first Inline Function (in the ELSE clause).

                        To be honest it all looks a little janky to me, you are dynamically creating a timer callback within an inline function which doesn't seems like a good idea.

                        Also you have tons of unnecessary duplication.

                        This:

                            var v = LFOModulator1.getCurrentLevel();
                            var v1 = LFOModulator2.getCurrentLevel();
                            var v2 = LFOModulator3.getCurrentLevel();
                            var v3 = LFOModulator4.getCurrentLevel();
                            var v4 = LFOModulator5.getCurrentLevel();
                            var v5 = LFOModulator6.getCurrentLevel();
                            var v6 = LFOModulator7.getCurrentLevel();
                            var v7 = LFOModulator8.getCurrentLevel();
                        		    
                        		    
                            //Sliderpack
                            SliderPack1.setSliderAtIndex(0, v);
                            SliderPack1.setSliderAtIndex(1, v1);
                            SliderPack1.setSliderAtIndex(2, v2);
                            SliderPack1.setSliderAtIndex(3, v3);
                            SliderPack1.setSliderAtIndex(4, v4);
                            SliderPack1.setSliderAtIndex(5, v5);
                            SliderPack1.setSliderAtIndex(6, v6);
                            SliderPack1.setSliderAtIndex(7, v7);
                        

                        Could be written as:

                        for (i = 0; i < SliderPack1.getNumSliders(); i++)
                            SliderPack1.setSliderAtIndex(i, modulators[i].getCurrentLevel();
                        

                        For this to work you'd need to put your modulator references into an array called modulators.

                        I think once you refactor your code it will be easier to add in additional features.

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

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

                          @d-healey

                          The value parameter is the index. You can use that in your code that calculates the band to move.

                          I think we are looking at 2 different indexes. Im speaking about the SliderPack Index. How does your snippet know which Slider in the SliderPack (8 total sliders) controls which EQ Band?

                          To be honest it all looks a little janky to me, you are dynamically creating a timer callback within an inline function which doesn't seems like a good idea.

                          What would be a better way to power this on and off? Should I leave the timer on at all times and shut off the LFOs instead?

                          And yes, I need to learn how to compress my script in a more efficient manner.

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

                            @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                            How does your snippet know which Slider in the SliderPack (8 total sliders) controls which EQ Band?

                            It doesn't, I just copied from your original bit of code:

                            ParametriqEQ1.setAttribute(ParametriqEQ1.Gain + 5 * 0, value);

                            You tell me which band will be affected?

                            @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                            What would be a better way to power this on and off? Should I leave the timer on at all times and shut off the LFOs instead?

                            You could put an if in your slider pack callback that checks the status of the power button.

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

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

                              @d-healey

                              It doesn't, I just copied from your original bit of code:

                              ParametriqEQ1.setAttribute(ParametriqEQ1.Gain + 5 * 0, value);

                              You tell me which band will be affected?

                              The first EQ Band, but tell me which Slider in the SliderPack will affect it? This is the issue Im having. I cant determine which Slider in the SliderPack effects which EQ Band with getSliderValueAt(value);. I am unable to get the Index of the SliderPack to be chosen. If I try and add something with the setSliderAtIndex(0, value): it breaks the SliderPack/EQ connection.

                              That original bit of code was strictly to show you how I would connect a knob to the Band of an EQ.

                              You could put an if in your slider pack callback that checks the status of the power button.

                              Thanks, I will try this instead.

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

                                @trillbilly said in Control Parameter with single Slider from Sliderpack?:

                                The first EQ Band, but tell me which Slider in the SliderPack will affect it?

                                You're overthinking it. Remember value is the index of the slider that you moved. So if you want slider 0 to control band 0 all you need to do is change 0 to value.

                                ParametriqEQ1.setAttribute(ParametriqEQ1.Gain + 5 * value, v);

                                v here is from the snippet I posted, where I get the actual value of the slider that was moved.

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

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

                                  @d-healey Holy Shit, thank you.

                                  Thank god its almost the weekend. I've been in this dungeon long enough. I've overlooked everything.

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

                                  60

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  102.1k

                                  Posts