Forum
    • Categories
    • Register
    • Login

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

    Scheduled Pinned Locked Moved General Questions
    91 Posts 5 Posters 3.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.
    • DanHD
      DanH @DanH
      last edited by DanH

      @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.accumulatedModMax as obj items in the drawRotarySlider function? Might also need a currently selected range too (although this is basically "modMinValue": 1.0,
      "modMaxValue": 1.0, I think?).

      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

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

        Screenshot 2026-01-23 at 13.09.51.png

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

          DanHD ustkU 3 Replies Last reply Reply Quote 0
          • DanHD
            DanH @Christoph Hart
            last edited by

            @Christoph-Hart Ah ok, this does actually work in this latest commit 😆 Didn't before, all good, bravo 👏 😆

            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

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

              ScreenRecording2026-01-23at13.33.36-ezgif.com-video-to-gif-converter.gif

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

              ustkU 1 Reply Last reply Reply Quote 0
              • 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 amatrixTargetId 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
                                            • First post
                                              Last post

                                            21

                                            Online

                                            2.2k

                                            Users

                                            13.4k

                                            Topics

                                            116.8k

                                            Posts