Matrix Modulation System - Last Call for bugs fixes & changes!!
-
@ustk lols
-
@DanH said in Matrix Modulation System - Last Call for bugs fixes & changes!!:
@Christoph-Hart So I'm not convinced that the accumulated range is helpful / necessary.
So I need to row back on this a little bit

Displaying the Accumulated Range and a range isn't important to me, but I definitely do need the accumulated range values in order to have my little white dot display how the modulation is behaving, accumulated or not.
So is it possible to get something like
obj.accumulatedModMin/obj.accumulatedModMaxas obj items in thedrawRotarySliderfunction? Might also need a currently selected range too (although this is basically "modMinValue": 1.0,
"modMaxValue": 1.0, I think?). -
@Christoph-Hart Would it be possible to have a value parameter inside the extra_mod nodes -this way we could change the values whilst editing the network. Currently we have to break all the connections and then reconnect them when we need to compile. Obviously the value param would be ignored in the compiled network.

-
@DanH if you assign a modulation slot to a network parameter and then use the extra mod for this, then you can use the network parameter as value parameter? This is how it's supposed to be used and compiled anyway.
-
@Christoph-Hart Ah ok, this does actually work in this latest commit
Didn't before, all good, bravo

-
@Christoph-Hart However it doesn't look like LFOs assigned to a parameter are having an effect yet....

-
@DanH In this case I think the parameter should just be a normal parameter without
ExternalModulation
The way I understand it, a scriptnode parameter that hasExternalModulationset shouldn't be connected with a cable.
Just set the target for the corresponding UI knob@Christoph-Hart if I'm right then the connector (and any previous cable) should be removed or disabled and greyed out.
-
@Christoph-Hart For the delete button, I can't seem to actually set a background color like I do with other elements.
backgroundandbackground-colorare both setting the icon color (be it the original one or a custom icon in.delete-button::before) -
Why do I see both the controls that have a
matrixTargetIdand the actual Matrix Modulators (with the _MM suffix) in the drop down?Should they be named the same not to appears as duplicates?

-
@Christoph-Hart Bump bump
What should we do with this?
Is it on your side or is there a specific procedure not to show the Matrix Modulators in the list? -
The matrixTargetId is the ID of the modulator unless you explicitly change it
-
@Christoph-Hart oh ok so if I use the same id it will appear only once?
-
yes, that's the idea.
-
@Christoph-Hart Got a weird one...
Changing the target from the dropdown, the modulation stays on the previous target.
The dragger appears on the new one but the modulation is still heard on the first target...
-
@Christoph-Hart So in the end, removing a connection from:
- Double click on the dragger -> works
- Click the delete button in the matrix -> works
- Select "No Connection" or another target from the dropdown -> doesn't work
-
@ustk
@Christoph-Hart
An addition to this:
This only happens if a MatrixModulator is used for the parameter. If only the matrixTargetId is used for modulation for the parameter, the problem does not occur. -
@Oli-Ullmann Exact, that's why I didn't see the problem before (aka in the 8th post above this one where I didn't have the issue yet) because I had different names.
-
@Christoph-Hart setting
matrixHandler.setCurrentlySelectedSource("LFO 1");does not create the modulation draggers above connected ui components / knobs. It does everything else inmatrixHandler.setSourceSelectionCallback(function(source)that I've set. Is there a way to force the selection to draw the draggers? -
@DanH @Christoph-Hart Ah so the draggers weren't ready to be drawn yet, so I've had to use a couple of delayed calls to make them appear after they're ready to be drawn for both compiling and launching the project first time:
matrixHandler.setCurrentlySelectedSource("LFO 1"); // Force trigger the broadcaster after a short delay Content.callAfterDelay(50, function() { // Try to manually trigger what normally happens on click matrixHandler.setCurrentlySelectedSource(""); // Clear matrixHandler.setCurrentlySelectedSource("LFO 1"); // Set again }); Engine.createTimerObject().startTimer(1000); Engine.createTimerObject().setTimerCallback(function() { matrixHandler.setCurrentlySelectedSource("LFO 1"); Console.print("Delayed init complete"); this.stopTimer(); }); -
@DanH wow that looks hacky. I think the reason is that at the time the script's onInit is executed, the actual UI components of your interface don't exist, so they don't get the notification to show the draggers when they are created. The proper solution would be to correctly initialise the "dragger state" when creating the UI components - there's already a system in place for that because the
hise::LambdaBroadcaster<T>class which is used for communicating the exclusive source has the option of initialising new listeners directly with the current state.I'll try later whether the AI can oneshot-fix this with my assessment and our new workflow. If you want you can create a github issue from this, then I can also test the workflow as it is intended to be.