Forum
    • Categories
    • Register
    • Login

    Matrix Modulation System - Last Call for bugs fixes & changes!!

    Scheduled Pinned Locked Moved General Questions
    100 Posts 5 Posters 5.0k 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.
    • ustkU
      ustk @DanH
      last edited by ustk

      @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 has ExternalModulation set 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.

      Hise made me an F5 dude, any other app just suffers...

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

        @Christoph-Hart For the delete button, I can't seem to actually set a background color like I do with other elements.
        background and background-color are both setting the icon color (be it the original one or a custom icon in .delete-button::before)

        Hise made me an F5 dude, any other app just suffers...

        ustkU 1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @ustk
          last edited by ustk

          Why do I see both the controls that have a matrixTargetId and the actual Matrix Modulators (with the _MM suffix) in the drop down?

          Should they be named the same not to appears as duplicates?

          Screenshot 2026-01-25 at 22.23.16.png

          Hise made me an F5 dude, any other app just suffers...

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

            @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?

            Hise made me an F5 dude, any other app just suffers...

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

              The matrixTargetId is the ID of the modulator unless you explicitly change it

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

                @Christoph-Hart oh ok so if I use the same id it will appear only once?

                Hise made me an F5 dude, any other app just suffers...

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

                  yes, that's the idea.

                  ustkU 2 Replies Last reply Reply Quote 1
                  • ustkU
                    ustk @Christoph Hart
                    last edited by

                    @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...

                    zrg.gif

                    Hise made me an F5 dude, any other app just suffers...

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

                      @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

                      Hise made me an F5 dude, any other app just suffers...

                      Oli UllmannO 1 Reply Last reply Reply Quote 1
                      • Oli UllmannO
                        Oli Ullmann @ustk
                        last edited by

                        @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.

                        ustkU 1 Reply Last reply Reply Quote 0
                        • ustkU
                          ustk @Oli Ullmann
                          last edited by

                          @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.

                          Hise made me an F5 dude, any other app just suffers...

                          DanHD 1 Reply Last reply Reply Quote 1
                          • DanHD
                            DanH @ustk
                            last edited by

                            @Christoph-Hart setting matrixHandler.setCurrentlySelectedSource("LFO 1"); does not create the modulation draggers above connected ui components / knobs. It does everything else in matrixHandler.setSourceSelectionCallback(function(source) that I've set. Is there a way to force the selection to draw the draggers?

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

                            DanHD 1 Reply Last reply Reply Quote 0
                            • DanHD
                              DanH @DanH
                              last edited by

                              @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();
                              });
                              

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

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

                                @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.

                                DanHD 1 Reply Last reply Reply Quote 1
                                • DanHD
                                  DanH @Christoph Hart
                                  last edited by

                                  @Christoph-Hart done 🙏

                                  https://github.com/christophhart/HISE/issues/883

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

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

                                    @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.

                                    DanHD dannytaurusD 4 Replies Last reply Reply Quote 1
                                    • DanHD
                                      DanH @Christoph Hart
                                      last edited by

                                      @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!

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

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

                                        @Christoph-Hart Nice! 👏

                                        Does a new issue automatically trigger the workflow?

                                        Meat Beats: https://meatbeats.com
                                        Klippr Video: https://klippr.video

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

                                          @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.

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

                                            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.

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

                                            23

                                            Online

                                            2.2k

                                            Users

                                            13.5k

                                            Topics

                                            117.5k

                                            Posts