HISE Logo Forum
    • Categories
    • Register
    • Login

    Matrix Modulation Feedback

    Scheduled Pinned Locked Moved General Questions
    75 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.
    • 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
                        • OrvillainO
                          Orvillain
                          last edited by

                          Or maybe I'm better off making custom panels with callbacks, and doing all of the scaling stuff I want to do inside regular LAF, rather than css ??

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

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

                            @Orvillain I solved my issue by making my font size a percentage of the dragger, but it was a bit weird. Everything I tried simply would not update the font size. Even doing a setStylePropertyblahblahblah call on the LAF object didn't work.

                            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 wait, how do you rescale your UI? Settings.setZoomFactor() should scale all fonts correctly.

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

                                @Christoph-Hart said in Matrix Modulation Feedback:

                                @Orvillain wait, how do you rescale your UI? Settings.setZoomFactor() should scale all fonts correctly.

                                No I'm not doing that. I have a custom scaling namespace that does a bunch of math, but ultimately what it does is update the properties of any UI widge - so x, y, w, h, fontSize, etc etc.

                                This kind of thing:

                                    inline function rescaleAll()
                                    {
                                        // Order of operations:
                                        // Resize interface
                                        // Re-apply panel bounds
                                        // Re-apply control bounds
                                        // Re-apply control style props (font, radii, etc.)
                                        // Reposition zoom handle
                                
                                        // Resize the window
                                        Content.makeFrontInterface(SharedData.getScaledWidth(), SharedData.getScaledHeight());
                                
                                        // Panels first (so parents are sized before children)
                                        for (i = 0; i < _layout.length; i++)
                                            _applyScaledBounds(_layout[i]);
                                
                                        // Controls: bounds then props
                                        for (i = 0; i < _controls.length; i++)
                                        {
                                            _applyScaledBounds(_controls[i]);
                                            _applyScaledProps(_controls[i]);
                                        }
                                
                                        LogicalZoom.onRescaled();
                                    }
                                

                                Effectively, I'm scaling everything manually. Not using the automatic zoom factor way to do it. I don't have a reason other than coder ego!!

                                And this all works fine, but setting the font-size property in the modulation controller didn't seem to update in any of the ways I tried.

                                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 now you have another reason. Also all dialogs / other inbuilt components will not scale correctly like this.

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

                                  25

                                  Online

                                  1.9k

                                  Users

                                  12.5k

                                  Topics

                                  108.4k

                                  Posts