HISE Logo Forum
    • Categories
    • Register
    • Login

    Modulator level broadcaster

    Scheduled Pinned Locked Moved Feature Requests
    broadcasterlistener
    33 Posts 4 Posters 2.2k 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.
    • Christoph HartC
      Christoph Hart @d.healey
      last edited by

      @d-healey Now it is.

      I've also added the possibility to connect global cables directly to Global modulators as source and any module parameter as target, so you don't have to go through scriptnode anymore for this.

      const var gm = Engine.getGlobalRoutingManager();
      const var c = gm.getCable("Global LFO 1");
      
      c.connectToGlobalModulator("LFO", true);
      c.connectToModuleParameter("Simple Gain1", "Balance", {"MinValue": -25.0, "MaxValue": 25.0});
      

      this opens up many new options of block-rate modulation of any parameter in HISE!

      HiseSnippet 1248.3oc2X0saaaCEVx1rKwqanYqXWLfAH3qb2RMraSS2OXndwINvXwIFQtocXWTvHQaSDIRMJprlUz62c6UXWsmi8HrWgsmf8FrcnnrjbhqqqqaV5zEBlmen93ge7bNz8DbGRXHWXXtZ+yBHFlWGYeFSNp0HLkYzYaPNpK2sOITZr0YA3vPhqgoYwcUpMWsjQ7ye+fsvdXlCISjgwQbpCYOpOUlIsWyuk540F6R5S8yY8FM63vYs3d7H.JEQ0MBvNmfGR1GqLq.xv7Z63RkbgsDKIgFlk1h6dl8H9Oxz1eDMjdrGQMnggMLQZws4dtJDqjZzZD0ys23kbnggIpWV.nnN.bSTWpKMUdVf3FwJrx7He7vrvjvq3DvqQd3UOG7lBjLyAoRZHsFx1QPCjYZT34cQcXRhX.FB64gh1ViB+lIpEGrfIq4iOgzV.CR8n5l0qutE75VeU4xPnOTZcJVXMz25qs1gMjxH0FRj65wOF6cHORRYC6hYvFhnJ3QlCNf8C8U11BCqupUztXsW6CrZTIdxqAVyHNx9bsNfNE4ggXU0JfUUV2RJhHpIMyvXSH8vBX2G.b0J1T+.Ohkh00.7nRBcC94ypzkxNB6EQp7kV29N2qFrrpzE+zwhTRdNL6ChXNRJmYwY6ykjCXUuU4mUd0xOur04UMXvT0oBlBtmmJDLE0JBsXVNVkE4eLQrND2.nkZHrKOI0A8hoN4Y1N581bFxYcXT4AAD1KhuajPHfe8vNaikXEeKQFXW.QHoJHXtM4T3vql8sJZaR3IRd.b78BTyafR2NyeRQsQkn.hASPOUTPVHUdV9zGKsiOyKDWC0iJcFMcLVXJXDhTuIvXRRm2CsyfA.0OCfkPse7anLLEx88WIMqe7IrcG+4eeT9ibyH0ugw1DO7DApGQckixD7cMmr3f0m9Q2+26vNEHa83dXw4CyEm60YiYuNKM2bA0Rx50guVZ91Llc0n4k69An3P9aS.NlR71CfuApG9p.gHsxqTPeJTYX+HeanCIGB.UnTompZgYAUdc835pwJ.YSXtwC9G3IQYC0XyDkMFqbJgjxIsa.IfTAiqmLzp8iaLsFML+YTV0t.AI.KH848.FZ0PrJGxgPHYcqi83NmXS+IxEKQFngvVJKp5jrzVjJonkTpiKk.+xqVbRR7OFctFrTyFPoI59E+jD0Vo5sRMXVY3+i4s49f4t49ymiuz7sQ8RZluzUtl4m27Me3E1ZBuD6YZhFBVSCSDB5MOFa5e8RQyVz.Uwbk91BxODQXNi0+q69m+0CTzhNYrpl+RyGgOkLfK7SX1oyzdjgPDHuj9D+.NbsTm7LPaeNWNBNjNIY6lM2iyC1gotMha9Io2Hbnp29PhbhoAlV3BG3P3dFsTIfxqryPFWPz2WHu7VQgRt+3EP78Sskjf3SwleOZyMpAOC9L06unE75tGrbF+pzCZi4eOe1TS0U4R2xULzqfsyqQYJw6+PT9NZTtB5PLyk6GitqEO3U5LzCCI8wwe7LVmdFiEqYZp+VjkEgXobwoh+u9hSWJcEbY7M7wNB9SbzMSoRFrRrDXcyh+61VE0UM1pgQbCVpZ.0qU2vGpX9DGGUH91PA3o6ycV.et6B3yFKfO2aA7YyEvm6u.974yzGUyJeSDTyQejCDzaGcN.yzRclEM9WfpZONI
      
      d.healeyD LindonL DanHD 3 Replies Last reply Reply Quote 3
      • d.healeyD
        d.healey @Christoph Hart
        last edited by

        @Christoph-Hart Excellent!

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

          @Christoph-Hart said in Modulator level broadcaster:

          @d-healey Now it is.

          I've also added the possibility to connect global cables directly to Global modulators as source and any module parameter as target, so you don't have to go through scriptnode anymore for this.

          const var gm = Engine.getGlobalRoutingManager();
          const var c = gm.getCable("Global LFO 1");
          
          c.connectToGlobalModulator("LFO", true);
          c.connectToModuleParameter("Simple Gain1", "Balance", {"MinValue": -25.0, "MaxValue": 25.0});
          

          this opens up many new options of block-rate modulation of any parameter in HISE!

          HiseSnippet 1248.3oc2X0saaaCEVx1rKwqanYqXWLfAH3qb2RMraSS2OXndwINvXwIFQtocXWTvHQaSDIRMJprlUz62c6UXWsmi8HrWgsmf8FrcnnrjbhqqqqaV5zEBlmen93ge7bNz8DbGRXHWXXtZ+yBHFlWGYeFSNp0HLkYzYaPNpK2sOITZr0YA3vPhqgoYwcUpMWsjQ7ye+fsvdXlCISjgwQbpCYOpOUlIsWyuk540F6R5S8yY8FM63vYs3d7H.JEQ0MBvNmfGR1GqLq.xv7Z63RkbgsDKIgFlk1h6dl8H9Oxz1eDMjdrGQMnggMLQZws4dtJDqjZzZD0ys23kbnggIpWV.nnN.bSTWpKMUdVf3FwJrx7He7vrvjvq3DvqQd3UOG7lBjLyAoRZHsFx1QPCjYZT34cQcXRhX.FB64gh1ViB+lIpEGrfIq4iOgzV.CR8n5l0qutE75VeU4xPnOTZcJVXMz25qs1gMjxH0FRj65wOF6cHORRYC6hYvFhnJ3QlCNf8C8U11BCqupUztXsW6CrZTIdxqAVyHNx9bsNfNE4ggXU0JfUUV2RJhHpIMyvXSH8vBX2G.b0J1T+.Ohkh00.7nRBcC94ypzkxNB6EQp7kV29N2qFrrpzE+zwhTRdNL6ChXNRJmYwY6ykjCXUuU4mUd0xOur04UMXvT0oBlBtmmJDLE0JBsXVNVkE4eLQrND2.nkZHrKOI0A8hoN4Y1N581bFxYcXT4AAD1KhuajPHfe8vNaikXEeKQFXW.QHoJHXtM4T3vql8sJZaR3IRd.b78BTyafR2NyeRQsQkn.hASPOUTPVHUdV9zGKsiOyKDWC0iJcFMcLVXJXDhTuIvXRRm2CsyfA.0OCfkPse7anLLEx88WIMqe7IrcG+4eeT9ibyH0ugw1DO7DApGQckixD7cMmr3f0m9Q2+26vNEHa83dXw4CyEm60YiYuNKM2bA0Rx50guVZ91Llc0n4k69An3P9aS.NlR71CfuApG9p.gHsxqTPeJTYX+HeanCIGB.UnTompZgYAUdc835pwJ.YSXtwC9G3IQYC0XyDkMFqbJgjxIsa.IfTAiqmLzp8iaLsFML+YTV0t.AI.KH848.FZ0PrJGxgPHYcqi83NmXS+IxEKQFngvVJKp5jrzVjJonkTpiKk.+xqVbRR7OFctFrTyFPoI59E+jD0Vo5sRMXVY3+i4s49f4t49ymiuz7sQ8RZluzUtl4m27Me3E1ZBuD6YZhFBVSCSDB5MOFa5e8RQyVz.Uwbk91BxODQXNi0+q69m+0CTzhNYrpl+RyGgOkLfK7SX1oyzdjgPDHuj9D+.NbsTm7LPaeNWNBNjNIY6lM2iyC1gotMha9Io2Hbnp29PhbhoAlV3BG3P3dFsTIfxqryPFWPz2WHu7VQgRt+3EP78Sskjf3SwleOZyMpAOC9L06unE75tGrbF+pzCZi4eOe1TS0U4R2xULzqfsyqQYJw6+PT9NZTtB5PLyk6GitqEO3U5LzCCI8wwe7LVmdFiEqYZp+VjkEgXobwoh+u9hSWJcEbY7M7wNB9SbzMSoRFrRrDXcyh+61VE0UM1pgQbCVpZ.0qU2vGpX9DGGUH91PA3o6ycV.et6B3yFKfO2aA7YyEvm6u.974yzGUyJeSDTyQejCDzaGcN.yzRclEM9WfpZONI
          

          Whats "LFO" here- is it (for example) an LFO used in the Gain Modulation section of the Simple Gain fx?

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon --just go load the snippet lindon...

            ... lindon loads the snippet.....

            Ohh..I see... cool

            HISE Development for hire.
            www.channelrobot.com

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

              @Lindon can I do this:

              const var gm = Engine.getGlobalRoutingManager();
              const var c = gm.getCable("Global LFO 1");
              
              c.connectToGlobalModulator("LFO", true);
              c.connectToModuleParameter("Simple Gain1", "Balance", {"MinValue": -25.0, "MaxValue": 25.0});
              c.connectToModuleParameter("Simple Gain2", "Balance", {"MinValue": -25.0, "MaxValue": 25.0});
              

              HISE Development for hire.
              www.channelrobot.com

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

                @Lindon Try it :)

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

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

                    I want to use the attachToModuleParameter to send the output intensity of the LFO to a knob. It looks to me though that I picked the wrong word when I said Intensity as this is of course the intensity slider, what I need is the output level.

                    Is there a way to get this with a broadcaster?

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

                      @d-healey is it a global mod?

                      d.healeyD 1 Reply Last reply Reply Quote 0
                      • DanHD
                        DanH @Christoph Hart
                        last edited by

                        @Christoph-Hart This is huge! Well done!

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

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

                          @Christoph-Hart Yes

                          Christoph HartC 1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart @d.healey
                            last edited by

                            @d-healey then you can attach a global cable to the modulator and a broadcaster to the global cable.

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

                              @Christoph-Hart Which attach function do I use to attach the broadcaster to the cable?

                              Also, any reason I shouldn't do it this way?

                              const var gm = Engine.getGlobalRoutingManager();
                              const var c = gm.getCable("Global LFO 1");
                              
                              c.connectToGlobalModulator("LFO Modulator1", true);
                              
                              const var Knob1 = Content.getComponent("Knob1");
                              
                              c.registerCallback(function(value) {Knob1.setValue(value);}, false);
                              
                              Christoph HartC 1 Reply Last reply Reply Quote 0
                              • Christoph HartC
                                Christoph Hart @d.healey
                                last edited by

                                You just pass in the broadcaster into the registerCallback() function and then it will distribute it to its listeners:

                                const var rm = Engine.getGlobalRoutingManager();
                                
                                const var lfo_cable = rm.getCable("LFO");
                                lfo_cable.connectToGlobalModulator("LFO Modulator1", true);
                                
                                const var bc = Engine.createBroadcaster({
                                	"id": "Mod Output",
                                	"args": ["value"]
                                });
                                
                                // Use the broadcaster instead of a function
                                lfo_cable.registerCallback(bc, AsyncNotification);
                                
                                
                                bc.addListener("", "logger", function(value)
                                {
                                	//Console.print(value);
                                });
                                

                                Whether you want a broadcaster or directly use a function is up to your project layout, but using a broadcaster will get you more flexibility.

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

                                  @Christoph-Hart And if you want to connect it to a knob, you even don't need to script that, but let the addComponentValueListener() function do its job:

                                  bc.addComponentValueListener("Knob1", "direct link", "");
                                  
                                  d.healeyD 1 Reply Last reply Reply Quote 1
                                  • d.healeyD
                                    d.healey @Christoph Hart
                                    last edited by

                                    @Christoph-Hart Thank you. Yes the broadcaster solution will be more suitable here because I have multiple controls being linked to the LFO.

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

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

                                        Now I'm thinking this may just look annoying and not be very useful. What does the group think?

                                        Peek 2023-04-23 15-02.gif

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

                                          @d-healey well it might work better is your modulator wasnt running so fast...

                                          HISE Development for hire.
                                          www.channelrobot.com

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

                                            @Lindon But the faster the better, no? :) In the end I won't be able to control what speed the user sets it to so I'm going for ugliest scenario here.

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

                                            17

                                            Online

                                            1.8k

                                            Users

                                            12.2k

                                            Topics

                                            105.9k

                                            Posts