Lord of the Knobs :)
-
Ah ok I get it. Thank you so much... @Christoph-Hart
if(ComboBox.getValue() != 0) { } if(ComboBox.getValue() != 1) { } if(ComboBox.getValue() != 2) { }
-
How would you add to this so that which ever knob you turned, the others were linked? So the lord of the knobs was actually all of the individual knobs? Maybe selectable with a link button?
-
@duno You can link this LOTK to whatever parameter that you want like this for example;
Dynamics.setAttribute(Dynamics.CompressorThreshold, v1);
-
Yeah, I mean say if you have 2 samplers, compressor on each, and two knobs controlling the threshold on each of the compressors. I’ve figured out how to link those controls to one knob, or have another knob (the lord of the knobs), to control them both, but what if you wanted to select a link button which then allows you to move either of the two threshold knobs and it updates the other as well? Does that make sense? I haven’t really played around yet trying to figure it out, just thinking out loud!
-
I've laid out a script below that I'd use in KSP to do what I mean. Finding it so difficult to translate everything to JavaScript! I found what you've done above really helpful, but not sure about how to alter it to relate to each knob. Is the thinking the same as in KSP? Or is it done differently? I'd do the below twice relating to the two separate knobs controlling the release, with a button controlling the link. Be super grateful if someone could guide us a little!
on ui_control($knb_rls1) $i := 0 $j := 0 select($swi_link_rls) case 0 while($j < $Channels) while($i < num_elements(%CH1)) set_engine_par($ENGINE_PAR_RELEASE, $knb_rls1, ($groups * $j) + %CH1[$i], 0, -1) inc($i) end while inc($j) $i := 0 end while case 1 while($j < $Channels) while($i < num_elements(%CH1)) set_engine_par($ENGINE_PAR_RELEASE, $knb_rls1, ($groups * $j) + %CH1[$i], 0, -1) inc($i) end while $i := 0 while($i < num_elements(%CH2)) set_engine_par($ENGINE_PAR_RELEASE, $knb_rls1, ($groups * $j) + %CH2[$i], 0, -1) $knb_rls2 := $knb_rls1 inc($i) end while inc($j) $i := 0 end while end select end on
-
Hi @duno
I don't have any experience with KSP. but @d-healey is the pro for KSP. you may ask to him. -
@duno There are a few ways to do this. This is the first method that came to mind for me (I use simpleGain instead of compressor but you can use any FX you want).
HiseSnippet 1242.3oc6X0saZbDEdVvqSgVhhi5CvHeEnj5rfSRqjqUHfsiPw+fJ1tsJJJcX2YgQL6Lq1c1TnQVpuFsW2Whdmej5aP67yBrXiIPUZTsTlKr7YNmyLemyb9aocD2EGGyi.VENcTHFX8E1cFwD8a1GQXfV6ArV2tKE0GzXTHJNF6Arrx+BEOqBqAzq+5YMPTDyEOcK.3bNwEeHIfHlta65ujPoGf7vmRBxH8iq2xkyZxo7DINxa6.BQtCP8vGiThkyVBh88HBdTGARfikxzf6MpSe9OyLxeNIlzkhUDUAcjGjYaPy9DpW6w1XL.XsV6oVbdiE+k1GQ7HS1epkeOMC3TMx5CrxMKjVaFHU8lfzAbpm5.tA3YkAdqYf2F1cbiHghobTX6ysawD3HejzsmEVFYA49i71M4RIXhsBPCvGDIIlnQ4m537P3SbbprSohkJFg6AI5+S9LDKfuEEA8GB2E9pWK20e3qbdsjPGVrUOrXeeerqn7lcHAgTLTELrYEifUeeBVayJW4h5JXGRXCj5MFuRMaxCB4LIQ4MajHDbV0qo2.Fua7XLpILvb9mxKkBXNCinUWrnig43ycqXkHLQDm1DQockgmkU7Z1H6QtXoJUjvnDFF5mvbEDNCZ3U10nxCklEMAWoTw2UpHTtnbWDER7TuD5qXKByCO7D+wZnNUkfl+R7gkSclJK5b0gUtBb2cgNUfO5Qo.KFx3BnDGCvdF8RuM0R9BJuNsc7bgHhzMQfK6LFX6nk6Bi3XZLFd8CfGAKSj30YGHA9sovlhY8D8k67fGTYprYTa7cei27rhZ72FoMlYV.pAYVnpVEuXhWmyNlKvmvJWo36JVn3EEuJGe+4wJ0+QwQyiqpfVzBTqLKInKNZrAkJmLGe1hHqubEQbMAtYDjyZwHhSBwozSKyTcNkY.oQ9xBN4SAn7+D5xM2MsbSGJwCGAHxC4N15zGfF6oksqu81abIXoUt1JnrIiWqbA6zz+YTW2yAbVq8PBjplYp0HsvPbjfnbjV6geqrAjoBZA68vwCD7Ps4llnCrJ8dM3gSuvCqOZBQ8ypGKFodVVWKHHf34Qws4wD0qtRNKsf0tLVfC6P9EMx+8eSs9ymEjs44OdY.ZX1FmwI99D4N11PuF.eBMHVlOD1JP1ODXce6yj4cdXeTBU.iGHOJSt7obcix.tWpA6R5hopW5k1dqkwdcByXu+5GT68CqAdEuWV60dIBqlp7O0KiEC5UWfGJTFrpdpbzkq0VVNb.2KghDyNwfpIWJCkqIaqYU6WlzkMJaX7JLFgybGiXt42KIb2vtMQ31e93M2bvqLa6+Z7lNTVIayzCSA6Z1G7CeDl.KWFrbmIiDqmf4EigRI6LizbSSFqKxsGlhlw+88DOQ+LoC0myryV4WzztU+WNs6hCDT.GdqIv891ZG6sI.qe3u8.36Y2F8+g.huimHHrdGgj8HTMMNNIni7yDcwRnxXxoPk6YkSU32P6nnU.pCl4oI9a4JkYUEsUJypiYBVhL96lMiu1mR4+TJ+mR4uMmx+w3NBPtQ72j9s5pTyOSuiztY5eWqB1GongS93FkuQNZM4Mttpwc9Jo2Y9ZTak0X6UViGuxZ7jUVimtxZ70qrFeyBzP8y687DAOvDuK2n895OpzxZeFRF4pC8A+CP6V2pj
-
@d-healey Very cool way.
In this scenario, a knob (called Main knob) controls 3 parameters and there are 3 range options that are selectable with radio group buttons.But when you select a range button and start to tweak the knob, as you can see values on the fx unit are jumping. When you change the range, main knob vaue must be picked and recalculated the normalised values and apply the fx module simultaneously. This is what is supposed to be actually. What is the way to do that?
HiseSnippet 1286.3oc0X0raiaCDlJNpM1stX2hdnG5ABeRt0Ivxd2tEsHXchyOvXa9AwoI6s.FIZahHSJHQ4ccWDf8PeI1a8QouF8snuAsjT+ZaEE6hlhM7ff4L7i7aFRNyPepGyB66y7.ZkOepKFn8458mR4i5NBQnfd6Azpnexw6+piOYWSvtScQ99XaflVoCk50JuNP09qWtKxAQsvoh.fKXDK7OSFS3oROsyqHNNGfrwmSFmYzOqSOKFsKygEH3RI8l.Wj0Mng3iQxgslNPSeeaBm40mi3Xef156xrm1eD6MzvweAwmbsCV1wDzWLQghOf4XKYrTJn6Hhi8ow1rOPLKml5AJE5A9J8iH1jD4odhmnT.SQj0ensVQzyLK8Zt7zSKC8VOjdOUuukGwkmpQxsOSuGki8FfDaAYoU3XAqc4mn2kIFAku0XzM3C7DcRPX7hlMa.Ma0r9OUsR0JhMBeNbBxCdFhNDaB2FFicHl2kM1kQEcLpEptlD0bXZULlV4gocwXZWKjcYw0mL10AKOJJvpN2JQt+fAXKArTsIPITGBECGDPs3DFERYdiQNDgy5blZULRkbAxI.2.NlPEePusd0JuqZEnn4g4AdToB32Ama7vuEZHFLbSoZ4pdadKKidzN8N9J4sJoE6wbLrhM2FBKSLQxkStXpkT9gLvHzeKMQ0ZYTGt81Py5grRM5PDkS.pZNLKjCbhbebQ6cRnUJ1+etZ6ubFDsJBwllpCMK.pcQfLiQHAbqZSANm80p.6KwllcIuOKqUyU1zZ.auhVVSEFAnxEYcs+u25LWUqq8pabgHxXYILU9UbF1m4f2x0iHutNw7Gg0DWMlXpVj401JRaqb01NRa67ztonotKWtbryM8R9V9X9NbtG45.N1Hi7KI17QMhnCr7RfP9oQLCWhwuG1AMsQDoC8Kga+4GOK4xes5xoLJDPWjiy0hjdFKFcHL7UlvGGy33SnF0q7tJkqb6BZFLHOUQSlC1KOsx7wdE.yfFL9ZrWb3onwIRKMadO86NuW1zxVgNlLCjQ6QI7Sbwz6JaHHxaJSaGQJwP4prheQTVw9NDarGfXKSIl3FAJNGUswu+gO7muDbWSvtAbNiplfMzCC3NCZUwNq.5Vwn00TfWdjsmC4uzaODGIKJHxOH7MtXONQ5101COQTsUXIBk02C6eCm4JJbJ4XmvosTtp2lXn+gamoIcd+Ic.YlqMBmqpwEifnXmHxq9sYl4ATKy7.L57F48wDAveqyHLY3nzhDe+gctl4I3VexuNSAkgROCYSB7yJWqzhLqn8yLTClkZeybTCbwBTqSGWjmXcxtfwVrmfXrC8XAtoyvF440J5zRF2+q+3hasyxsgO7bawReEEfyrCbP7YqJWFBNRgHh0Lk+JKwk5S3Syd68AoT8kktOU+TB2ZT97csb3q338CMeid3SU8vJmSI655G75+suxI+Gg079dkyml7LzjzqJpLif69gnecGUt3zCdC5b4rmMOuSNOUUqzr1UokyttmGTV74.0yVdzbt8K0UN1GSDVsw+3gvOQFO7i.5dFKfSnCOBIJzUDwW+3fw8YAdVXAUoh.1xh7zVSVJSX+lwUnzGSsUc9aQKRooruVjRyXk+urFiQVdrqrBq2Rd0bCkDgcSU+mRk0OR1GlTemz2LlXStxxRF5aSg2IeDsVYDsWYDOakQ77UFw2uxHdwJi3GJ.g7uSam.Nab34c.3e.nZZ4wD
-
@orange There's something wrong with that snippet, when I load it into HISE I get this console output
ONEKNOB1:! expressionCC was not found. ONEKNOB1:! expressionCC was not found. ONEKNOB1:! expressionCC was not found. ONEKNOB1:! dynamicsCC was not found. ONEKNOB1:! dynamicsCC was not found. ONEKNOB1:! dynamicsCC was not found. ONEKNOB1:! vibratoPitch was not found. ONEKNOB1:! vibratoPitch was not found. ONEKNOB1:! vibratoPitch was not found. ONEKNOB1:! vibratoRateCC was not found. ONEKNOB1:! vibratoRateCC was not found. ONEKNOB1:! vibratoRateCC was not found.
-
@d-healey
Interesting...This is the snippet.
HiseSnippet 1292.3oc0XszaabCDlqk2VK0phjhhdpGHzIoVYCsRIM8ALhrke.gTK6Z43jCEvfdWJIBuK4hc4pD0.C3C8GV9oz68RA5OfVRtOkzZYoh5hXdXg3L7i7aFRNyPchGyD66y7.ZEOahKFn8o58mP4i5LBQnft6AzJoebu8eQui20.r6DWjuO1BnoU3PodshqCTs+746hrQTSbpH.3bFwD+SDGBOU5IseAw19.jE9LhSlQ+j1cMYzNLaVffKEza.bQlWgFh6gjCaMcfl99VDNyqOGww9.s02kYMo+H1angi+bhO4RarriAnuXhBEe.y1RxXoTPmQDaqShsYefXVNI0CTHzC7E5GQrHIxS8DORo.lhHq+PasEQOirzqwxSOsLza8P58X89ldDWdpFI29D8tTN1a.RrEjkVgiEr1K+H8NLwHn7sbPWgOvSzIAQ0m0nQcnQyF09wxkJWRrQ3ygiQdvSQzgXC31vXrCw7NLGWFUzoZkP0UjnlASyEioYdXZsXLspDxtr35SbbswxihBrpysRj6OX.1T.KUaBTB0lPwvAATSNgQgTlmCxlHbVmwTqR0TImirCv0gNDp3C5s0JW5ckKAEMOLOviJU.+F3LiG90vphAC2TpVtpWm2xxnGsS2dWHuUIsXOlcUyXystvxDSjb4jKlZIkeHCpF5uklnZspVCt81PiZgrRMZYqXBLUylYhrgik6hyasiCsQwt+SUa9Eyfn4hProg5HybfZsHPFwHj.tVsk.mw5Zt.qKwlldIuKKqYiU1zpCashVVCEFAnhKx5Z8eu0YrpVWqU23BQjwxRXp7q3DrOyFukqGQdYcrwO.qHtXL1PsHypsYj1l4psUj1V4ocSQScStXwXma5U7s7w7c3bOxkAbb0LxeEwhOpdDcfEWBDxO0iY3RL98v1nI0iHcneIb6O+nYIW8qTSNkQA.5frsuTjxq57wFBCdkI3QOFGeLsZsRuqTwRWOmlACxSUzjYi8xSqLar2BfUkF3bI1KN3Tz3DIklNqm9sm0KaRYyPGSlAxncoD9wtX5skKDD4MkIsiHkXnbUNwOKJmXeahE1CPrjIDSbi.Emip03l+3m+8mCtsIX2.NmQUSvF5ggamBspTmU.cyXz5ZJvKOxVyf7kc2CwQxRBh7CBeiK1iSjtcs8viE0ZEVfPQ88v9WwYthxlRN1IbZKkq5sIF56caOIoyMG2FjYt1HbtJGWJBhhsiHu52FYlGPkLyCnZ62HuOlH.9asGgICGkVh3MG19Rlmfa8I+5TkSFJ8TjEIvOqbsByyrEselgZvrT6qlgZfymiZsa6h7DqS1EL1h8DDicnGKvMcF1HOu1hNsjw8+5Or3Vqrba38O2luvWQ42Lq.aDe5ZxkgfiTHhXMUwuxBbo9D9jr2duWJTeYo6i0OgvMGkOeWKG9JNdeey2nm8TVOrt4Txtt9Au9e6abx+IXMtq237wIOBMI8phJSI3VdFZ6V+09uWkKN18U6W9x1uZpyl278sy4gpZEl1tJrb10c7bxEeNP8nkGLma+bcki8gDgUa7ObH7ijwC+.ftmxB3D5viPhBcEQ706E3zmE3YhETkJBXKKxSaMYoLg8aDWgReL0R04uEsHkFx9ZQJMhU9+xZ3fL8XWXFVuk7p4FJIB6lp9GkJpejrOLo9NouwgXQtvzTF5aSg2IeDMWYDsVYDOYkQ7zUFw2txHd1Ji36V.B4el1NAblS34c.3e.zIJ6EE
This is the interface code:
Content.makeFrontInterface(700, 120); const var Range1 = Content.getComponent("Range1"); const var Range2 = Content.getComponent("Range2"); const var Range3 = Content.getComponent("Range3"); const var SimpleGain = Synth.getEffect("SimpleGain"); inline function normalisedToRange(normalisedValue, min, max) { return min + normalisedValue * (max - min); } inline function onMAIN_KNOBControl(component, value) { if(Range1.getValue() == 1) { local v1 = normalisedToRange(value, 0, 50); local v2 = normalisedToRange(value, -100, 10); local v3 = normalisedToRange(value, 1, 10); }; if(Range2.getValue() == 1) { local v1 = normalisedToRange(value, 0, 200); local v2 = normalisedToRange(value, -10, 30); local v3 = normalisedToRange(value, 100, 300); }; if(Range3.getValue() == 1) { local v1 = normalisedToRange(value, 0, 100); local v2 = normalisedToRange(value, -3, 30); local v3 = normalisedToRange(value, 1, 30); }; 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); }; Content.getComponent("MAIN_KNOB").setControlCallback(onMAIN_KNOBControl);
-
-
@orange Yeah the value will jump because the range has changed and as soon as you interact with the knob it will recalculate and apply the new values. If you want it to move from the existing value of the previous range then you will need to add the previous value into the calculation of the new value (and you'd need to know what the previous range was too). It shouldn't be too difficult but it might cause a headache :p
-
@d-healey Yes this is a trouble :) Can we make only this?
When we change the range (press the buttons); could the parameters and knob returns to their minimum values?
I tried that with .setAttribute but it doesn't accept. -
@orange This is probably how I'd do it.
HiseSnippet 1441.3oc0X80aaaCDWJIZKwadncXOtG37S1MNIR1sqC0qXtwIoHnKIF0coEnnnfVh1lHxjBTTN0qH.8g8Aqej12fsiTxVxIJI1IqCsBv+g2c+N96NRc5nZK3tjvPtvvbsWLNfXX9sVcFyjCZM.SYF6uigYAqiNb2mc3Qa6Xr83.bXHwyvzb4mpzat1JF5q+921F6iYtjTQFFGyotjemNjJSk1t4yn996g8HufNLi02u49tbVKtOOB3xxV1FAX2Sv8IGhUlsjkg4WsqGUxEcjXIIzvbks4di6LfeJK19iogzt9D0.GiNfihEuG22SwXkTiVCn9dsmDygFfWZmlAVNNC7CVGP8nSkmlItiVAJEQ17g4RWE8btgzyLC8VIld20piqfFHS0n312XsOSRD8vvRPVZEaqwRqrpUKNXASt4P7Ij8DvfoHJ+Pa6pHmZ1UZTrPwBvBQnDMBKPcnCC7IpkZziQ58Ea1mH2sWOhqrboTskNOvQf8u9MMPas0HmpnQ0fO0KVXzlBRHQLhTtdL.AoOh1H92gbORir9PfY8IaGIkfjX2ofziKPkovX6FHJ5WQ0geVe8JEK79hEPvUVTul9FvvIwMv7V7gAbFLnbomqrqz5koq6TQQlbvtYnBASJ39sv99cgMjk6JYZjs1tRiBmoHDk4SYDTuHlqjxYHFWLD6Sg7+K3ZSKmJ4XreDoJZHkAegeWFVSjQBlRAZcz4rGcOTYvXzFJ0Jpl6zFE3Aa7RVZNgw6pwlNCzdfWfTL5mdLJh4Q5An8p.KPsEjQPFAcJVvnr9HvWTFUFiJAr5J7TpzcPrSpjJNiEpKWbHAY+nYEptF8Za0hwEyNS4ZUDrI7A1SVLlEry0BdCG8l3KAesqEuSdf6JH3SZjSH5byCwZ12lXrJp9MODs0vm+nr1MOJctEQY8aUPlG33Hbpnyh0lZSZoL0M8OQJEztQRR4LxeI0SNnpN7y584.o5qp5HeAAtCwGOtpNpmf7r7u6OsrTY23JV.rYK.nu4+wyTiaSJTH3cG0aBlISxL0RruzRNb1AOY+Ceqp2fjxjfiRJvlY5Syzy32X8oIj3+r08.WEx8IaFHnp5zibdDpDTTbjix10Nu1ZIZqkq15IZqmm1MfK3AWpY8daAgn9wK4+vhowYoJ48PgKlHpzHSV5PtjbDqbkBuuvZENqv40zqWdpRbjOQjmVUyShq.VYVzvtDwjUgD6fdHlsIEq4qIE23jRFC4r8gmQbT.gcYstXjjIU8XkPJvTotEluKoElN9TOhvf5o5eYZJzPy4r8VZbYNHder1AqZouAv4Vgt14QmDGyG554f9O1eGrDq5jKIe.4n.hPRUoeycHifVji6qaMqcHgmH4AP2tS25AIu4Jk8toS5GCZNd5fObTSiL9Z0XeUbRGjXFwOI.z+2IieLJkwOFkadpp72TAn+p4.Bs+fzN6+vSa1kK.t0g9myjBhk9brGMJLqbykuHytp00LTCkkZ+34nlwwWfZMaFfEv7jcBmDwBfX7mJ3QAodX07xZW0tlLo+W84E2pmka8+zysKddE3TSbuHerb1iRod.WhBnx0LmYQctDVHUNN6cwKv4qrm6yWMuz8tVsUM+lOeWJG9Bau+Ty2jSqVzJ94oojcEq8d0+sGM095NZ5WO8cGLs4EMUlQvk+1CV8i5Ncxtb+xY2aZXjy6Wvb4Yiqkmu35ZdK.W89.8Yg+hYe62aoSreIQX8B+WND9Np5geFP2myijvo2O.CGi.p3acXzvN7HgKAnJCJXqZ1ybIU6LwisUiUDpCg4oG7OvUhRG0XyDkNST9+xbLD6J3uM47HpaMWUKAhal9EAtl0Apwno84oxMCodz255pJ8sAjcxGQsEFQ8EFw8WXDOXgQ7yKLhGtvH9kq.g5cf9jHIeX79cPP6c083ZZtKCC6b0a8M9W.x2t6GA
-
@d-healey Thank you so much David. After selecting a couple of buttons and return to select Range 1 button, the values aren't controlled by knob 1, why is that?
-
And also is this possible return the knob value to 0 when a button selected?
-
Seems like
mode != undefined
andmode != 0
are equivalent, so I had to usemode !== undefined
instead. Added a couple of other things to, including setting the knob to 0.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
-
@d.healey Would it be ok to show how to do the three knob version below, but scaling from their current position instead of snapping? Been trying to figure it out but getting absolutely nowhere :/
HiseSnippet 1242.3oc6X0saZbDEdVvqSgVhhi5CvHeEnj5rfSRqjqUHfsiPw+fJ1tsJJJcX2YgQL6Lq1c1TnQVpuFsW2Whdmej5aP67yBrXiIPUZTsTlKr7YNmyLemyb9aocD2EGGyi.VENcTHFX8E1cFwD8a1GQXfV6ArV2tKE0GzXTHJNF6Arrx+BEOqBqAzq+5YMPTDyEOcK.3bNwEeHIfHlta65ujPoGf7vmRBxH8iq2xkyZxo7DINxa6.BQtCP8vGiThkyVBh88HBdTGARfikxzf6MpSe9OyLxeNIlzkhUDUAcjGjYaPy9DpW6w1XL.XsV6oVbdiE+k1GQ7HS1epkeOMC3TMx5CrxMKjVaFHU8lfzAbpm5.tA3YkAdqYf2F1cbiHghobTX6ysawD3HejzsmEVFYA49i71M4RIXhsBPCvGDIIlnQ4m537P3SbbprSohkJFg6AI5+S9LDKfuEEA8GB2E9pWK20e3qbdsjPGVrUOrXeeerqn7lcHAgTLTELrYEifUeeBVayJW4h5JXGRXCj5MFuRMaxCB4LIQ4MajHDbV0qo2.Fua7XLpILvb9mxKkBXNCinUWrnig43ycqXkHLQDm1DQockgmkU7Z1H6QtXoJUjvnDFF5mvbEDNCZ3U10nxCklEMAWoTw2UpHTtnbWDER7TuD5qXKByCO7D+wZnNUkfl+R7gkSclJK5b0gUtBb2cgNUfO5Qo.KFx3BnDGCvdF8RuM0R9BJuNsc7bgHhzMQfK6LFX6nk6Bi3XZLFd8CfGAKSj30YGHA9sovlhY8D8k67fGTYprYTa7cei27rhZ72FoMlYV.pAYVnpVEuXhWmyNlKvmvJWo36JVn3EEuJGe+4wJ0+QwQyiqpfVzBTqLKInKNZrAkJmLGe1hHqubEQbMAtYDjyZwHhSBwozSKyTcNkY.oQ9xBN4SAn7+D5xM2MsbSGJwCGAHxC4N15zGfF6oksqu81abIXoUt1JnrIiWqbA6zz+YTW2yAbVq8PBjplYp0HsvPbjfnbjV6geqrAjoBZA68vwCD7Ps4llnCrJ8dM3gSuvCqOZBQ8ypGKFodVVWKHHf34Qws4wD0qtRNKsf0tLVfC6P9EMx+8eSs9ymEjs44OdY.ZX1FmwI99D4N11PuF.eBMHVlOD1JP1ODXce6yj4cdXeTBU.iGHOJSt7obcix.tWpA6R5hopW5k1dqkwdcByXu+5GT68CqAdEuWV60dIBqlp7O0KiEC5UWfGJTFrpdpbzkq0VVNb.2KghDyNwfpIWJCkqIaqYU6WlzkMJaX7JLFgybGiXt42KIb2vtMQ31e93M2bvqLa6+Z7lNTVIayzCSA6Z1G7CeDl.KWFrbmIiDqmf4EigRI6LizbSSFqKxsGlhlw+88DOQ+LoC0myryV4WzztU+WNs6hCDT.GdqIv891ZG6sI.qe3u8.36Y2F8+g.huimHHrdGgj8HTMMNNIni7yDcwRnxXxoPk6YkSU32P6nnU.pCl4oI9a4JkYUEsUJypiYBVhL96lMiu1mR4+TJ+mR4uMmx+w3NBPtQ72j9s5pTyOSuiztY5eWqB1GongS93FkuQNZM4Mttpwc9Jo2Y9ZTak0X6UViGuxZ7jUVimtxZ70qrFeyBzP8y687DAOvDuK2n895OpzxZeFRF4pC8A+CP6V2pj
-
@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