Forum
    • Categories
    • Register
    • Login

    Parametric EQ - Limit the amount of nodes?

    Scheduled Pinned Locked Moved General Questions
    37 Posts 9 Posters 1.6k 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.
    • ustkU
      ustk @Oli Ullmann
      last edited by

      @Oli-Ullmann Mmm clever!

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

      1 Reply Last reply Reply Quote 1
      • HISEnbergH
        HISEnberg @Oli Ullmann
        last edited by

        @Oli-Ullmann do you have an example? I've been trying to do this but I get some buggy behaviour (My EQ is maxed at 3 nodes, but every other click adds a 4th node).

        gif.gif

        const var MAX_BANDS = 3;
        const var eq = Synth.getEffect("eq");
        const var ft = Content.getComponent("ft");
        
        reg savedState;
        
        const var eqBroadcaster = Engine.createBroadcaster({
            "id": "eqBroadcaster",
            "args": ["eventType", "value"]
        });
        
        eqBroadcaster.attachToEqEvents(["eq"], ["BandAdded"], "");
        
        inline function onEqEvent(eventType, value)
        {
            
            if(eventType == "BandAdded")
            {
                if(value < MAX_BANDS)
                {
                    savedState = eq.exportState();
                }
                else
                {
                    eq.restoreState(savedState);
                    Engine.showErrorMessage("Maximum " + MAX_BANDS + " bands allowed", false);
                }
            }
        }
        
        eqBroadcaster.addListener("", "bandLimiter", onEqEvent);
        
        HiseSnippet 1244.3ocuV07aiSDEebScEM.R6JshyV9TJaHJoY6WrTQa9BhXS2.or6JsZU0D6wIip8LIimj1HTk3NHw+Cbh+IPBtw+Jbiybo7lwNw1McKkH.eHJuu+Mu2aduoqf6PBC4BjQ9SmMhfLdOydyXxg0GhoLT6FHi20jLt4k3fQ9DTsYivggDWjgQtOSofwlqize+wmVC6iYNjDVHzK3TGxynATYB2tG8ETe+VXWxozfTZ+jiZ6vY0497I.XxYVFMB6bNd.4DrRs0LQeNNbHx3CM2c+9k26.u881lP5224.ra4cHDmcw86uWYbksc8H66tS0pHiMZ5RkbQOIVRBQFqWi6Nq2P9Ern.7BZHsObp.hJndPjiX2h66pNhJtn5Co9tcmmkBQfW5ljyxEkydjYGpKcA+jb2CzBrRrHcBzXsrvKWF3U4sAuaARFofz5QP5gl8bDzQxDIQ0x1LIQ3gcxVKizEslaNSnHDJslhEVcN9UmU63SZzy5PqpOMeh.xXfitKoz.hromGwQVvlL1dqzZ4IAspyg3wjJ8pyCFwY.QAaOoR07Bx.qP7ThqNC.LRGhZBN10AGBvE7SS1.JiTxQP.MSIpv2j2B9rot1erkcFqrKFIBKFDBBesMYJDbU1wtnk8Tr+Dh8axekBHYrqDVJwNCOk2bbSkEgEds5r8lhfKpgYtG6BcGJRa8gfx7AjY4Mg4HoblEmEaWgEwqnkNZakOBr5endIxsN7PqTtdKsBQ5Fqp1dqOIojr0BoI5o9RRmPRiLtD4xQbgTyn.f14pc0h+Q7CIuEeAlKHgPCJIx9DemxSpu3hSHz51TH3hNPCGbwsfcG7kzfIAV1VONU2ziA59voMzB66yu.NwEs7v.NVBfWk+pkJNttOiB+iA0daUgT4I8HFUEOI6u0SSUQNgKIOmUPU.1Dbo0ME44cqxTMuBtuODpaSrZ9k3tLr.aRPehHU4WqHbGM6E+MteW7chtKkRQNqMiJe9HRL8cO4BEeYD92W2tAVhUSNh4A5MhHjTEbLZPlBysiliroYCR34R9Hstw2fgAIx3AeQSNZ4ywRJavoT.1T.Aqa5IQWldWvrzDWPckvrbSihFHzPBcvPoh52R.YTz+.yFB7fAXHazh5Ck3tXFwG0ev78DatwbWBM.AIbu95q+1rb2NV4pJ15SuQKSUCu8hbT63gH5IG1sYtjKAFeTEMIjagl0WxEmGBKlHf.cOa9qfUZKM8El6ycm3ikYWFnVYFK.ZTxLAVMWlERkyRuR8evFhx24Fh6KDenYWpzY3siw0tELBsP+Wfw38puuYzxkD.ttYqWspKQKe+Wh9n4M+0mHlRZNNN1jwYh8ISBh5JCUMu4fifZHd44YmuuT9iTLpLmwne5K0L1N6ylXtUuIimjv3AZS1Ilwu7ck9SsF6NmQoekp0Xua5i8uIiCtoSqr.p+9OlKhyBr9y+vzHNKA1JKg1JYfaqVm1jotwFUex8uzibPeEehZDSGrTPgIKlP1uGbu1g.cGLXpftHrlZBRDcYEsBR8H5hhoALT35XgUTzFwBqLW3+KwH.6H3m4DshP038NZNv4loeo6llcTzVUP50FouqE.Ol7LGmrtZIC2dUMr5pZ3SVUC2YUMb2U0v8VUC2+u2P0a8OdhjGDM5Dg5zsYzlFiT2HP+EzhLhdJ
        

        Sonic Architect && Software Mercenary

        ustkU Oli UllmannO 2 Replies Last reply Reply Quote 0
        • ustkU
          ustk @HISEnberg
          last edited by

          @HISEnberg @Christoph-Hart I think at this stage it would be interesting to consider a NumMaxEqNodes property, or even just a knob on the module itself that could be added to Hise 5. There are much much to do already but my guess is that it should be quite straight forward to add in the end...
          For now that's precisely what's making me dodge the param eq on my interfaces and build custom ones... so... 🤞

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

          dannytaurusD 1 Reply Last reply Reply Quote 2
          • Oli UllmannO
            Oli Ullmann @HISEnberg
            last edited by

            @HISEnberg
            I just checked it and I have the same problem. For some reason, the broadcaster stops responding after the first reset. I have a workaround in mind, but I can't check it right now because I have to finish something else first.

            When do you need a solution? Is next week okay? Then I would try to implement it by then.

            David HealeyD 1 Reply Last reply Reply Quote 1
            • David HealeyD
              David Healey @Oli Ullmann
              last edited by

              @Oli-Ullmann said in Parametric EQ - Limit the amount of nodes?:

              For some reason, the broadcaster stops responding after the first reset.

              I suspect you need to enable the queue

              https://docs.hise.audio/scripting/scripting-api/broadcaster/index.html

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              Oli UllmannO 1 Reply Last reply Reply Quote 2
              • Oli UllmannO
                Oli Ullmann @David Healey
                last edited by

                @David-Healey
                @HISEnberg
                Yes, .setEnableQueue(true); fixed the bug. Thanks, Dave! :-)

                1 Reply Last reply Reply Quote 1
                • dannytaurusD
                  dannytaurus @ustk
                  last edited by dannytaurus

                  @ustk I made a simple source code change to add a MaxBands parameter.

                  Is this what you mean? If so, I'll submit a PR.

                  CleanShot 2026-01-27 at 13.23.36.gif

                  Meat Beats: https://meatbeats.com
                  Klippr Video: https://klippr.video

                  David HealeyD Oli UllmannO HISEnbergH ustkU 4 Replies Last reply Reply Quote 3
                  • David HealeyD
                    David Healey @dannytaurus
                    last edited by

                    @dannytaurus Much cleaner solution

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - HISE tutorials

                    dannytaurusD 1 Reply Last reply Reply Quote 1
                    • Oli UllmannO
                      Oli Ullmann @dannytaurus
                      last edited by

                      @dannytaurus
                      Looks great! :-)

                      1 Reply Last reply Reply Quote 1
                      • HISEnbergH
                        HISEnberg @dannytaurus
                        last edited by

                        @dannytaurus nice I was thinking of doing this myself, this is a really clean and ideal solution. The UX is precisely what I was after.

                        Thanks to all of you guys for your responses as well!

                        Sonic Architect && Software Mercenary

                        1 Reply Last reply Reply Quote 2
                        • ustkU
                          ustk @dannytaurus
                          last edited by

                          @dannytaurus Yeah exactly 👍
                          I was working on it but you got there first! Thanks! 😎

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

                          1 Reply Last reply Reply Quote 1
                          • dannytaurusD
                            dannytaurus @David Healey
                            last edited by dannytaurus

                            @David-Healey @Oli-Ullmann @HISEnberg @ustk Hmmm... maybe not as clean as I thought.

                            I think this would introduce a breaking change to any existing projects using the per-band indices to access and/or change values.

                            The docs page shows 6 attributes for the Parametric EQ, and I believe they are per-band, so band 1 Gain is index 0, band 2 Gain is index 6, and so on.

                            The MaxBands attribute I introduced here would be a new (and only) global attribute for the module, at index 0, which would shift all the per-band indices by 1.

                            Thoughts?

                            Meat Beats: https://meatbeats.com
                            Klippr Video: https://klippr.video

                            David HealeyD 1 Reply Last reply Reply Quote 0
                            • David HealeyD
                              David Healey @dannytaurus
                              last edited by David Healey

                              @dannytaurus what about making it a floating tile property instead of a module attribute?

                              Free HISE Bootcamp Full Course for beginners.
                              YouTube Channel - Public HISE tutorials
                              My Patreon - HISE tutorials

                              dannytaurusD 4 Replies Last reply Reply Quote 2
                              • dannytaurusD
                                dannytaurus @David Healey
                                last edited by

                                @David-Healey Here's the initial PR for reference: https://github.com/christophhart/HISE/pull/860

                                Meat Beats: https://meatbeats.com
                                Klippr Video: https://klippr.video

                                1 Reply Last reply Reply Quote 0
                                • dannytaurusD
                                  dannytaurus @David Healey
                                  last edited by dannytaurus

                                  @David-Healey That'll work for the end-user UI but it won't stop the develop adding more bands in the module though, will it?

                                  Although, that could actually be the desired behaviour?

                                  Lemme see...

                                  Meat Beats: https://meatbeats.com
                                  Klippr Video: https://klippr.video

                                  Oli UllmannO 1 Reply Last reply Reply Quote 0
                                  • Oli UllmannO
                                    Oli Ullmann @dannytaurus
                                    last edited by

                                    @dannytaurus
                                    The idea with the floating tile sounds good.
                                    We probably won't be able to implement the module variant, as this would certainly have a negative impact on many older projects.

                                    1 Reply Last reply Reply Quote 1
                                    • dannytaurusD
                                      dannytaurus @David Healey
                                      last edited by

                                      @David-Healey Yeah, works great 👍 I'l submit a new PR and close the breaking one.

                                      Meat Beats: https://meatbeats.com
                                      Klippr Video: https://klippr.video

                                      1 Reply Last reply Reply Quote 2
                                      • dannytaurusD
                                        dannytaurus @David Healey
                                        last edited by

                                        @David-Healey PR: https://github.com/christophhart/HISE/pull/861

                                        Meat Beats: https://meatbeats.com
                                        Klippr Video: https://klippr.video

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

                                        31

                                        Online

                                        2.2k

                                        Users

                                        13.3k

                                        Topics

                                        115.6k

                                        Posts