HISE Logo Forum
    • Categories
    • Register
    • Login

    Setting ControlCallback w/ Loops ?

    Scheduled Pinned Locked Moved Solved Scripting
    17 Posts 5 Posters 61 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.
    • ChazroxC
      Chazrox @Oli Ullmann
      last edited by

      @Lindon @Oli-Ullmann @d-healey 💀

      Thank Yous! ha. 🤛

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

        @d-healey said in Setting ControlCallback w/ Loops ?:

        @Oli-Ullmann

        Or even shorter...

        // Don't do this, I'm being silly
        for (k in Content.getAllComponents("knbVolume")) k.setControlCallback(onSampleVolumeKnobsControl);
        

        I always thought there was "no guarantee of ordering" in getAllComponents.....

        HISE Development for hire.
        www.channelrobot.com

        d.healeyD Oli UllmannO 2 Replies Last reply Reply Quote 0
        • d.healeyD
          d.healey @Lindon
          last edited by

          @Lindon I think it grabs them in the order they are in the component list. I never really thought about it though but I haven't ran into any issues.

          Free HISE Bootcamp Full Course for beginners.
          YouTube Channel - Public HISE tutorials
          My Patreon - HISE tutorials

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

            @d-healey yeah..maybe then , however your suggestion makes the callback difficult in that there is no indexOf(component) to show you which one is being called on...unless theres some fu I dont know about...oh I just noticed your "dont do this comment..>"....

            HISE Development for hire.
            www.channelrobot.com

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

              @Lindon I did put a disclaimer not to use it. :)

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              1 Reply Last reply Reply Quote 1
              • LindonL
                Lindon @Lindon
                last edited by Lindon

                @Lindon said in Setting ControlCallback w/ Loops ?:

                @Chazrox

                const TheGains = [];
                const  SampleVolumeKnobs = [];
                
                const NUM_COMPONENTS = 8;
                
                for(i = 0; i< NUM_COMPONENTS; i++)
                {
                    TheGains[i] = Synth.getEffect("Simple Gain" + (i+1));
                
                    SampleVolumeKnobs[i] = Content.getComponent("knbVolume" + (i+1));
                    SampleVolumeKnobs[i].setControlCallback(onSampleVolumeKnobsControl);
                }
                
                
                

                @Chazrox ...and now your call back looks like this:

                inline function onSampleVolumeKnobsControl(component, value)
                {
                	pos = SampleVolumeKnobs.indexOf(component);  //tells us which control is being called...
                       TheGains[pos].setAttribute(TheGains[pos].Gain, value);
                };
                

                HISE Development for hire.
                www.channelrobot.com

                ChazroxC 1 Reply Last reply Reply Quote 1
                • ChazroxC
                  Chazrox @Lindon
                  last edited by

                  @Lindon Thank You 🙏 Im gonna try this in a bit and get back to you. Appreciate it! Love the energy. ⚡

                  1 Reply Last reply Reply Quote 0
                  • Oli UllmannO
                    Oli Ullmann @Lindon
                    last edited by

                    @Lindon
                    Yes, the components will be added in the order specified in the component list.

                    As for the index, I use a function that I call first in the callback and that returns the index. Something like this:

                    inline function getIndexAsInt(component)
                    {
                    	local index = component.getId().replace("knbVolume", "").getIntValue();
                    	return index;
                    }
                    
                    inline function getIndexAsString(component)
                    {
                    	local index = component.getId().replace("knbVolume", "");
                    	return index;
                    }
                    

                    The return value can then be used in the callback to determine the correct component....

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

                      @Oli-Ullmann said in Setting ControlCallback w/ Loops ?:

                      local index = component.getId().replace("knbVolume", "").getIntValue();

                      If you are storing all your components in an array you can get the index directly using indexOf

                      Free HISE Bootcamp Full Course for beginners.
                      YouTube Channel - Public HISE tutorials
                      My Patreon - HISE tutorials

                      Oli UllmannO 1 Reply Last reply Reply Quote 1
                      • Oli UllmannO
                        Oli Ullmann @d.healey
                        last edited by

                        @d-healey
                        Yes, that's right! Thanks for the tip! :-)

                        1 Reply Last reply Reply Quote 0
                        • ChazroxC Chazrox has marked this topic as solved
                        • First post
                          Last post

                        16

                        Online

                        2.0k

                        Users

                        12.8k

                        Topics

                        111.1k

                        Posts