Lord of the Knobs :)
-
@d-healey said in Lord of the Knobs :):
HiseSnippet 1491.3oc0X01aaaCDVJIpKwaYncXebefKeRtwIwxtccndAyMuUDzkWPcaZGJJJnknsIhLoGEkS8JBP+v9g0eR6ev1QJY8RrRhc55Pq.xK7t643ycj7zQcrf6RBB3BCykd1nADCyuwp0Hlr218vTlw96XXVx5nC28IGdzVNFaMZ.NHf3YXZN+iU5MWZAC8ye+qag8wLWRpHCiS3TWxuQ6SkoROt4Sn996g8HOi1Oi02q49tb11bedHvk4spZL.6dJtK4Prxr4rLLu0tdTIWzRhkj.CyE1h6MpUO9YrH6OgFPa6STCbLZANJR7dbeOEiURM1tG0263wwbfA3kiSy.yGkA9dqCndzD4oYhaqUfRQjMeXN2UQOmaH8LyPuEhn2crZ4JnCjoZTb6qs1mIIhNXXIHKshr0Xt+XQqs4fEL458wmR1S.CRPX+fpUqfbpUsbikKsbIXgHPhFhEnVz9C7IpkZzlH89h06Rj61oCwUZuRp1UtHvgf8u50MParwPmJng0fepubogqKHADwPhc8H.BRWDsQze6y8HMx5CAl0krUnTBRhbmBRGt.YSgwUafnneAUG9ypqVd4Rua4RH3IKpWQeMX333FX9179C3LXf8JOUY2JqZSW0orhLEfc8.EBlTv82F662F1PZ2VxzH2dqxMJcd9f9fGs+guQcR4RmzDKzIrjQEMQbVh5XUQoLJymxHnNgLWIkyPLtnO1mBK2OiqYlcpjSv9gjJn9TF7K7ayjjHxPASo.sJ5B1itKxFLFslRsZNOunoMbfGrOOdmvoLdaM1zYf1A7Brhh9wM2DEx7Hc.3dkgMDGKHCgjA5LrfQYcQfynLpLBVLZ0SvYToauHuTNUbFKTOt3.Bp5CyKT8L7UUUK9SldRHaEDro+9UGu3mGry0BdMG8glKAesqEuSQfaKH3SaTPH5byCwZU+XhwJn527PrpF9zGk0t4QoyGQTV+iJHKBbTDlH57Hso1jV5Tc1+QRof1NTRryH+ETOYuJ5vOq2mBjpeUQG4yHvcH93QUzQ8XjmW7w+zxf1tQUm.XSVAPKBAU.bJOw4ac0gMyUyccJTn3sG0YrOyR+bEK0od6bY8bEj.Mkhy6ER+IKtBSYbU5LAR5ZVNuGoOcti9mMtK3p.tOY8ABppX+PmGhVApuNzQY6RWTasXs0JTa8Xs0KR6ZvC7FD0rd2MfPrQl.6PtjbDytbo2UZoRmW5hZ5zoHUwIAehnHspN0DWALaVX+1Dw3DWrcPCK46Hpzz0QjazaNyXHmsO7BhiFPRFGEjikT0HI3xJJMnxJUGLEXVpnIaCyH9s4p9EiMGLUpaG6aiaGqkO0iHLndpdwR1cYnSIPat2ZbSwFWlChNCncvhV5CWNInS5xdFPW6hnmo4tdAne996fkXUWow4CHGMfHjT0pq4NjgP69Q8ntj0NjfSk7APm6Is+.IuoJk81jI8CCZNJYv6OpoQFesXjuVdb2vXFwON.z+uSF+XrRF+XX27LUo0DAn+pYOBsauzao79G2rMW.bqE8OykBhj9TrGMLHqby4mjYW05ZFpgxRse3BTy3jInVylCvBXdxNgiiXAPL9iE7vAodXwhxZW0tlLo+W94E2pmkac+zysIu6EbCPtWnOVl+ZgpWdFq.JLl69Wp6XwBnxQYOEOC2Ur5TeWwokt2w5XUi0Ey24Jfuv16O07M9l2KaE8F1Txtf0du7+1qYW85tl8Wk7cPRZLRSkbBt7uDxu+AcWTYWteQ98lFFE7sRLmOebM+zEWWyWz3p2GnuW+WL6a+NKch8KIBqW3+xgv2VUO7y.59Tdnjx5d.FthBTw25vv9s3gBWBPUFTvFlHKy4TsyDMtpZrhPsHLO8f+AdhU5nFaFqzYrx+Wli9XWA+Mw2kQczbQsDHtY5Op4RVGnFiR5ySka5S8nuw0UU5aMH6TLhZyLh5yLh6MyHt+Li3mlYDOXlQ7yWAB02y8QgRd+n86ffi2U2iqo4tLLryUu023ewW0MhQ
Great stuff David. Thank you so so much bro!!! ;) :)
-
@duno Something like this
HiseSnippet 1361.3oc6Xs0aaaCEVxIpcwatncX+.XySxKWpcVa2.xBharSJBZtXTmltghhNZIZahPQZHQm3ff.zeZ6GxdX+D5K64sCIksjcTbrK1FZ.hdvV7bgmuyEpyQpdnviDEIBsrW3ny6Rrr+FmFmykcp1AS4V6Vyx9dNMY3NVacdWbTDw2x1dtWp3Yuv7V5qOs4VXFl6QRHYYcrf5Q1iFPkITqW4UTFaGrO4HZPJoeZkc8D7pBlnGfi4bJY0E6cBtM4.rRrbN.H11mJEgMjXIIxxd9sD9m2ni3LtQ9ioQzlLhZQYqFvFYHuif4qPrhpU0NTle8A9ajErK0S794Ld+24rO0mNjdRT3gZFnDMRGOryMI3U9yDd1of27F38HmFdgztxDNJr80N6xkjvVXHEjFVFYsxcv8bpJ.I3xUCvmP1IDVLTC2mWpzxnmUpTw0KjuP9PRaDUeGjRhjnSwgnV8Qafd26Aps5+tRuGVnKQVsMQtcqVDOo6hMnAcYDjpvXwhFAKeSBt1hEGyPMk78n7S.8FfWPyphftBNrvcws5IkBd4qnGCGIeEWz7XLqGIZ.XSKwI.2gLzKLNR11QsWFqXDs7jE03HiBBy1OvRJkzzcyPxxIRVdLIGpejxnbYnfUEyXMgiGtJdU2JMHmrTExS4LJmfZ0i6IoBNxvy0ynxxPfBrawB4u.gPExC+fXBOLCQ86O.gqR49j9G1ZfRpMNQvSUqLDnsPtONNelxmJhdxShgXDhKjH.QmP7M5bg4O0ET+.VU6QuPJCoM6IItPcJWDFfYTn.+Hwqw71DWiyqENwLKiVorprtTwA.TCxQi6JcFF4GaCh05RyeDVDAcELdJnbVa4Jl.45fqViBk8gD3YinlD4YDBWqABy8Qd8BANRivI6ZpXfHD4RAiTZcDE8ywI.Fg2V1AnrzRESj8BTpqDxCxDTzi2XCUdTE+O.B6xND89A2fknyvQn.woCxCC2zQWpthCV5DiITsOFNfGlNUjNNtxoPRXYTYHOLxdc40iWUpeFR72bZOqTepDeFocMBSW.j+xrN+bULkPQugKiBnb3Gbe0oJyVERj8B4JFnkPiIO56QtfvPEDvVAlKGZKAGRajC4tEyeQ9ExeY9w4zpUVrhOqwHgYwU0FNbBp4x6EzjDN3ICwxAciFscmyz0tyy7.zTBJ36xoxC6R3WWSPq3m5BsCmKFTvcRcyvGD2LrAi5SBsnPOu66nezskFuoGGwZpUdsQTtxe49GadsJa5GoUdAm3lSia6Oso0a1sFVhUczi8FvC6RBkTUvytF4TXTIS+8EbpQhNQJ5pc23lLP.9Fc39IFbuJmObQk2TIf56yH0EQTUtMQr+T4VSsEVKkEJ0MkE93moExLzkXieqcJaX0thjzWpFEU0NAFj7JCFAimI76wvxQmYSMlQLCEzRObjZ.HN.4ySmplgA4JM0CxMsv8QN0oRuNYi2bYfWnh5+Z7FOVbAGy7aIfcdmc9k+cmAtTVy.mKEVt+vWPQOC4KG.kBNoFpbBumxu960HL7Hwu2R8kcRIQkLdSF64F0wla5bra38MlbgfB3naMEteqiNvdaBv5D+sG.+Pm53uDJHdsnmjxaCy7ERgGV6bPufFvKs6Q.nx4vXx.M6bp1sl0kTqU.pAg6qW72vULyxp01wLKOfo0Tbh+AoOwu10cj+iPuv6Nxe2Q96Nx+k9Q9+OrQ.1KT7g3Oag5n4Woo.9MW+UFWvYe0ZzvA3UwFXzV5G77Ti6rBDcxVi0lYM9gYVimNyZ7rYVimOyZ7iyrF+zDzP8AVeQOoHvTuCDpus9Emrs2ligJWcou0+zC7snG
-
@d-healey said in Lord of the Knobs :):
HiseSnippet 1361.3oc6Xs0aaaCEVxIpcwatncX+.XySxKWpcVa2.xBharSJBZtXTmltghhNZIZahPQZHQm3ff.zeZ6GxdX+D5K64sCIksjcTbrK1FZ.hdvV7bgmuyEpyQpdnviDEIBsrW3ny6Rrr+FmFmykcp1AS4V6Vyx9dNMY3NVacdWbTDw2x1dtWp3Yuv7V5qOs4VXFl6QRHYYcrf5Q1iFPkITqW4UTFaGrO4HZPJoeZkc8D7pBlnGfi4bJY0E6cBtM4.rRrbN.H11mJEgMjXIIxxd9sD9m2ni3LtQ9ioQzlLhZQYqFvFYHuif4qPrhpU0NTle8A9ajErK0S794Ld+24rO0mNjdRT3gZFnDMRGOryMI3U9yDd1of27F38HmFdgztxDNJr80N6xkjvVXHEjFVFYsxcv8bpJ.I3xUCvmP1IDVLTC2mWpzxnmUpTw0KjuP9PRaDUeGjRhjnSwgnV8Qafd26Aps5+tRuGVnKQVsMQtcqVDOo6hMnAcYDjpvXwhFAKeSBt1hEGyPMk78n7S.8FfWPyphftBNrvcws5IkBd4qnGCGIeEWz7XLqGIZ.XSKwI.2gLzKLNR11QsWFqXDs7jE03HiBBy1OvRJkzzcyPxxIRVdLIGpejxnbYnfUEyXMgiGtJdU2JMHmrTExS4LJmfZ0i6IoBNxvy0ynxxPfBrawB4u.gPExC+fXBOLCQ86O.gqR49j9G1ZfRpMNQvSUqLDnsPtONNelxmJhdxShgXDhKjH.QmP7M5bg4O0ET+.VU6QuPJCoM6IItPcJWDFfYTn.+Hwqw71DWiyqENwLKiVorprtTwA.TCxQi6JcFF4GaCh05RyeDVDAcELdJnbVa4Jl.45fqViBk8gD3YinlD4YDBWqABy8Qd8BANRivI6ZpXfHD4RAiTZcDE8ywI.Fg2V1AnrzRESj8BTpqDxCxDTzi2XCUdTE+O.B6xND89A2fknyvQn.woCxCC2zQWpthCV5DiITsOFNfGlNUjNNtxoPRXYTYHOLxdc40iWUpeFR72bZOqTepDeFocMBSW.j+xrN+bULkPQugKiBnb3Gbe0oJyVERj8B4JFnkPiIO56QtfvPEDvVAlKGZKAGRajC4tEyeQ9ExeY9w4zpUVrhOqwHgYwU0FNbBp4x6EzjDN3ICwxAciFscmyz0tyy7.zTBJ36xoxC6R3WWSPq3m5BsCmKFTvcRcyvGD2LrAi5SBsnPOu66nezskFuoGGwZpUdsQTtxe49GadsJa5GoUdAm3lSia6Oso0a1sFVhUczi8FvC6RBkTUvytF4TXTIS+8EbpQhNQJ5pc23lLP.9Fc39IFbuJmObQk2TIf56yH0EQTUtMQr+T4VSsEVKkEJ0MkE93moExLzkXieqcJaX0thjzWpFEU0NAFj7JCFAimI76wvxQmYSMlQLCEzRObjZ.HN.4ySmplgA4JM0CxMsv8QN0oRuNYi2bYfWnh5+Z7FOVbAGy7aIfcdmc9k+cmAtTVy.mKEVt+vWPQOC4KG.kBNoFpbBumxu960HL7Hwu2R8kcRIQkLdSF64F0wla5bra38MlbgfB3naMEteqiNvdaBv5D+sG.+Pm53uDJHdsnmjxaCy7ERgGV6bPufFvKs6Q.nx4vXx.M6bp1sl0kTqU.pAg6qW72vULyxp01wLKOfo0Tbh+AoOwu10cj+iPuv6Nxe2Q96Nx+k9Q9+OrQ.1KT7g3Oag5n4Woo.9MW+UFWvYe0ZzvA3UwFXzV5G77Ti6rBDcxVi0lYM9gYVimNyZ7rYVimOyZ7iyrF+zDzP8AVeQOoHvTuCDpus9Emrs2ligJWcou0+zC7snG
Thank you David! Much appreciated. They seem to be jittering a little when moving them, an idea why that is?
-
@duno Nope, I noticed it too but couldn't figure it out. If I spent more time with it I'd probably solve it but I'm too busy at the moment.
-
@d-healey No worries! Thanks for that snippet, will see if I can figure it out. Cheers David.
-
You simply need to make sure that the actual value update is fired from both callbacks - the knob and the ranges. Move the logic to a separate function and call it from both callbacks.
I've implemented this along with a few comments. Also note how I tried to use arrays wherever possible which heavily simplify the logic.
Content.makeFrontInterface(700, 120); // Set to true to print the values to the console. const var DBG = false; const var simpleGain = Synth.getEffect("SimpleGain"); const var mainKnob = Content.getComponent("MAIN_KNOB"); // Store the button references in an array. This will make it // more easy to set the currently used range const var rangeButtons = [Content.getComponent("Range1"), Content.getComponent("Range2"), Content.getComponent("Range3")]; // Store the ranges in a globally accessable array // It is multidimensional which makes the logic pretty easy const var rangeOptions = [ [[0, 50], [-100, 10], [1, 10]], [[0, 200], [-10, 30], [100, 300]], [[0, 100], [-3, 30], [1, 30]] ]; // This will store the currently selected range reg currentRange = 0; // Changed the function to take a [min, max] array so // it's compatible with the new functions below inline function normalisedToRange(normalisedValue, range) { return range[0] + normalisedValue * (range[1] - range[0]); } // This function will be called from both the knob callback // as well the button callbacks to make the module parameters // stay in sync when you change the range inline function updateValuesFromCurrentRange() { // get the range we're currently using local rangesToUse = rangeOptions[currentRange]; // grab the current main knob value local value = mainKnob.getValue(); // get the values for each parameter // (note how we access the array within the array) local v1 = normalisedToRange(value, rangesToUse[0]); local v2 = normalisedToRange(value, rangesToUse[1]); local v3 = normalisedToRange(value, rangesToUse[2]); if(DBG) { Console.print("v1: " + v1); Console.print("v2: " + v2); Console.print("v3: " + v3); Console.print("----"); } simpleGain.setAttribute(simpleGain.Width, v1); simpleGain.setAttribute(simpleGain.Gain, v2); simpleGain.setAttribute(simpleGain.Delay, v3); } inline function setCurrentRange(component, index) { // Update the current range variable // Note how we can use the same callback for every button // and just set the value by checking the index in the // component array currentRange = rangeButtons.indexOf(component); // Update the actual values when the range changes updateValuesFromCurrentRange(); } // set the callback for every button for(r in rangeButtons) r.setControlCallback(setCurrentRange); inline function mainKnobCallback(component, value) { // We just call the update method here, since the logic // has been shifted there. updateValuesFromCurrentRange(); } mainKnob.setControlCallback(mainKnobCallback);
Here's the snippet:
HiseSnippet 1980.3oc0Y08aajaDeW6rswpmKxc3d7dfPOzacqhOsR2WnGJhh+HAFo9CD4jb.FFoT6RIwy6RJPx0NpAA3dnu2+g5CG5eI8g9GPe3tmuaH49AkkrpbJthKxFIhCmY3uY3LC4PehfGSjRtvyeiSmNg34+dA8mxTi2cLlx7NXOO+FAGez9O4ni2IxamoSvRIIwy2e8Gqm2ei63Y97edvN3TLKlTSxy64bZL4OSynpZpmz6IzzzGgSHmRyb39S6cPLmsKOkmCXY8f1dSvwWfGQNBqYas.O+e09ITEWzWgUDom+c1gmLs+X9ULK+OmJoCRI5AQd8AEYI+HdZhFwZpd6NlllbRoMK8.sbRsGXcqG3CCNjlPqnW6ItmYBTsDt9C+0VF7hbgW6EBu1KBd9Nv6NV389A8iEzIp5YzX62Db.SQDCwvVfKrr75s1VuWvtbfClZ6L7EjGIfAURD9Esa2BE0o8Ve0lM1rwm7In9DERwQJQNQ++SDTFPXLAcINMmHMyAifsLIOkr8lMzeSAyJP6syiQ+IzPbpjXzV8LRZ1jThNvAXvDks8HhZ+gCIwpvl8qlsoFF0hkAjdBiO.DpzD.w1kmMgyfAgMO7gGbzK0QnMqwOrSPLPbPtRwYHAYHQPf.TIBVdL7qPfmtM5zwTI5JHjDocKHpxHdlVZBVNUanRh0ziyEfFToSQ4fyEIvrQDWbZHriY4j.VOawf8oZthZtUqMaftwOKQzNu8h1s4VmOuCx.aqWAMJkO.mBVHNVGagg.VqixHyAJD3rxxSUPZPFgIobFNEc0XZ7Xi6SZTXJeDMFBYHJ0TiSbNmzwSTzBmD5ryfPuOq84sPnytejINTO3rHyWNeo1pU3NsMB.B2B00pHid51d0jOpP9tkhaVb3qmipbW0gIxJGWc7fjjBgv0wDBxnxYMNdvPaazzRfhYYfZM.6IF0OLmEqcSlbMcrIFcVFk0B7zu5b6tBRxsxQUerDRFylfU5hL.RUiMJgQtpRQRz.RJ+pMaPYoTlyBv3hLbJEBpOkavaXMkmqy2aYMrs1rwqs1.r2lKXVpm09bze.cMIP+dTnc1nyQ2uhQc94abcoUXv3aG.NUH7Cb.CE7Lz.dgUbgN6WOy.3LAivXX2f.R3jgWNuo3jIYVOYFOIGbHSvB3bDnbmzHtTANOHhWNkECwuDFZJOGEa790IEy6oxmj.U2MVnDJglsqylbXs6AVgQEEMLJBv5GKls.BkMxxaJG.dQR3o7mI0AKtIIm4FHoiGsAKkKi.OvMXzTrz5uLUpcWCCAP6k0S0kHLlR3VyoVxLU6GxEPhLjjW4Fq3DBUTDDbLGXiEUMLRZiO0wg.dpHr0L3IB.y7wdW5DwY8HEANNR1YUkL55R1cUkry4y5UnCCgS1JLfWWmJuawQfliHCadYzeD0DxGtLpT7EwTmBl5rLl5VvT2kvz8gOvod5YLr7FWHWed61vYXOToDTHWgD5P+EzD03VknciUPB8+zp.4qB+6QRwSaYrhFuYYU.mOaCT4LIXwkmm0BxcSHuZlDtmYRMmIWvl6Am5P0GjUw4QNQrwvMAfSyMhIgP6ppH1X9KIhoE0WpDGyRPeSNbblzMIAMXJT+fDeAjXanZPHxF7WIakETdppl90Nov8ZDaazxwCqM84RUcrabrJuLOWZKqUWBxVbSZka40w9ppZzUW84l8J.kPg1NcwcQZhPGUnuPhfmtagJBu1tp8JaWequrFUkTN68F6al89WPr6HZXZvq09PPopw7DzX3lesfrA31e0WPoR3wX8AifuRNlNTYO7UnuR6J5nr6FUEUWfEeciwZx5eprWNSGUdLKbqFutwFMdybyLb3hlpXkRIhEMqtCKwRDKjkmMfHJ8nE7AMZLamLMt4NYbazJ1dwSGF4rCXT0wSHUisFYIk1dUFmKoZixkpwXV.a0jlu8IuhKCq6yqfcfUkoMpeaQaT8SoIDgGMQ2CUUmDdFWRQ6oe2OD9Odf2Mo.aHuQA2Mvd69RoC7M81t5R14sVxtyfXSG4dO6f8vJrtKxB+.3alPDJpdW0eOxkP641dJ2HXOh7BEeBzocUWCfSakbUupZQ+tI8lVM3aOtmmittqUWaV18JlQRKL.y2ibziWSG83E16J8oTUDP+sdiIzQiqeUgu8w8FvE.15S+qy7BDVpOEmPyktz8Wedjsr8SGngbg1GcMn4874fVudvklf0wcAKsXA.L9iE77I0Z3tKxqsrHFG2+W+KKr00Eai94Gay+VI2K3P88+wpYeFG8ESJl.JHNy6kneSDnwV0T2Lo+meamE8zSqJbe+fSnp3wKFuqs.7Bg2+bi2hWJay.6i2TC16D7nu9s8Ywhd6dVrec06VVcoSCTlgvM7xk+quO7e+.yMTKH7W96+y606EyFa965sf21ze8Ysq0WM65+xKPt73.yKm8NSb6GDXbruKAXyF+6N.9d55g+B.tOkmqf1dNDCs+AU7CNJOqOOWDSzOmETvVpuOyZ5qyXG2t79M8IrDyfeD9TLYjdrewjQkS9+k0HCGK3uL1dmKcp4cMT.6lY9iPrQvg5wnp62o8MYzD5Kii0k9tO3cVrDct0Rz8VKwmdqk3yt0R742ZI9hasDe4RjP+2e4g4JdlMdGHbx9l6356uOS2juIz26mPV4e3T
-
@christoph-hart That's what I am exatcly looking for, thank you so much bro :)
-
@orange @d-healey Hi guys, I'm attempting a 'One Knob' plugin too - tried the link sliders method first (https://docs.hise.audio/tutorials/recipes/ui/general.html#link-sliders) but the ranges were totally out of whack with each other and so moved onto the script that @Christoph-Hart first posted above. Now I have the ranges spot on, but the individual knobs are no longer linked to the fx parameters I wanted, even though they have been set correctly in the Prop Editor. Snippet below:
HiseSnippet 1551.3oc4Y0sSabDEdVvCAaJQIUUp2zKVwUl1DjM+DpTZjMXrCVAHtXBoQUQoCqGfQY2Yb2crabRiTdD5s4lpp1mfdYuKR8UnuA8pdUyaP6YlcWuiWLfqiHUQYEBwd9YNemelyblkF9BGZPfvGYkcudsoHqO.2rGWdbkiILNp9FHqKi2lDHo91gjVuWaRP.sExxZxaqHXkMCR+75RqSbIbGZBIDZeAygtEyiISn1n7cXtt0Hsn6w7Ljd4x0cD7JBWQG.OShKfZSbdL4H5NDkXSfQVSUsESJ7aJIRZ.xJy5hV8Zdr363gxuOKfcfKU8RQTSXgBIWS31RgXEUTkiYtsZD62AHXUZjDElLLJ7Q3sYsX8omDMthlgchFlwCqINK3UzDdEFc3YY.uLgv6p3lN9r1xDNJrMCtNGRTGRfTfIrBkEMwpYvUDfDb4BdjGSq4CuzWi72nPgqYuRgByeyYyMaNHQDHs6R7s2pl8sri06HprhvqsfCujetspMmR5DY27zkcyzx1bs8t2tqsW86tyopShHoz8902XuMOU0zbSowtU2u5tqeppDxdtz9d0urHnhdCgRgpGdH0AjFHGIJi6x3T6C6vcjLA2lK78HtLHvumXWB+HZ9DJ6Sb6PulsGiC+h7j4mM2ylMmM73Skc74JF1elcJ4s+T67fv1WWwVYymOLyJ3auV8cTtluvMuSrecMvIf0HzRYcENDW6tJO5jvraH3fRfUUVIV3E+uH7RmivEMEd4yR3hpZwhqVvTgUNmUuvBEWQKO7yV0VHfJ0Av7cCM6lljVTSJo7xf0RZV5RHCpKqoFVkXPN1fOWWLL7RKUlYt4UJEkepPbcO.Zrkefr172zHatiPRuKO+74dVtr4ddN6zrN7vgxKZobo9Ckspaq+YoXddGuCn9wkMwBBscFru1LmdeMy1tNgwCCAE75bl7tsoQua14K1qi4V.02YMIk3ilT0t1PDKgzIarhhxWPK1ohDGDUpavd4nFrMcYsn9HFfwL3spgzAljSr9jxnQRyMGSMgCi6WildEdcoQYEtDVWJmR4xzQx7SiCq3SzdI8yuORldJrp7dHv9d02fHIpS1hx.PVoM0WxT0VVaP6BiLDdNWV7FzfGKEs0onnsTfSc1IomfrvVWGrUO0e7EvezNNsWGjAig92vnE9vTEvge00PUOJCznMUFZjL4lZSFq2cJ2q+Ku5gkSslm.IKNTjXZ5oFsxiSABu3nz1DzYPaNC99T4ZdhNp8BFFN64VUkXyWrlgM+F9f17R3aCUBoh4vZvZIOF0hdHoiaXG0DW3ACD3f5UOyQMev.4loO+BXCfV2.n+feYVv1TIoQLxfBvIF.6YiVhTnOmJlsEsK0MtpwXqQejk471bnKUeXbo5OZolN9DS6AybJZ0wkHGbPTUgRDCnK9.S7olpiGvj8L22cgLc5nB2qhavjNGOb7NwPvKzd3hFuQy5OKNbttDvlAW6qF2A6G98NF14OV3Fm31WYwU532kV8a03HrSkIP1oiWMlKTCFnpWTkKqS3sJXF1TDJFQ3Ue+O+0kUDVbvqowasTZBKmP3Jksl7BveQ6J5HY7i1lH8YpBevYZBW0ygBQdNm5p8oITGLG9dA06J.0jp8Qr0+.OQLKFG.TLKFyDMJgzEeSBon+3W902aCoWJLjNCtIAtxhZGdTPUclx.W4LjuZedXL3E2J2eWJ4XFifaCe5feGAfjHPll1ab7aTua8Pae8w3DOx9++ltukS6S2+SCw7Z6FltTQk3y0O8uIDBsA0kLPa8vS8MNJeHe0n57tv7fMDtD+zGJbgTFjYjOES4d1uybp6Gh0g+2k.rt73cG.eEbCx6gcDhNa8xQcD1EFD1+.c.IYdYyHwtBgWS1Si2j+Su7k+UoMHdsAHGQp7RK8mk5OSsYCD+don85Rl8PzqUMeJ8oTHMXXgeqzERyh2Jg52F1vi33KdjS3E4UcAmVSA7at96smEus5c6hwWgGiKrPAjGqE6QNNpojuNDeFtNKNF5rzXnyxigNqLF5biwPmUGCc97yTG0+5g05HEdgsZ.BMpp+TJVVU4DnRVuWC8uPnuns0
-
You need to call the
.changed()
function for each knob after you've set its value.LF.changed(); HF.changed(); SATURATION.changed(); WIDTH.changed(); REVERB.changed();
-
@d-healey :folded_hands: