HISE Logo Forum
    • Categories
    • Register
    • Login

    Macro Control for ScriptNode

    Scheduled Pinned Locked Moved Feature Requests
    14 Posts 3 Posters 351 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

      @Christoph-Hart According to this Chapter in the HISE Docs, there should be a node implemented, which allows to use macro controls in DSP Networks. It seems not to be implemented yet. Will this happen in foreseeable future?

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

        Or Is there a workaround to get macrocontrols working in a DSP network?

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

          The global cable system is a better way for inter module communication and you can hook it up to macro controls too.

          Just be aware that this forces you to use the interpreted network and you can‘t compile a hardcoded FX that uses a global cable node.

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

            @Christoph-Hart Hmm, okay, then this is not an option, since i need to compile the nodes in order to use them like slot fx in hardcoded master fx. :(

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

              @toxonic But then you will not be able to use macros too even if at some glorious day in the future it might be added (spoiler alert: it won't).

              You need to think of compiled networks as black boxes with no outside connections except for the parameters and external data slots.

              toxonicT 1 Reply Last reply Reply Quote 2
              • toxonicT
                toxonic @Christoph Hart
                last edited by

                @Christoph-Hart Ah, okay, i see! :-) Well, i think, I'll find another solution.
                I have several Faust effects, that depend on the Tempo from the DAW and which should be dynamically loaded into Hardcoded Master FX slots.
                But i guess, I can figure out, how to assign the "bpm" knobs of the FX dynamical to the Transport Handler tempoChange function....

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

                  As it seems, I don't get it working... 😞
                  I can't figure out, why I am not able to pass a component (knob, ...) to an inline function.
                  I seem to have a deep misunderstanding of what's going on there.
                  Can someone help, please?

                  const var Knob1 = Content.getComponent("Knob1");
                  
                  const TH = Engine.createTransportHandler();
                  
                  inline function tempoChange(newTempo) // <-- trying inline function tempoChange(component, newTempo) doesn't work...
                  {
                  	//component.setValue(newTempo);
                  }
                  
                  TH.setOnTempoChange(SyncNotification, tempoChange);```
                  d.healeyD 1 Reply Last reply Reply Quote 0
                  • toxonicT
                    toxonic
                    last edited by toxonic

                    EDIT: OOOOPS --- this is NOT WORKING!

                    Okay, sorry... figured it out! :-)

                    Content.makeFrontInterface(600, 500);
                    const var Tempo = [Content.getComponent("Knob4"),
                                       Content.getComponent("Knob3"),
                                       Content.getComponent("Knob2"),
                                       Content.getComponent("Knob1")];
                    
                    const var th = Engine.createTransportHandler();
                    
                    for (x in Tempo)
                    {
                    	th.setOnTempoChange(false, function(newTempo)
                    	{
                    	    x.set("text", newTempo + " BPM");
                    	});
                    }�
                    
                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @toxonic
                      last edited by

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @toxonic
                        last edited by d.healey

                        @toxonic said in Macro Control for ScriptNode:

                         for (x in Tempo)
                         {
                         	th.setOnTempoChange(false, function(newTempo)
                         	{
                         	    x.set("text", newTempo + " BPM");
                         	});
                        }
                        

                        You only have one th variable, so setting it's callback multiple times (as you are doing in your loop) does not make sense.

                        I also don't think x will be available inside the callback function.

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

                          @d-healey Yeah, i don't know, what was wrong with me....
                          Maybe you have an idea?

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

                            @toxonic Your first idea looked correct, just use a function instead of an inline function.

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

                              @d-healey But won't I need to use an inline function for realtime?
                              What about using the loop inside the function? It seems to work, uh?

                              Content.makeFrontInterface(600, 500);
                              const var Tempo = [Content.getComponent("Knob4"),
                                                 Content.getComponent("Knob3"),
                                                 Content.getComponent("Knob2"),
                                                 Content.getComponent("Knob1")];
                              
                              const var th = Engine.createTransportHandler();
                              
                              th.setOnTempoChange(false, function(newTempo)
                              {
                              	for (x in Tempo) x.setValue(newTempo);
                              });
                              
                              d.healeyD 1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey @toxonic
                                last edited by

                                @toxonic

                                But won't I need to use an inline function for realtime?

                                No, and also your UI script should be deferred (non-realtime) anyway. I think all callback functions (except control callbacks) are non-inline.

                                Yeah a loop inside the function is fine. You might want to reverse the order of controls in your array, it seems strange that element 3 is knob 1, but it won't affect the functionality.

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

                                32

                                Online

                                1.7k

                                Users

                                11.8k

                                Topics

                                102.9k

                                Posts