Parametric EQ - Limit the amount of nodes?
-
@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).

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 -
@HISEnberg @Christoph-Hart I think at this stage it would be interesting to consider a
NumMaxEqNodesproperty, 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...
-
@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.
-
@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
-
@David-Healey
@HISEnberg
Yes,.setEnableQueue(true);fixed the bug. Thanks, Dave! :-) -
@ustk I made a simple source code change to add a
MaxBandsparameter.Is this what you mean? If so, I'll submit a PR.

-
@dannytaurus Much cleaner solution
-
@dannytaurus
Looks great! :-) -
@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!
-
@dannytaurus Yeah exactly

I was working on it but you got there first! Thanks!
-
@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
Gainis index0, band 2Gainis index6, and so on.The
MaxBandsattribute 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?
-
@dannytaurus what about making it a floating tile property instead of a module attribute?
-
@David-Healey Here's the initial PR for reference: https://github.com/christophhart/HISE/pull/860
-
@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...
-
@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. -
@David-Healey Yeah, works great
I'l submit a new PR and close the breaking one. -