Modulator level broadcaster
-
-
@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});
-
@Lindon Try it :)
-
This post is deleted! -
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?
-
@d-healey is it a global mod?
-
@Christoph-Hart This is huge! Well done!
-
@Christoph-Hart Yes
-
@d-healey then you can attach a global cable to the modulator and a broadcaster to the global cable.
-
@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);
-
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-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", "");
-
@Christoph-Hart Thank you. Yes the broadcaster solution will be more suitable here because I have multiple controls being linked to the LFO.
-
This post is deleted! -
Now I'm thinking this may just look annoying and not be very useful. What does the group think?
-
@d-healey well it might work better is your modulator wasnt running so fast...
-
@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.
-
@d-healey well its really up to the user as you say - as a user if I set my modulator speed high then I would expect it to show me something like you have....
-
You can add a simple low pass filter on the scripting layer to the values if you want to smooth fast changes.
-