Parametric EQ - Limit the amount of nodes?
-
@DanH or add a property to the Parametric EQ
.set("numNodes", 5); -
@ulrik I tried
ParametricEQ1.set("numNodes", 5);but get the error 'function not found'...
EDIT: oh wait do you mean add this into the source code?
-
@DanH I mean that Christopher could add a property to the EQ
-
@ulrik That would be nice @Christoph-Hart :)
-
It might not be that hard to add that property yourself if you want to explore C++.
-
@d-healey I just bought a c++ course on Udemy, it will be my summer reading :)
-
Is This Available Now?
-
Which bit?
-
@DanH Latest Develop

-
@Natan you mean a function to limit the amount of nodes? I don't think so
-
@DanH Is this by any chance possible now ?
-
@lalalandsynth I donโt think so. I reckon there must be a way to edit the mouse callback for adding nodes in the source code. My initial idea was to create the nodes you require and then edit the source to prevent users adding their own.
Failing that what you want to do might be possible using multiple EQ filters in scriptnode
-
Digging up quite an old one!
Is there a way to limit the number of nodes nowadays?
Only found interrogations... -
@ustk I seem to remember being able to edit the data field but can't find an example. I did it in the source code. Do you want a fixed amount always visible or allow the user to add a max of x?
-
@DanH always visible and not able to edit the type. Iโd prefer not to edit the source unless itโs customisable for a pull request compatibility.
But seeing my needs I might just end up with a panel based custom solution lol
-
@ustk you're good at those

-
@ustk
I solved it using an EQ broadcaster. The value you get from the broadcaster is the index of the band.If the index is below my maximum value, e.g. 8, nothing happens except that I save the current status of the EQ in a variable (Effect.exportState()).
If the index exceeds my maximum value, I show the user a message and reset the status of the EQ to the status I saved in the variable. It's actually pretty simple. :-)
At least that works with HISE's internal EQ.
-
@Oli-Ullmann Mmm clever!
-
@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...