HISE Logo Forum
    • Categories
    • Register
    • Login

    Matrix Modulation Feedback

    Scheduled Pinned Locked Moved General Questions
    74 Posts 4 Posters 2.4k 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.
    • Christoph HartC
      Christoph Hart @DanH
      last edited by

      @DanH I don't understand - what's got the selection callback have to do with it?

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

        @Christoph-Hart well for example I'm showing the relevant tabs depending on which source is selected but when I reopen the project it defaults to the first in the list and displays that tab and that button is highlighted.

        or are you referring to my other question? 😆

        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 yes I meant the previous question.

          With the Source Select callback the default selection seems to be the first modulator in the list. Is there a way to script this to a different one?

          Can't you just call

          ScriptModulationMatrix.setCurrentlySelectedSource(String sourceId)
          

          with an empty string?

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

            @Christoph-Hart Thanks, will try. (worked great 👍 )

            So for the persistent UI modulation dragger - The source selection callback can show only the draggers relevant to the selection. If we create permanent ui controls we'd lose the current system of showing / hiding the draggers depending on the selection.

            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

              If we create permanent ui controls we'd lose the current system of showing / hiding the draggers depending on the selection.

              Can't you use the callback to hide the controls?

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

                @Christoph-Hart yeah. I dunno, If I have 100 controls that can be a target do I then need to make (100 x each source) draggers and show / hide them with the callback? Apologies if I'm being dumb about this!

                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

                  A suggestion: would it make sense to switch the mouse cursor to up / down arrows when hovering on a modulation dragger?

                  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 so is it not possible to have a monophonic MatrixModule? Something we could use at the container level in it's fx chain? If we can have global time variant modulators I don't see why we can't have a Matrixmod...

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

                    Oli UllmannO Christoph HartC 2 Replies Last reply Reply Quote 0
                    • Oli UllmannO
                      Oli Ullmann @DanH
                      last edited by

                      @DanH
                      Christoph told me in this thread that the modulation is monophonic if you only use the “matrixTargetId” from the Properties Editor and don't use a matrixModulatorModule. Maybe that's what you want.

                      Link Preview Image
                      Matrix Modulator - Advantages?

                      @Christoph-Hart @Orvillain Thanks, guys, that's very interesting and helpfu! :-)

                      favicon

                      Forum (forum.hise.audio)

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

                        @DanH the problem is that containers also don‘t split up the buffer for midi messages and process them so this would be a little too much overhead for all projects to change this, but I‘ll see what I can do.

                        DanHD 2 Replies Last reply Reply Quote 0
                        • DanHD
                          DanH @Oli Ullmann
                          last edited by

                          @Oli-Ullmann yup but also want sample accurate modulation.

                          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 awesome thank you 🤗

                            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 Feedback:

                              @DanH the problem is that containers also don‘t split up the buffer for midi messages and process them so this would be a little too much overhead for all projects to change this, but I‘ll see what I can do.

                              Did this get anywhere in the end?

                              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 quick question about modulation ranges: let's say I have a hardcoded synth with a pitch knob of +/- 24 but on my UI I have a pitch knob to control it of only +/- 12.... If I connect a modulator which range is it going to be using?

                                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 you set the input / output ranges of the matrix modulator to match the pitch modulation range - the knob on your UI must exactly match the input range, and the output range must be the correct range representing the input range in the modulation domain.

                                  There are two presets for +-12 and +-24 semitones that you can directly use.

                                  HiseSnippet 1500.3oc6Y0saaaCElJIrsI8Grt0KFFv.zE6hzshBaGG2DrKpabh67ZRsQTZ1v1EELRT1BQhTihJMYC6YXuB8l8br9HrGk9FrcnnrrjiqiiqaZZQ8EFl+bH+NGd94izcDbaZTDWfLVZuSBoHiafsNgI60nGwigZsIx3V3cHQRpvT20FmDRhhnNHCi4erpCiEW.k740ObChOgYSGzEBsO2yltsWfmbPucp+DOe+lDG5ddA4lc05sr4rFbedLfm4wkPgD6CIcoOknl1bXzOPh5gL9V7pUVwtpyCbpTY00qYSpQW2k35VdEmpUqs15kWYcR00pQKsJx3Ja43I4BKIQRifEcCtyIV83ufo2f88h7NvmpZTFYA6rtaTidd9Nc5abhPHiq1YfoZdso5N3c7b7x5efI6yRFvbfD4MZFyMNHU9b.IibPZAMjtM1xV3EJGLhBOWG2hAmftD3rIOTzyEY7JbCNLAl79AjCoMEPiLAVtVoR2yD95teuaLyV5wYlb1S4RZa1x2co+XoEW5OWxb3gbcG4XpsQv88ohQNrxcPLNAWlEGb.UbOyiH9wzrIBpeQa5UlLapsVqyMQNqEyS1Njl1tI22QYqT+9zm.nTyFbVLWJBgoJSNItU5IgkumCUf7fE4p3mv3GTFk.97AInIV3JiP3m0ZShjn7GRgC.wPpP5orDFaROBh.0dGKh2jFcnjGlf2fPNSAdiqelH93rM7kt0OAYfM9a32R5wJowsYz11RxQTTP97AK+p.xw4ZVOruoqkiJFISrNdR6dPrt.ByAutVIa79I5Ij3Izx62AzgwkueITTrqq2wpVlQRkcahUhJJk.a7iFHThB7xLE3F38dAWijnhZvZE0f0FVCxja50fSGBCIO3Nw9DYwLJpbsoC.gDEBiUwprHO4I4yEeNRyTZroYlTHdabhUXzXbtQfQUTy6.Lllb9l3sbco1xA.bAbyedZyDO4a+0za+WgerO+.h+.CEDaBHgpyH+0oCalMtY1DJOlZr+6jViMbhqwNbtyoudzBuGJQNa7c+hScbDcAFgUnP9s0vDi2tY6TKE7qA.q7YCrM7B49DgZ7lB5uESY14F+Z0UdEsF3TU+up+SPNLWtHHsLQ1JsMsKrm46YOJjwEXHZm2AzJfyk87XcK5qcm5ay4gawHfUvI+hzoGIRwQHhJKrLvxtGWy1rgO29v7C1pKiKnZdG46uQbjjGzWARXIZAobSJIZ7q3ZUuO7w86TeudC3qUZOaZilc73lah8RUdBYG4JehKg0AznLyw6RJJGa0p4+3tZ0t7XIDrtCQJRXh7z3.KnbfME1cFi5Go3GMmJ1R2tjpcR.Jk4jz3+fOoCVV01Hcvx8GDoWbMwz756sz560wVPotjaZlns2PwFzLkE4EZ4O8dtmfvhB4QEVXKZf2d.8xn7c9rHpx2dWkSSg7PbhXjC85G1DT0QJiEQFKR79dT.OlUHYnw7EOtWXxRuTjlXt4eQVudgIy07Ltb0kepwEJbuXeLZ4ED5S2hcD0GtGVBF+b3hWtjXeY+dKVEeGNiG1iy7JTUcWJDB0sKUjG6iTgdjTRxWs7N02k5SI48l+l5aCdgDAXmnSos37+ZDi775KwZ3ZphLMeaN2tPcylAELlI3sfcdo9u5iNcaFrSCLF5F14uO14vkKGcxQdrnYfotyKv8Z+gedh2.2vV0GNA2T64o2ycIrtTkMuEKLVpaYfG+CRzBhFER8I3f6ommr6wR3ZYISRjTzBpHHSpHfZGKeS6yq+mB6iJncb6SRMEH6ZGNXYU0Bh9EpfqNjlMDElMgIWDjFNadB2T8lKl8erlOQT3CbhBuyo4+AI4fJehbvaO4fOpuA44gDvPOR8T5Z8QCIfS8l9uiHAfJtOn5ueIAb490BtH1i.hsf+ba8+zlJF5ZI8.5MK4uWdQH9AZaNh+et.nh1yssKtTmRvJSqfqLsBVcZEb0oUvZSqfOXZEbsyVPEgiGECoezogQnc5rk98eMxd7Yi4Q+O.W0HpI
                                  
                                  DanHD 1 Reply Last reply Reply Quote 1
                                  • DanHD
                                    DanH @Christoph Hart
                                    last edited by

                                    @Christoph-Hart cool, very straightforward :)

                                    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 I've recently had a few seemingly random crashes of Hise. Just moving my mouse and boom... Seems it could be something to do with mouse hover and the new mod system? Or maybe I've messed something up in my configuration. Would you mind looking at the crashed thread?

                                      Thread 0 Crashed:: JUCE Message Thread Dispatch queue: com.apple.main-thread
                                      0   HISE-5                        	       0x104b6e4e4 hise::MatrixIds::Helpers::IntensityTextConverter::IntensityTextConverter(hise::MatrixIds::Helpers::IntensityTextConverter::ConstructData const&) + 80
                                      1   HISE-5                        	       0x10497ff64 hise::HiSlider::HoverPopup::rebuild() + 1652
                                      2   HISE-5                        	       0x10497f108 hise::HiSlider::showModHoverPopup(bool, bool) + 4380
                                      3   HISE-5                        	       0x10497be78 hise::HiSlider::mouseEnter(juce::MouseEvent const&) + 24
                                      4   HISE-5                        	       0x105f9522c juce::Component::internalMouseEnter(juce::MouseInputSource, juce::Point<float>, juce::Time) + 280
                                      5   HISE-5                        	       0x105f5a438 juce::MouseInputSourceInternal::setComponentUnderMouse(juce::Component*, juce::Point<float>, juce::Time) + 684
                                      6   HISE-5                        	       0x105f597a0 juce::MouseInputSourceInternal::setScreenPos(juce::Point<float>, juce::Time, bool) + 108
                                      7   HISE-5                        	       0x105f84834 juce::JuceNSViewClass::mouseMoved(objc_object*, objc_selector*, NSEvent*) + 216
                                      8   AppKit                        	       0x197152098 -[NSTrackingArea mouseMoved:] + 116
                                      9   AppKit                        	       0x1977d7bcc -[_NSTrackingAreaAKManager _mouseMoved:] + 440
                                      10  AppKit                        	       0x197b06220 _routeMouseMovedEvent + 224
                                      11  AppKit                        	       0x197067d20 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 556
                                      12  AppKit                        	       0x19706792c -[NSWindow(NSEventRouting) sendEvent:] + 288
                                      13  AppKit                        	       0x1978df780 routeMouseMovedEvent + 148
                                      14  AppKit                        	       0x1978def5c -[NSApplication(NSEventRouting) sendEvent:] + 1192
                                      15  AppKit                        	       0x1974de4a4 -[NSApplication _handleEvent:] + 60
                                      16  AppKit                        	       0x196f34c8c -[NSApplication run] + 520
                                      17  HISE-5                        	       0x10472a5a8 main + 296
                                      18  dyld                          	       0x192e66b4c start + 6000
                                      

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

                                      1 Reply Last reply Reply Quote 0
                                      • OrvillainO
                                        Orvillain
                                        last edited by

                                        @Christoph-Hart

                                        Does the ModulationMatrixController use the FloatingTile fontSize property???

                                        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                        Crafting sound at every level. From strings to signal paths, samples to systems.

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

                                          @Orvillain nope

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

                                            @Christoph-Hart

                                            I'm trying to do this:

                                            inline function setupModulationControlPanelLAF(numDraggers)
                                                {
                                                    Console.print("rescaling triggers the setupModulationControlPanelLAF, and UI_SCALE is: " + SharedData.UI_SCALE);
                                                    local wPct = 100.0 / numDraggers;
                                                    local fontPx = Math.round(12 * SharedData.UI_SCALE);
                                                    Console.print("fontpx is: " + fontPx);
                                                    local laf = Content.createLocalLookAndFeel();
                                                    laf.setInlineStyleSheet("
                                                        
                                                    #controller
                                                    {
                                                        display:flex;
                                                        flex-wrap:nowrap;
                                                        align-items:center;
                                                        width:100%;
                                                        padding:0;
                                                        gap: 2px;
                                                        border-radius:0;
                                                        background:#333;
                                                        overflow:hidden;
                                                    }
                                                    
                                                    .control-button
                                                    {
                                                        display:none;
                                                    }
                                            
                                                    .dragger
                                                    {
                                                        display:block;
                                                        flex:0 0 " + wPct + "%;
                                                        width:" + wPct + "%;
                                                        height:100%;
                                                        min-width:0;
                                                        box-sizing:border-box;
                                                        white-space:nowrap;
                                                        overflow:hidden;
                                                        text-overflow:ellipsis;
                                                        text-align:center;
                                                        background-color:rgba(76, 76, 76, 1);
                                                        opacity: 0.8;
                                                        font-size:" + fontPx + "px;
                                                    }
                                            
                                                    .dragger::before
                                                    {
                                                        content: '';	
                                                        background-color: white;
                                                        background-image: var(--dragPath);
                                                        width: 24px;
                                                        margin: 2px;
                                                    }
                                            
                                                    .dragger:checked
                                                    {
                                                        background-color:rgba(255, 0, 0, 1);
                                                        opacity: 1.0;
                                                    }
                                            
                                                    ");
                                            
                                                    local tile = Content.getComponent("ft_modcontroller");
                                                    tile.setLocalLookAndFeel(laf);
                                                }
                                            

                                            This function is called at init, but is also called when I rescale my UI (which is all code that definitely works) ... but my font doesn't resize.

                                            The flex and width of the draggers does seem to update. So I think I'm doing the right technique???

                                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                            Crafting sound at every level. From strings to signal paths, samples to systems.

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

                                            21

                                            Online

                                            1.9k

                                            Users

                                            12.4k

                                            Topics

                                            108.4k

                                            Posts