# GUI for the Parametric EQ

• Can someone save me some time with trial and error? Is this supposed to go like this for the Frequency and Q parameters?

local index = 0 * ParametriqEQ.BandOffset + ParametriqEQ.Gain;
local index = 1 * ParametriqEQ.BandOffset + ParametriqEQ.Frequency;
local index = 2 * ParametriqEQ.BandOffset + ParametriqEQ.Q;

• This post is deleted!

• @duno I was wondering the same thing, so I decided to do a little test.
By using the Console.print() command, I was able to see that ParametriqEQ.BandOffset is an Integer that is equal to 5. By doing the same with ParametriqEQ.Gain, I saw that was equal to 0.
These are Index numbers that dictate which control you are scripting.
Looking at the Module browser, I can see that each EQ has 6 Index points for each EQ node:

The first 5 appear to be controls, and the BandOffset is just an index used to multiply.
At EQ Node 0, the index is:
0 - Gain
1 - Freq
2 - Q
3 - Enabled
4 - Type
So what happens when you have another EQ node in the effect? The index list starts over at 5.
5 - Gain
6- Freq
7 - Q
8 - Enabled
9 - Type
And then the next node would start at 10.
So what does it all mean?? lets do some math.

``````{
local index = 1 * ParametriqEQ.BandOffset + ParametriqEQ.Gain;
ParametriqEQ.setAttribute(index, value);
};

``````

In the script above we're creating a local variable called index. This is used to gather an integer that is directly related to a specific index on the EQ.
If we convert them to numbers, the equation looks like this:
1 * BandOffset + Gain
or
1 * 5 + 0 = 5
5 is now passed to the line of code below:

``````ParametriqEQ.setAttribute(index, value);
``````

Which is the same as if we typed:

``````ParametriqEQ.setAttribute(5, value);
``````

Looking at the chart above, we can see that Index 5 is the Gain of 2nd EQ node.

• @dustbro nice one man! That should help me lots!

• The formula is pretty simple: You take the band index that you want (starting with zero!), multiply it with `ParametriqEQ.BandOffset` and then just add the parameter enum you want to control.

So:

Frequency of the 14th band: `13 * Eq.BandOffset + Eq.Frequency`

Q of the 12049th band: `12048 * Eq.BandOffset + Eq.Q`...

• @Christoph-Hart Thanks Christoph

• Ok I built a 4 band eq into my project. It doesnt work after saving and reopening. I decided to isolate the issue. It crashes my hise on import. Does it crash yours?

``HiseSnippet 2000.3oc6Z0rcSaDEdTHhRLDHPomxRcXUfFBV1geZoTLIwFkCIAaLkS2AJRiimhrFizX.CGNvxtta5gth2.51tiscWOm9Bvi.uAzYzOVi9MiMIoYQ8Ncm67ouu6b0L2Y7zzAa.ccwN.oYt2v9PfzwjaOzlzckt5HavZqBjJIugtKA5T+wfkG1W20EZBjjNzsXsKMyz.uee7FKqaoaa.iLA.2GiLfqi5gHQVaV61HKqF5lv6g5w48R0Vy.auB1BOfxkCIWFzW23Q5aC2Tm41Tx.oCW2DQvNsI5DnK0mkwlCa2E+Tae+uOxEskEj8fJnMEHeyfU5hrLaFpSW.PZ5lQp9P9p9zxafLQirGo947ZPIpG7w.oohSooiQI07nTCrkIC.l0LnmDG8l1mdmTtsgCpOIpEF2Np7Z1zAlN5zvNOs78EL0wOk7JXpG1jE6o+HXCG5Ci5w7Wtb4ETtT4xm6ZyVZ1RW7hM0cngZhCxPo9iYlniGtDkmn6nbaa7V0e753m1vA93APaigJWWID5sgjUv85isoOL+YS65YYufLvhFWGC338NSD0Pa2cLfLo64h43.3NpY1GM6rVYdUPTSLPBbrnXk..w4YtHIHLEopV6rdZUPDokPgiVEEKZIVfHeLDAfj8d4ADB1Nb50bAHtaYhw5MVFZYsCH36TN8ucWnUmcD.OuxDAMQXfV9LPSHFnkIC3hfdKdw5Z8NcfFz9EKr4OSmR8VAuTWeS7gmEcYuVahC1ZEcKqsnqBMOsk5qu9JKyf.YagrgJcFXaPPXakv1l2vuSKPYj0.34lszKlsjE1P2RAYaBeFkakUN+Hpt3x51l2oSG5aS4ahrxlt+ZJzeyVZjMpK2jPmWdqAD37dXsfxRLp7Rdt6EWxl7s0pudi7XePi6uzuRB5qkanWqfPul3g9p6cgds7C8ZEE50FiP+tH8qNh9deJv.SoL6gzqbmc1Ti6VuUdIS9ss6jKwngHBx+cDIpXKilsDt0MWay7jfea6NRfwfOKIzJa9ma7eWK32ZRncX5jZLMvWkUlxYihRo1P7bJ08gbpfZgxQGEjWsg3IVp+ehUNIVUhzPx52yb52hxrzFiLqJ60YVbkYmiPxO0RaLRsprWmZEVlbNpH+whcsAhOqDrpwURwYWEkbIdtU08ibqbSrJJuR7zpp6GoUYmSkaJUicsv+XlQMhBX6MwD3crm+bkdQoYJ8xRJIapSmLaKPjVPmLalcvYNE0w4sGzaKnSHoBcDHMc7iq5nhcbUF96GiyQr8Z1Hxc5CCdl+.sBUcXqkAiDKuoHMxa0SZY3VjozmWFHX+h.fzICbm5Jw6byNdv4l01BYBc.HS1I8ktPWfWfJ5vH+gZ.AP5qkyrFmDfU6UBA1YjydcsjT6MBg1WImwjXII16DBpSHGqf5j7IH9uCfbJ4jUPMY37kxoVubx.ZN43SNNYnbrHY0JEBiazksr4jAxbwiJSHJyxgx3.g+tf8f33x7mjRRL93MDAiSHG6DMBAQVpvAkLHgVLRHd+Ogbr80OYpXN43GZWFn7iqspNQmcd+ASfQmTqOzgfXSMKsJ7IHCn+o+Oi7pP2GQv8oeHM5DwnSeOdyw8rn29h0FN5AketVOrIj8uID4aO9+amkp0SOpy+x+TiJo9sQOOlbbGzoCh5krrh1yo82zzB1D6hXqLw7yK72+2pYB6nOvhb+LlvMovNcfvZXg0IH6suGht1j+HDuIUdks.mx.2tVPj0OLR6FxhNZrJxsuk9PvVaG92MMygqVs5mXcAQf8hr9I5u3VqDX9ULydieRUkoEUnnb1QqIsl4Y+NknycbAuVWiUl.09EnaN9kfmhLIcYIke+T.PWH8KNB6oe0OEUfQ37V6IJT7VHWn30G.Fj8WHT.sk6RgQ7qIgSb0NHjA+FAEW1qLGQtW+xCZCauKlxJIbgBbeUVgSSuGGnI1rZFnsfVwUzUeOuh.WMlh982v98m7Jxb4LTD2h3Bv7LpNIhAef+6HP+CbjOqRhhnv6i8gxAO1mpNrb9Rn++UT+KDq3umw+IYDsK6VKfl9b3utQLZpjyjIfZhQgjUOxAcGNV7v8VVjp7StEg3S+d6dKMhW+ZN4Que2fCxhV.LGx2fiD+8Sp4nahv2xAOne30.QD3SVaLG9WmC+O7rID+DkNmSL7sOMA7UFS5qkh9wv+OFVH9GV7htidAOzheV7yWqeTwZwtgS88uDLPO6yHW2VeKKnIsfiTWIm4j2.aNvRmD+1BwlDKnA1rJ7WKG1UuwlNayP90lGiqPTYguBQhR2SJ2DQL5lMemJC9R2sxdMeCtPVyJ6+G3GQ1oka7S6t29px6zsu5Lg6+ZkANOARSOJ39vs4fd9auvkUIOKdwNMwx7wNlAU9M8vLTgeVFlgpwuUc1lKEYXNOOtTRPuLeQ1LCWIIFWMoguMInpoopJe4sdVRQV0TrUMEcUSwW0KyWdomkqjB4TTVkiyGolzgJ55.pJ90ADbW7.1dI2Pm33Uc.cjrMcqdFPZtmsMzxa.cJVYA9OWN7zDZC8FfkkX6SLnQU1yRAMpF139x6nmtgC9AAG4MKU9HdVn5116NTNCMwk9rh5nyDQt7hkY0AgdfgA6CrKP+3L69TYB5S0InOKMA84RSPet7DzmqLA84pE1G1UK8lCH3d9S9RMzrt+gJHEtxCclEv+BFZPsJ``

• @Tod-Slaughter Same here Win 10 X64 | hise 2.1.0

• @Natanr thanks Nice to know it's not just me

• @Tod-Slaughter I'll check today

• I found some issues in your snippet, like the name of the MasterEq that is, in fact, MasterEq1
Some callbacks have a wrong name (same name used twice or more)

But despite these corrections, it still crashes...

• Ok so the cause of the crash was the name of the main container which was the same as the EQ

I simplified your code, you don't need the `local index` since you can directly put the band offset calculation in the `setAttribute`.
Also, an `if(value)` statement is mandatory if you want your EQ to reflect the buttons at compile time (otherwise the last callback will always be taken into account, no matter the state of the buttons)

``````HiseSnippet 2094.3ocyZ0sbSaDEdURVJwfgPKcJW0QMyzYBz.XGGBokgFQRrQYHFrwTldGHKsNdKxRNxx.FlLPuquAc3NdCn216xscF5Lcl9BjGAdCn6per1U+YYGnDcmN6d91uyYOZ2ydzVyxTE0qmoEPX16MnKBHbRXiAF1s2nsB1.r0l.gOCVSwp7tf0GzUoWOjFPPX5aRaTX1Y.NOuas0UzULTQAh.f6ahUQai6fsCjVS5VXc8JJZn6g6vz6kk1R0zXCScy9DhLMr.nqh5iT1AcaEZ2lBBDNVYMrsoUCaEaTOfvLqapMnQaymX31+6i6gapinuTDzf.jq3Jl5ZTFSkB1nMVWqluA2CPPoVf4Osq4eVXUrFdn7.2vbNMHFnAq+PXpznWQV5UH6zSfgdy3Ruy.anZg6ZGzBkam.tkgMxpkBYJfkVt8ELk7YfaXR5gg8k5n7HTEKxKC0XgUJTXQwqTnv4uV9b4yc4KSltItcaKrpX4cymiLyzyV7wJVh2xvrY4c217IUrP61GYnNPz645h93uCxdCyNcMMHurv7Q0Xd5nDCjDmKOpiDRVMhEUY7NsCCa5nFViDgMrCXzvxiYrt.5GUhrOizEP0HEGJOfYwglHfddFNDyjuLUDCawiFwgvEqMWWLzyHs45o39pOdPQ0HMeW8wyRSEt5ikc5nQDu158ssMM1tx5Hc8rgFqFgnleSMZizaMVf4nQrnIO1TSNYpIO1TSlgZQwqpROx5mk2M634qQD.iCJe.c1KlBW4VsPpDr76bQOXbWxVrbcOd0iJfch5R8nbwv1xTeCEc8ljMVWfzR4s2di0oPfMzwFHwV8MTswlFh9ssfpqRKR3ndez4ym644yQIEtk3Bth7DPe7oEcztgMYuil8sQKLTJcyqEEWlNdzduW9b6wxSGGc7Dsgb4sqjDS8Z7i.UWJdpJmnKUNEWp7GPWZIwKDzx5JFZ2oUKRGD+Nwr4rkS1YKmlyV9CoyNyFQovFgSvNUCwBzWhleQ7QQUta45IED41VLlEcbymaDgKzA1WmqMjjb6PGOkt4M151IQI21lTJQGyTnT834Sh9mjbNijG0iRB+IuhL7gMgqXoV0zl9pNYyeEGcD3HlY8xsIAFmxra0jmdODrchlzqVIY2Z8OzLLkvgk7YZ3DvicYpzhGjSMdHI1uzgKZfIU2DHbxgCxUS6q8CAgSKfvO+xDXax91wKnXoCUPQId9ldLQZgDotBQRbuzgOjHw3gzBGRIZ3PP0QELDejPhABIsmvgfgbABCGISiaaZitiwBmO2yyMat8xIFtoVshsMOaQGYEayzxOYklhKXzuSSjkOo76HPXF9B8.StPOr0gR08bALczzXKCr8c5hLRp7O.uCS..BmwiUjtZ6TFnS4UFnF5XMjE.qQKbUzjg.NreXc1dYcIPFP5qfwt2bHv1uel.6bv3WYODZfWkIz9RXLKHDBJo2jInNMjKIMNPDAfuNSf74vv4CvgyCa05a1OK37EvH6jvAzAu8smKSDZNH+5Obn75W8puMSnbx.ypd3IJv35coazvAxKudt2u13ZLQPIyTIOCJ7PbvyN6LICg64kbf3TP1ST6iATvgDYP+SC4NoaX63cqMNjPliDiGFmFxcJvHNzLYMyA4KnQLT4m1ZSEaEZIr8VDirvVWjkMltlovlnGiUQtEzdV3lndOx1rK4iogkLAHbhwactmFL5WRZvvWD+EoNlZHZAxC5aG1ecwxRcTBT929WIhI0sA9YblSu9sZgI8BBEkeFQeMMcTMydX5VFC6W2eWRC0Rout884cG+HMDKrgcVOCqhtohM1Xm6gIaZ3NCwJpHqksHikAtkjmm00MRTCqSlM1D2qqtx.Pyc7+aJydrRkJ8dpJXaTm.oum7vKcIOwufJ1Y9SnDz4r7yObeoszl+GDGVDp4Wzo0sLzPOkH+hji0sG3IXM61CI5A+pTaD4Kuf+BjTy3bHiw9PAtjWiXbIu7HvjszKxnsk31hA7qlMiwIcTHR9UYz3heW5.x8x8NpMs8FNKKWlSZf4qykXro8M8rI5pap3lHcdKZ08YsHvpgsHxF0+IqEosdRVj6R1Yf4wjoR.CNf86HP2ibjOtziBnv9benbzi8QxIKguD59oh5GOaIB9T1OICncgdRAzjvg+ZMNZJlvhI.ojHmSpLYfbgywjYPawvuG9oheQRekYiK1P1W+ohf7YFmPT49ebYGLqIcyLlqwPu+4wRVJZXyaZY1u63OHgyLmYTtNynbvSOTiRnT2SvS+5mD6f.jFOSQNhovMJ+wfLLJGK6I+GLLOTmcWjKH0MHoQ5t6C+ykfttWvDjSCyBKanzTGoQx3Ix0cYNXUSs95J172DG5pndMPCsXuxKzq0hAIja.6rzGkqmSVo6Yf0v1psimuSECeIGa5iMe8trS4gt+V4.xNCrxOOo2ro3u3UEF0Ma5b9GDbi9VOFQhnbuQSAgKrz41863dPGZs2DnNLZ4DKvV2Fpfhr07hJXI1HcpfR7WeMCskC2iqvVDGpfUXq8EUvUCqxpgA86CDLmKw7oJ3ue64bkTjMAaGIQHawHrs3xQP9JrU4wQxJrI35H4prU9vQRDJWjiyBSyO8Oc1l9iI56tl8ompsphskS9IjYxFjCcphHAeFFHcmIzonIl39dA+Brz.4LACEnmX0qwhz2E7Zrnei+uLFcTTsLefWwuowxG2QBwtMbtrhyRhbIuKVbXYhfEtTAZlX3GnpR+B6hjuNiWmkl.cJMA5r7DnyUl.cVYBz4pSfNqlpNz6s4M5aa1wc0WhfZkcKugf+VOjUV.+Wwdv9e
``````

• I didn't think the name would have made a difference but that does open here. Many many thanks!

• @Tod-Slaughter Hise stopped crashing the very moment I changed the master container's name...

• @Tod-Slaughter I just noticed there's still a mistake in the Low and LowMid Q

• @ustk It's not working in my project. I'm just checking if you changed the knob ranges too

• No the knob ranges are the same

• @ustk Just spotted that too

• @Tod-Slaughter if it's not working, have a look at the IDs (eq, master container...) in your project too, and be sure they correspond to the script definitions

• Fixed the q