Matrix Modulation System - Last Call for bugs fixes & changes!!
-
@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.
-
-
@DanH yup, one shot indeed....
https://github.com/christophhart/HISE/pull/884
I couldn't reproduce your bug as this requires a lot of UI components to hit that scenario, but if you checkout the branch with the fix and confirm that it works, then I'll merge it into develop.
Aside from the concrete bug that we solved: with the new workflow setup correctly and an AI agent you'll be able to solve that completely on your own - it analysed the bug correctly, made a risk assessment that correctly came to the conclusion that this is a non-breaking change / fix and then applied the fix exactly as I would have done it. It also automatically would have created this PR with the summary so that I can do a quick review and merge that with a single click. Scary times.
-
@Christoph-Hart Thanks! I'm in a more manual mode tackling a couple of other issues right now which I'll post if and when successful, but a one shot option would certainly have made my morning go a lot smoother hahah!
-
@Christoph-Hart Nice!

Does a new issue automatically trigger the workflow?
-
@dannytaurus said in Matrix Modulation System - Last Call for bugs fixes & changes!!:
Does a new issue automatically trigger the workflow?
Not yet, but certainly something we can think about in the future. Currently the flow of events would be like this:
- user finds bug
- user either creates an issue or directly starts the HISE MCP server tool
/contribute- it accepts a issue link or a bug description as input - the AI agents makes a risk assessment and analyses the HISE codebase for a proposed fix. If green light + everything smooth (like in this case), it directly fixes it, creates a fork + branch with that fix, makes a PR and tags me. I'll just need to open that PR, quickly review it and merge it into develop if OK.
I'm not quite sure where the automatic workflow trigger fits in this workflow because there are two key steps in the phase that still require human intervention: 1. Building HISE & reproduce the bug and the fix. This can be done completely by the contributor, but cannot be automated away. 2. Code review the actual change before it is merged into HISE. I will defend this task to myself with my last dying breath.
-
Thanks! I'm in a more manual mode tackling a couple of other issues right now which I'll post if and when successful, but a one shot option would certainly have made my morning go a lot smoother hahah!
I'm meeting with Dominik tomorrow and we'll test the contributor route of that workflow tomorrow, then push it to the remote MCP server instance so you can use it too. When the AI stuff is integrated into HISE you'll likely want to run a local MCP server so you can connect with HISE to interact with it from your agent, but for now this function should be fully functional from a remote server.
-
@Christoph-Hart hasn't seemed to fix it for me actually.... I removed all my hacky script, but when opening the project no draggers are visible. I still have to click on a source button to show them.
I actually get the
Selectable sources are disablederror if I havematrixHandler.setCurrentlySelectedSource("LFO 1");in the script. Have launched the project with and without.This is throwing me because I've been messing about elsewhere in the source and getting the same error and behaviour, although I didn't pull these changes into that same fork. So hopefully the error makes sense to you.
EDIT - Having reopened my project in my current fork of Hise a huge effect chain is missing from the module tree.... Only seems to come back in the fork I created just now to test this fix... Not sure what's going on there, but it's slightly buggered me
EDIT 2 - I get the
Selectable sources are disablederror even without pulling the fix into the latest develop. Since my project no longer works with my previous version of Hise I'm trying to move to latest commit but I can no longer compile my networks so....EDIT 3 - Finally got project working. Can see you've made some changes to this system since my last commit and before the fix but behaviour same as I just posted: using
matrixHandler.setCurrentlySelectedSource("LFO 1");causesSelectable sources are disablederror to fire on launch.
