Forum
    • Categories
    • Register
    • Login

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

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

      @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 disabled error if I have matrixHandler.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 disabled error 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"); causes Selectable sources are disabled error to fire on launch.

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

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

        @Christoph-Hart said in Matrix Modulation System - Last Call for bugs fixes & changes!!:

        Alright, the z-order should be fixed now, it also monitors the slider's visibility and hides itself when the parent slider is hidden.

        Testing this again and the popups will get clipped by the parent panel's edges if the ui control is too close to the panel edge. I tried to have Claude draw the popups one level higher, which it could, until the higher level was the top level, at which point the popups either didn't draw or were drawn somewhere off screen - no way to tell.

        So I would suggest drawing the popups one level higher that the parent (if possible). Perhaps there is no one-size-fits-all solution, but one level higher avoids immediate clipping and decent amount of flexibility to find a solution if required by the dev.

        Also in the fix commit it states: fix z-order of mod hover popup when using exclusive source matrix mode.

        What's the behaviour in non exclusive mode? As it was before i.e popups drawn at top level?

        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

          Testing this again and the popups will get clipped by the parent panel's edges if the ui control is too close to the panel edge.

          Yes it's your job now to take care of that. If you're in Exclusive mode, they become part of your regular UI so you need to make space for them anyways, no?

          What's the behaviour in non exclusive mode? As it was before i.e popups drawn at top level?

          Yup, in non-exclusive mode you want them to show up in a modal UX workflow and it's OK if they temporarily hide other UI elements.

          In both cases you should be able to control the positioning with LAF, there is a method that you can overwrite and define the positions of the knobs as well as the text label

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

            @Christoph-Hart said in Matrix Modulation System - Last Call for bugs fixes & changes!!:

            they become part of your regular UI so you need to make space for them anyways, no?

            How do you mean? The draggers appear on source select sure, but the labels still appear only on hover. I draw a little placeholder for the dragger if that knob is connected to a source, but the label still needs to be drawn on hover.

            @Christoph-Hart said in Matrix Modulation System - Last Call for bugs fixes & changes!!:

            you should be able to control the positioning with LAF

            Yep, but this essentially puts the labels in non-optimal / inconsistent positions fairly frequently on the ui.

            In my specific case the draggers can remain at nested level. It's the labels that are causing the issue.

            I can most likely get away with this in every area except for my swappable fx section, where the ui controls must be nested in the panels for obvious reasons.

            I'm pretty close with Claude, it's just the top level bit it can't figure out. Happy to share my progress.

            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 one level higher is a hack and just solves your immediate problem. If the parent component one level higher happens to cause clipping we're back at square one. Sounds like One More Lane Bro to me...

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

                @Christoph-Hart that's fair enough, there isn't a solution for everyone I guess. Happy to force it myself in the source but Claude couldn't get over the line, here's where we got to:

                Here's the full code we tried with the limitation noted:

                if(auto pp = parent->getParentComponent())
                {
                    auto gpp = pp->getParentComponent();
                    
                    if(gpp != nullptr)
                    {
                        auto pIndex = gpp->getIndexOfChildComponent(pp);
                        gpp->addAndMakeVisible(this, pIndex+1);
                        
                        auto b = dragAreas.getBounds();
                        if(!labelArea.isEmpty())
                            b = b.getUnion(labelArea);
                        
                        auto topLeft = gpp->getLocalPoint(pp, b.expanded(pd.margin).getTopLeft());
                        setBounds(b.expanded(pd.margin).withPosition(topLeft));
                    }
                    else
                    {
                        auto pIndex = pp->getIndexOfChildComponent(parent);
                        pp->addAndMakeVisible(this, pIndex+1);
                        
                        auto b = dragAreas.getBounds();
                        if(!labelArea.isEmpty())
                            b = b.getUnion(labelArea);
                        setBounds(b.expanded(pd.margin));
                    }
                }
                
                auto translationToOrigin = AffineTransform::translation(getBoundsInParent().getTopLeft().toFloat() * -1.0f);
                dragAreas.transformAll(translationToOrigin);
                if(!labelArea.isEmpty())
                    labelArea = labelArea.transformed(translationToOrigin);
                

                Limitation: This works for slider → panel → panel (grandparent is a panel), but fails for slider → panel → top level UI. In that case gpp is the top level HISE component which doesn't behave like a regular panel for addAndMakeVisible, so the popup either doesn't appear or appears offscreen. We couldn't resolve the coordinate space translation reliably for that case.

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

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

                  @Christoph-Hart said in Matrix Modulation System - Last Call for bugs fixes & changes!!:

                  confirm that it works

                  Tried it fresh again just now and get the Selectable sources are disabled error when using matrixHandler.setCurrentlySelectedSource(); so I'm not really sure if it works or not!

                  Have set "UnselectableExclusiveSource": to both true and false in the ModMatrix floating tile but neither changes anything

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

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

                    Might take a look at this now but I think it would be nice to have an option to draw the label on obj.clicked rather than auto appearing on hover. There is no .clicked option in getModulatorDragData currently, and my effort to implement one with Claude code hit a wall.

                    EDIT - Seemed to have got the clicked behaviour I wanted by drawing it .clicked in drawModulationDragBackground instead :). However, the issue of the label appearing when I don't want it to means that if I click in the label's area the label appears.

                    EDIT 2 - I've got it so the label won't appear on click but if the mouse is in the label zone it still activates the hover laf for the dragger, so there's no real workaround here. I think the dragger and label need to be decoupled. Everything I'm doing is pretty hacky....

                    @DanH said in Matrix Modulation System - Last Call for bugs fixes & changes!!:

                    @Christoph-Hart so with the singleDragger method the dragger knob's label will appear on hover when hovering in it's location, rather than the label only appearing when hovering over the dragger itself. I've drawn the label well away from the dragger in the example below but you can see the label appear on mouse hover:

                    ScreenRecording2026-01-16at10.37.46-ezgif.com-video-to-gif-converter.gif

                    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 Had Claude Code implement the decoupled label system, whilst retaining original behaviour. Seems solid but needs further testing. Can't comment on the code quality, but happy to pass on the summary if interested.

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

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

                        @Christoph-Hart So I'm back after being away for a while and it seems a lot of things happened around here!
                        Still the issue of selecting another target or "No Connection" from the dropdown is not fixed.
                        I did try the branch fix/686-matrix-target-change with no improvement

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

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

                        17

                        Online

                        2.2k

                        Users

                        13.4k

                        Topics

                        117.0k

                        Posts