HISE Logo Forum
    • Categories
    • Register
    • Login

    Sliders not responding to "Consumed" MIDI CCs

    Scheduled Pinned Locked Moved Solved Scripting
    21 Posts 4 Posters 216 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.
    • CyberGenC
      CyberGen @Chazrox
      last edited by

      @Chazrox good tip! thanks.

      1 Reply Last reply Reply Quote 0
      • CyberGenC
        CyberGen @CyberGen
        last edited by

        @CyberGen @Chazrox @d-healey @ulrik So by process of elimination I narrowed down the source of the problem to my customLoadPreset namespace. I am using:

        uph.setUseCustomUserPresetModel(onPresetLoad, onPresetSave, true);
        

        Something about this seems to be severing the MIDI CC connection. It works as far as recalling all my components, processors, modulators' values and attributes. But it seems to be the cause of the MIDI CC problem. When I don't "include" it, things work as expected.

        Do you have any experience with this custom user preset model function?

        ChazroxC d.healeyD 2 Replies Last reply Reply Quote 0
        • ChazroxC
          Chazrox @CyberGen
          last edited by

          @CyberGen I haven't rolled my own user preset handler myself yet.

          1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @CyberGen
            last edited by

            @CyberGen Why are you using that?

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            CyberGenC 1 Reply Last reply Reply Quote 0
            • CyberGenC
              CyberGen @d.healey
              last edited by

              @d-healey So, I use it primarily to recall the state of attributes from multiple processors as well as some objects that contain data values. It's complicated but it works great for that purpose. However, it is clearly causing this issue for me. Just by commenting out the function and restarting HISE all knobs work properly with their assigned CCs.

              d.healeyD 1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey @CyberGen
                last edited by

                @CyberGen Yeah I think once you're using a custom preset data model you have to handle everything. I haven't used it myself so can't offer much guidance.

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                CyberGenC 2 Replies Last reply Reply Quote 0
                • CyberGenC
                  CyberGen @d.healey
                  last edited by

                  @d-healey it's weird because it's been great with everything else, it offers much more control over what you can restore with presets. I'm using a custom preset browser as well. So, everything works except for MIDI CCs. Which I'm not really messing with.

                  1 Reply Last reply Reply Quote 0
                  • CyberGenC
                    CyberGen @d.healey
                    last edited by

                    @d-healey if the MIDI channel is -1, does that mean all channels or undefined?

                    CyberGenC 1 Reply Last reply Reply Quote 0
                    • CyberGenC
                      CyberGen @CyberGen
                      last edited by

                      @CyberGen so, I added a midiAutomationHandler as well as mah.getAutomationDataObject() and mah.setAutomationDataObject() to my custom save and load functions respectively. It's still not working. Additionally I added mah.setUpdateCallback(midiDataObj) for good measure. Still not working.
                      I noticed that in the midiDataObject all Channels show as -1. But not sure if this means undefined or all.

                      @Christoph-Hart lil' help?

                      CyberGenC 1 Reply Last reply Reply Quote 0
                      • CyberGenC
                        CyberGen @CyberGen
                        last edited by

                        @CyberGen @ulrik @Chazrox @d-healey here is an updated snippet with a minimal example of the custom save/load function. The function is initially commented out so the knobs should move with your controller after you assign them. Then uncomment the function to test if controller still moves the knobs. Please let me know if they move for you. thx.

                        HiseSnippet 1099.3ocsV0saZbDEdVi2l.8G0TkGfQ4p0UV1.FiskUTvFiaPwXi5lX0qZzvryZl3gYPyNqaHUQpWzWh7nz65qReC5aP6YlcMrj.0VnlUHf4bly47c9e6qUTVRhRi7p7xIiYHuuxObhzLr8PBWh5dBx6K7MrDC53IiIIIrHjmWoevxyq75H2ye+riIBhjxlQBgtTwory3i3lYT625Ebg3TRD6k7QEtciVcoJYakPkB3njeUzXB8ZxUryI1qslO54jjgHuu2e256PaDsWT856dPSJoI6fXRbbschZzn49GTamCHM1uIq5t.p6DwMJcng.nG4s9wpnIgCU+hLy.WxS3CDL6gZnPvxYjOUIhrtnkJp8PtHp+sAnDDnk9yBWkxBWO1uGOhOk9rv125XfmIQw.n2ZyCuRyAuZEgW0BvaAPxq.jVOCROxOjp4iMy3XwyW52UZX5XBjmJBkr6hVauR9sUvMjlsFQtlcpFNLUhf5UqtIF9ZiCqToBWJ3RFNNURMbkDqjGmZLJYMqBzJQ.UMZrRBpZS7MDQJaiJ+ZkxgLigKuJYKpfQz1fyYvux.PkuGz5sF+Jlo8shG7jbE+jM1JwR2o91DgX.TfD7w10Ats2F2NMwnFgCI2v19LEIBm4iUfhrDCfHMNc7P7SwcjWA9wVTMCxBuJgo6qYfYdNQFIXZKv.sEdzkcVfGmcUqIBbdmPQIB7TG+Dhg.V.rSt5uXvaXTyoPJGDoat3SczDmwJqYlTsbNs.AGKJN6hiNYonv5iApAuwAjXkFGvvbfskRYfTN3.EpmfK+TL6voz3QX3wRyxbKdzLVPlqHKWhzxE9rvbEOxkjtzdu.31fGU98Yn2FF.VPHNK0LKV2SEwDAEcjMmK3tINlHRXabXAm9bEDNkYgcP+3OlUb7B4kWj3xrKfscjj9+Rv.Y5nALcwRZ6Eg1t46k8WdubwQMzrXXgKpjckbyEiYxkM.BkG3g99R4nB9mw00+M4c8gBdDSi3Py8C7egTMnFxA3hCmQ2agqOmv+1G9ve7rkJbVynS3x94clKv1upqs4vN5J2a.ObLSa31fm2IrafEGYCxJ6eBK4ZiZrycyqyf.7c5vuclAOn0joGZ0uUhgMNj+taQTq+5c+t0gt25t9xz8e9y2otev8HbsDsCGLr2B5367aamdhc6VbyOQLIAJulNOMq5hmzSMBrJQOIuX5S2S.anTQoBhY90V1k64Lf5+41UX2GHS3lIEW9++1tr6KDejeetgNbwXbsEfQnV6yAFyeCfu1uSbLLaeF.W2+ze5yy5dzOpRsKQ6QLZNTq3ed5nP3slnLv5RISXm+3slsCO6bU6YaDHjIibG9G3ImYM6Yubl0tkIZDgpUull0kaeGiG5n.XR5derx98rmwKn4dDTE9ZJcdU8IBVeUEbmUUvFqpf6tpB1bUEbuUUv8uaAsCINJEV.m01fP852wML1yqiaJhqZE8u+I.ZsB
                        
                        1 Reply Last reply Reply Quote 0
                        • CyberGenC CyberGen marked this topic as a question
                        • d.healeyD
                          d.healey
                          last edited by

                          Maybe setCustomAutomation can help - https://docs.hise.dev/scripting/scripting-api/userpresethandler/index.html#setcustomautomation

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          CyberGenC 2 Replies Last reply Reply Quote 1
                          • CyberGenC
                            CyberGen @d.healey
                            last edited by

                            @d-healey you genius!

                            This re-establishes connection. I haven't fully tested it with all knobs but it looks like this solves the issue. It does create a bunch of additional steps, so I'm not sure that I won't run into more trouble, but I can live with that.

                            I wish you would have posted it 20 minutes ago, before I posted the issue on github. 😬 I'll remove it.

                            thanks man.

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • CyberGenC CyberGen has marked this topic as solved
                            • d.healeyD
                              d.healey @CyberGen
                              last edited by

                              @CyberGen said in Sliders not responding to "Consumed" MIDI CCs:

                              before I posted the issue on github

                              I got the notification about the github post and it reminded me to check in here :)

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 1
                              • CyberGenC
                                CyberGen @d.healey
                                last edited by

                                @d-healey @d-healey said in Sliders not responding to "Consumed" MIDI CCs:

                                setCustomAutomation

                                Now that I've had a bit more time, there are a number of hurdles with using this method.

                                Issues Encountered

                                MIDI Learn disappears
                                The "MIDI Learn" option no longer appears in the right-click context menu of knobs β€” unless an automationId has been manually assigned in the Properties panel.

                                automationId overrides control callbacks
                                Assigning an automationId disables the knob's regular controlCallback, which is where most of my knob logic lives (e.g., updating processors, linked components, states, etc.).

                                Workaround via automation callback
                                You can attach a callback to a specific automation and call the original controlCallback logic from there β€” but this adds boilerplate and breaks modularity.

                                Avoiding feedback loops crashes HISE
                                Trying to assign a knob as the target of its own automation (to bypass issue #2) results in an infinite loop that crashes HISE.

                                Controller numbers don’t carry over
                                If you switch the automationId to a new target, the MIDI CC assignment doesn't carry over. It must be learned again manually β€” making it difficult to share CC control across multiple processors or targets.

                                Current (very clunky) workaround
                                To make everything function:

                                I had to create an object with dedicated automationIds for all knobs I want to automate.

                                Each automation ID maps to a dummy knob.

                                That dummy knob triggers the original controlCallback logic manually.

                                This has to be repeated for each variation (e.g., 4x per knob) in a multi-processor setup.

                                πŸ€•

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

                                27

                                Online

                                1.8k

                                Users

                                12.0k

                                Topics

                                104.4k

                                Posts