Switching sample maps with radio buttons.
-
Are you planning to let the user change sample maps by clicking buttons?
-
@d-healey yes , that is the plan .
-
@d-healey These buttons will be switching sample maps.
-
Ok, but if they do it while the instrument is being played they will get some surprises :)
-
@d-healey Isnt it just silence while it loads ? I tried it and cannot hear any glitches or nasty stuff ?
Its the same as changing a sample map via a combobox or a preset.
Not great for live playing but kind of acceptable in a daw ...I guess.
To be honest, not sure if that is acceptable?To do it without interruptions I would need 26 samplers.
Only 9 running at a time though ,with the other disabled when not in use.. wonder if that is a better way to do it ? Also wonder if they take any cpu if disabled ?
Just concerned with the cpu, is it advisable to run have 26 samplers in a project ?Any recommendations ?
EDIT: I could maybe cheat and map 2 sample maps into one sampler and use transpose to go from on to the other ...if that makes sense ?
That would reduce the amount of samplers needed , although that might give me silence as well....EDIT2: Could I somehow cheat by loading each sample group into different velocity layers and then switch the velocity around ? No velocity is needed for the samples themselves. Probably not...:P
-
Okay I got a little upgrade here with 6 linked buttons. It does what radio-buttons do. One turned on turns the others off. Also, no button can ever be turned off, if it is trying to set itself to 0, we simply switch it on again.
onInit callback:
- const var all elements
- set array with elements var names
- sync array with states in 0s and 1s in arr_buttons_sw.
const var Button1 = Content.getComponent("Button1"); const var Button2 = Content.getComponent("Button2"); const var Button3 = Content.getComponent("Button3"); const var Button4 = Content.getComponent("Button4"); const var Button5 = Content.getComponent("Button5"); const var Button6 = Content.getComponent("Button6"); const var arr_buttons = [Button1, Button2, Button3, Button4, Button5, Button6]; const var arr_buttons_sw = [ [1, 0, 0, 0, 0, 0], // for button 1 [0], we set all else to 0. [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1] ];
Then the onControl callback:
for (var i = 0; i < arr_buttons.length; i++) { // loop through the 6. // for any button matching one in array list. if (number == arr_buttons[i]) { if (value == 1) { var btn_nr = arr_buttons.indexOf(number); for (var j = 0; j < arr_buttons.length; j++) { // now setting the elements all in one go to their pre-set values in the arr_buttons_sw array number presets. arr_buttons[j].setValue(arr_buttons_sw[btn_nr][j]); } } else { // we dont want the value to be able to be set to 0, cause that´s not radio-style. number.setValue(1); // just set it back to one. } } }
Here´s the new project in all its might:
-
@andioak I think you can tidy up and just use this to get the array.
const var Buttons = [Content.getComponent("0Btn"), Content.getComponent("accBtn"), Content.getComponent("soloBtn"), Content.getComponent("orchBtn"), Content.getComponent("organBtn")];
-
@lalalandsynth said in Switching sample maps with radio buttons.:
EDIT: I could maybe cheat and map 2 sample maps into one sampler and use transpose to go from on to the other ...if that makes sense ?
That would reduce the amount of samplers needed , although that might give me silence as well....
EDIT2: Could I somehow cheat by loading each sample group into different velocity layers and then switch the velocity around ? No velocity is needed for the samples themselves. Probably not...:PYou have 128 keys, 128 velocities, and a whole lot of groups in each sampler. You can almost certainly map everything in a single sampler. I do this all the time unless I need different modulators/effects for different samples.
https://www.youtube.com/watch?v=dG-7K8cZoLI&lc=Ugxe66xKq5OP9f1-L2l4AaABAg
-
@lalalandsynth said in Switching sample maps with radio buttons.:
@andioak I think you can tidy up and just use this to get the array.
const var Buttons = [Content.getComponent("0Btn"), Content.getComponent("accBtn"), Content.getComponent("soloBtn"), Content.getComponent("orchBtn"), Content.getComponent("organBtn")];
If you rename your buttons you can do it in two lines.
for (i = 0; i < num_buttons; i++) buttons[i] = Content.getComponent("button"+i);
-
@d-healey I dont need any different fx or modulators , so this is perfect , will have a look at this , thanks !
Btw , is it then possible to switch without any interruptions ? -
@lalalandsynth said in Switching sample maps with radio buttons.:
Btw , is it then possible to switch without any interruptions ?
Yep
-
@d-healey Awesome , redesign time !
Finally understood the Defer script thing as well .Thanks mate !
-
ok, So I have set the instrument up with velocity switching but a bit unsure of how to implement the buttons since I am not using the keyswitching , should I set up 4 buttons in the Midi processor On Init and then link to those buttons for the main interface or do I do the whole thing from the main interface script ?
not sure if this is the right approach ?
-
Your interface script is non-realtime, so it can't change the velocity of incoming notes. So your first idea is right, you need to add 4 buttons (or a slider pack) to your velocity changing script, and then link the interface controls to them.
-
@d-healey This seems to work , wonder if you could have a quick look and see if I am breaking any practices here ?
HiseSnippet 3261.3oc6bszbbabDFKIgkHsoSriSUtRkTEJ5KTkUTviAO1njxjbIoLiIEYQJq7vQkJncGRhHr.aAfkRLpzkbH+Kx+gbLGyOgbLGyOAeOGRlAOVLX3vkX6rijcRVxCKlA8L82zyzS2eCVbTRbebZZbhRmkezkivJcdO0StLJ67dm6GDor21zBReQPV+yChNyQYqKG4mlhGnzoyhOfdGcVdIk7Oe8mskeneTebcQJJONNnOd+fgAY0kdzFeQPX3t9CvOJXHyci1Xu9wQ8hCiGSzlEU0UF42+49mgenO81VPUoy6ryffr3jSx7yvoJcVZq3AWdx4wuHp39ebPZvyBwzKLTNgzPEEuab3.pFS+tRuyCBGbTEpSUHM5Q0iAKVLF7QpGDLHXR40iEe27Jzpkfc7nyBSS8L.pdcXTukJTuOP8j9IAixpqgpauq5dQY3jS8Il.V0p3dUV3etjZuXxcDkcug9OGuaB4hIRrtit9c0r00uy8WcE5eDSQZl1E9IZOabVVbjg1OWqR7yvY8hGNJNhbw5qUV+ZTI4kx7FjxTnTV2fTVBkBcCRgVq.aZW8ivBoEW2GWfCi6GjcIoSxWeP6hFSRVespaoreBhBChvZmNNpeVPbjVbT4HEUIShCWuekFdWRODNFemUW4UqtxxUMy8RwYalkkDPDCu9jR2JuQrqjgzUuNu6tAiCs0J63d9ggOirzZcdMpx1ecZt47PyclIM2b5ZtYK0bq4gl6NSZt0z0bqVp4n4gl6MSZNZ5ZNhSyq9irfgQ6eXbF9vn0uyJuZkkW40qbkpN8Tg0U11g3DgUS2wHYZBtdz3gOCmTg2paj35rouY014atewvDyMFGsWTP1givkWeUO1JkisDe2pkZE4Vyx8b+9kdtKLKJADGzKqVtHTIWkY2PUYFD2rRb0N4ROChZAWTzrK52oQQWA0jOe4da6m4S25qbjjL5NBmjEPMbc1FeAIlhhMBWVcab5yyhGkOTWNMVoysZwf8KY6xKYu3EACxNutfe8FmiCN67L1RR7GDD+fj3wi3LWSTgkagAiQE9MaLeTgQUyC2izSqnV4FfDIUBIHJxd86kqAaUpAylFawnw+ie2aCM1ZF0XDiFqm81PiQMz32o0qJXlanwp2+1MZgdqb0PFIAtFOXbneVynYogvWVAwMZivFogFFkRAFC1mgPb0EFhqPGlsTc+.0in4gHVeWPf9RbgHa8sLggUU24zSw8ypU1kT28WAM6.XpxOrPU9P0SxRv9CIoqch+vQjcRy0mUTKuxXdjC2nVmC2QIj0G9CNI32yba+0M1ZLY7JoYo+4Mx6pMGFONpQeUp4GiGg8yHleFYt8FGeb9JTdo95OKexxiRHgtPFJXq3vHLYbOiEi8RhSSOk.m71JkspiFmbFcrptjiwWfSRaV1CGOjX6ihvgzfK5P2M7KSwTacP+C7Igk0X+l7dQ+Q941aRhs4WavcsI20VbWi3t1l6ZGtqcqutiZy4h2pcQCcf+ni7IPj4N2JnbVFothRXSmcxvZdWyjo929RCegqpdee08wmQbQ8KCxN+XLwFe1YkK193xZzdAoJsI00Xo2BcVrodtX6zyoEvoRa4JfYaKQTE72UUSvmoMzezI3Phas3DRZu52uIu.kIhxj0s+fAEEt9ZkUt1c0zI+2Lc8x7.mlfNDAMrtNQcmlntDQMctNQ8llndDQs5VIJqv9IIEQTjRj+qpRAuJg1pzCKakmHL8+B4mjMUc5bWTjIGkvgZxLHtMoFERuU202KHZ.9kGdZsrT0rl+hBZ5VuQCbmWUysQe+Trl9OsIYGjAiz3P78FkDPy.7zfjzr0pZ2pOWch.asOircyyuOW+XL89IESFbGbCcjYa5Hyo2QYmGjbS8CpM8i0MLvEmjc9MzON2P+L.ep+3vro1Q0SGdLMwozuR+IZep1Zj+9TsqTmwTpybJ0Y8Ddfvg1RMskSTdc8bzUW40zEGkqfDQyPy0IzNnbY1rbytyxM60taln6B32XxZ2CHq27OCSaqGW5acclgibpWV8ab7frx7hGjpQjpRzUl.P1hpwEao4vQvsUWzToYYoVwXQ4bNnzrTNKT.eEyf3t+mIt27hsjkXRJcoVLl8xJFdtjgpmYnEbJZg+.7VvsnEVpC3VvqnE9iMZg2XYJuX6R26FN.nkqzwSBnAcuSDMLNRITc7CIl2buxUk1LSuChihGcdbTP+l4xTE2JitKDPalkQbDVWxGswwDWajcFmTze4Osw9jPd7SZlh1UyBGbjthNLLg1qOVsPc0ndVz9uCFNV7+4Y3XZCcueI+FZjdOI6a3142SMOibMJAJusT0iiGmEDcVE4DpOb7vShGmzGyxiwBTmrEWqW4y7Dbzf7K9WjOkUZTQ5AsRipJU5W0TDrU987Mq5rHNhxHPddvgXh6J1ozoiO8TpJsfJ464F0g4jKPG4HkwQ3CEdGDz+nXxvFYEC08h58U574ERpz4cONlx0yRpHCk8i+B7kke+yCp+99wOlpBzQsOOn7qFUcTIsFAgkOHBVpu5niO7WrSuG8zcOb+s243WuEw90CGFF+S1O9L+HM50Z4E7zcMu2K7uPY6wiBC5SLeT.ueb7ncpvOssoETLssysTMLcccTJtmAzB7brsQUiDL3w1pFOjuOAO4kKM7XM63wwxqId5ZoK.OHDi8AwXePyFdPyBddvm.v.4YY1DPHcgFHGFCjCiAxQp.BfExtqUS.4o6IxBwLiCwLiCIyYbO.fAxQmaEjtqsHCjMiAxlw.YKS7.ZEjQS735ZIBOLd3rY7vYKQObaCY91UrOtVhV.gXV.gXV.gj4BnMg3QvwfCPHjoHCjGiAxiw.4IU.AvBYXzzEmqtmqHKDyJHDyJHjLWAsIDCjiM2dp5BWA4xXfbYLPtxDOP7Xay6QnqH7fXvChAOHYhmsfDyid2l3g7Qj8oKi8oKi8oqLwCD6iKWHBtFhV+XwXerXrOVtRzgPuOAjApIfr61UzVpHFCDhw.g5JU.MO1S01QTToVL6AYwrGjkiDmw0ChGNKNObFtFhLPLaAgX1BB4IS7.v93Z51.OntB8XawLgyhYBmkLmvsMnUPF5bqf7DsBxhw.YwXfrjoAZaPdDb4CxVXLO5Ltr0YbYqKS7.JIH9ztQBC4gAOHF7fjId1ATLobaAoaKz9XxXeLYrOlxDOPbX6x4vtqtPZDXvChAOHSI5PXWPzHX1zgfikkvXRY3EwlgWDajTADHW17VHagaA0Bh3LqAj00AH2qGPa1qWAlXKAFYb5bTiz0yCHYbxASfRdfahmsGBHgbsASdyJl.QJmiSyLHbML5BjTNIAJPoQ3waofRLmTl8AibNt8k55XBjbN4fIH6MYxSufkCPBsjxjOXjZwmgjmP24sgTKIAJPVJtn7HKo.RrkTl8AhbKdxF5ZpCjbK4fIP6QwamDdFKsgfKofosLmGQv10CHIWxASPrSHtr.sASzkTbR.hrKGSdP43BjrKIAJHVJGNP4IL.o1P3kTl8AgzKRRTM4TwwEAjzK4fIPw7wkwgqWWfDeIkIefH+x1jieeKWOfmfoj.EHKE+wXpaBjQOoL6a64AoDt1PY0SNXBRLe1VsI9n1vrmTvDD18PdbKnPNd.Y2SNXBTLeH9C0z.HCeRwIAHV9bzs4NIcgmKSaX4SRfBxJJCdFjDGIaK7RfpAk80Ap6e8f5vDBf3fUdYv7T30LSJCOTWfdJjFtf3s3J7HoaZCzag7v0b3QKzTWb17sviQav0OCBt.40v1nYphFtVP8ZHQfAwhgZtukogAzyHPZyD2ET.t7FLwjk0hyIPd3Bxdxbj.ZpKbhXaNq.oMQD14Ezkyf4X.8g3Uh.Cz4j5vYwLrAdlARalHjyMv1tI+EF1lV.O2.4gKPO2AHN6kNzyNPZSDAd9ANbFLOGfmefDA1rawHwXzbOLccg.qMmgfzlIB4bDr6xsByAA8bDjGt.EygN2JLOnOrrRCWfNOAt4gFN1t.OOA4gKP6fwYuL7zAdlBRywArGhVilKvz6Z5A7bEjHvf7j+XXyk2rvmEv1b1BRalHnGpVGNFoLMLAd9BxCWf9A3v4o20AA7LFj1DQXOjsH9fesg9KkRh.CxJLDeThB+Qg1lyZPdLtAIlCGKtmJZ5ONTleG02t32Q8OP8AgwOyOr9WScbTlePT4abqeTY0ZSpWaxMLs23c+s4+a7N92qWy76eLQ+bs6rzagWOZy+e36euqXlR++uRF9V2qjg2Du5.dSzGC86mD+z9Eu+cnKxtcdIDbGk6DbY0CnWqM4kTrpp98zUFRVb8z98oC2+Xx3iXYLAHiE.YP.jwFfLN.jwEfLdSUFpesMGmEOrXoHofi1o3MJQmIaxzYQk+8dgUgd
Also, Say I need to change the velocity switching for 3 samplers in a synth group at once...do I duplicate the code from the Midi script in each sampler or can I do it in the midi script for the group ?
-
It looks fine, but I have some suggestions. I'm just putting a snippet together.
-
@d-healey Just noticed that it does 2 switches ...one for the button it is turning off and one for the button that is turned on , which makes sense I guess but could be fixed ...hmm. Console print reveals this.
It does not have any effect as such as the one it it turning off is the one selected already but might be a performance issue.
-
This is probably how I'd do it
HiseSnippet 3031.3oc6b0sbaabEFPRH1hINsIMclLcZmAiyMTQpp3mE+vwoSjDkjsZjr3H539iqGOvjqDQMH.GPPaq5wuF8t9NzK6kc5SPeD5iPdCZ2E+PrXEjB3oZscRptQb2EKv4a+NmydNmkD8hiFfmNMJVRd0Gb9Drj7Gnz+7vjQcG44GJcvtzNl9B+jAi7COyVZmym3McJdnjr7x2kdExqthT5eeyWtiWfW3.bYWRROLxe.9P+w9Ik81aquxOHXeug3G3Ol4pQacvfnvtQAQyHRyxJZRS7F7Luyv22idYKoHI+d6MzOIJtehWBdpj7J6DM779ihdQX10+P+o9OM.SanK0mbix5d+nfgTIl1qT2Q9AC6Uf5oRjaZux0fkyVC9Dki7G5Ou+x0heb5.pkyfc8PdoqR7zYEOslKdxLh2JYh2GozePr+jjxQnx16qbPXBN9TOBEvJVYWqzR8VRoaD4JBS1br2yv6GSZLeFss0z1P0RSas6bqV2pEgHlln9buX0miChF3mbt5uVMUuXyyvIUVbZe6hK417y8oyRRHMHS8QONcnSihUa6SZqcGUe0uPEQ925qu1sZ8pa0Rk7W9D1bxroiZWHrjGX2nwShBIMZe6rK41pqStQqqu1ZzmIyTej+i2bJcBgIwQAc8BBdJQIpc1nEMW6NsdMUb7CC7CwpmNKbPheTnZ0qp8fhm5FDzDLCWJmD75En5GND+RBXJj5z1GeZ47JjshEHpjscRRrOYF313WhGvt3sY18Y8zaSwijHoyEunv6GkfONr8ZsdUqUa85Vp7Cc5o0NV9pQ.Nt1golgwW0DaGNa7SwwExTwERzGqpvqb4J7r1iCxHVlKLJ7fP+jimfCuLy.obsAhAgRtTQtzjTygOL2bXmz0OIehV+pJYKl5RohLqWJoEX5FESWQNc1KvTMgOUzhO0eTktt.pI+80GrqWhG0eR9JIY0cBNNwmRbx6heNwQcl2kUU1EO8YIQSRWpyUkkjuQCVreI6i7b1FuveXxnxN98aMB6e1nD1dh8F5Gc23nYS3nq4hvpMfvXDg+vVWOhvjB8vCHOoVJEVrjsmhI6LQbfdPpDrStDrXRrIiD+u+SuMjXyEThQLRrVxaCIFUQheuFaUvnanxJ2+wsZfbKcw8gIQCDMbVfWR0PDnwEkO.wMZk8ho62FNkBLFrKj3FZp39QJ8nA2Uu7tTMxKwEhnk27nvtkxdmdJdPRovthx9+NwGxEqn7yyDkOVoeRL1aLIF39dimP1IMUdZoj2R+5Hv3IMNv3dwD6Cug88+yLW1+XqclQVuhq16eaqzG01iilEV4YkK4mfmf8RHzOybt4VmbRpEJ+r9luLUY4AwjviHKErCbbHlrtmvhwtwQSmdJANo2qorC0aV7Yz0pxdNA+bb7zp8c+YiIbeXHNfFbgLc2vudJlx09CNxiDGUk8aReJZOvKkuIYKj1VmqsAWaSt1Ht1Vbss4Z6T1VVopt3MZV1IG4MomGAhLZs63mqkQFKqmREVsxk0zGMyC3MYtMK2rP8pQjV5hhzOU4P7YD2R+V+jQmfI75Ymkaf8o4inRx.cj57wpXtsj7xWSxVYPlRMMoKlsppKmq1KoDiOScr2j93.hqLR9OzjeXSRhLVZFRjzuL1PEsgp8iu5znZXRTjLgHWSQRTdCGlsK37LnV2eCUcKsOm9OsuKjEU0EQ5x1iRu1GWeNRyeLGQXKuyvT.8vbtpMy8hd6I33csboZcckKUwJRQOZRyAHaWk3hs2T3TykU10Ulp1JKPVOZ+ukpVc47.ISOXS275JiqUXBrckFrl8xhrDOm9gVYh8BbGzytC+E32Air6vFxfuClY2g+Yk6varnsWtYgL9sTYtUKjw99zMt2Kjts.oGpL9wD58TuYAIE8VMZwihBilLJJzeP03gJ1GjQ1qEPamjP7yV1ymr0IDWadSK0F+6+0sNj3h1KtZXdWLRd36pK2P95SUxDWUpmE0uejkzx+fOKoqZo6CyyQRk7ziSdGmm+.kzn5UoIg81RTOIZVBI4phDbTHYA0mj42.LatPKQcxl0VqXKf93vgoM9Oj+xGTuHwI5f5ECJMn3VQvV9mS2rRdYbHMqhz3pCHojEvpROkjeIUjHI6HMMkTGmlfBckizGWRiT3cj+fdQjkMhEC08hxcjjuW1Lkje+Shn4KthBRW5vnuBed9mume4mOL5gTQftpcO+7OpW7fxSMxOH+DhLUdUuSN92rW2G7j8O9vc26jWuCg+5hCBh9UGFclWnJssZZGOYeiMeg2yk1c1j.+AD5iRxGFEMYuB7Su2zNxTakughtgiisT10Lj1gqskEpXkfAOVlk3g7443IseggGyEGO1ltUwSGSsZvCBwvOHF9AsX3AsH34teF.Bx0znJfPZ0RP1LDjMCAYKT.Afgr5XVEPtZt0wPLZbHFMNjH03tK.BxViyBRywpNBxhgfrXHHKQhGPVP5UwiiiYc3gwCmEiGNKA5gaWH5aWfebLqy.BwX.gXLfPhz.ZaHdDr04.DBYTGA4xPPtLDjqPAD.FRWupKNGMWm5XHFKHDiEDRjVPaCgfrs31SUqVKHGFBxggfbDIdf3w1h2iPm5vChAOHF7fDId1ARLOZcphGxe0wOcX3mNL7SGQhGH7iCWHBN50Y+XxvOlL7ioi.cHz8y.QPUAjUmN0skJhgfPLDDpiPAz0wdpV10EUpIydPlL6AYZKPMttP7vYx4gS2QuNBhYKHDyVPHWQhG.7iigSE7f5TqGaSFENSFENSQpvsKHKHcMNKH25rfLYHHSFBxTjDztf7H3vGjcsw7nw3xViwkslHwCnjf3S6FUaHOL3AwfGjHwydfhIkaKHMqZ4GCF9wfgeLDIdf3v1gygcGsZKi.CdPL3AYHPGB6CpLBFUcHXaZVaLoL0EwhotHVHgBHPtr4YHqZ2BpAEhynDPlWFfbtb.sc2tYXhsGXEiSiqzHcbcAVLNwfIPIOvo3Y4h.VPtlfI2EESfJJmsc0LHbz06.rnbBBTfRivkmofVXNgn8Aq3bb6K0w1.Xw4DClfr2jAe4ELsAVPKgn7AqnV7YH4Vq67lTTKAAJPLEWTdDSJfE1RHZefJtEewF5XnAr3VhASf1ihmmp8LVZRAtDBl1w35HB1Nt.KxkXvDDdBwkEnE3BcIDmDfJ1ksAOnrc.VrKAAJHLkMGnbqM.olTvKgn8AonWjjnpVSEaGDvhdIFLAJlOtLNbb6.rvWBQ4CTwurL3puuoiKvSvTPfBDSweLlZF.qnmPz9185nnDNVPqpmXvDjX9rLaR7QMoxdBASPptGxkyfBY6Br5dhASfh4Cwenl5.qvmPbR.pJe1ZVbmjdsmKSSpxmf.EDKJc9JHUejrMvKApDTVWFntykCpiiI.hCVo8AySga0LozcQc.5oPX3Bh2hKTGIMCKfdKDGttF9pEZnUe17MviQSv0W.AWf7ZXoWMUQcGSndMDHvfvXnp6aYnqC8LBDll39fBvkmvpuXYM3bBDGtfrmLWQ.MzpUQrImUfvTDgcdAc3HLacneIdEHv.cNo1bLltEvyLPXZhPN2.Kqp0uP2xvD34FHNbA56c.hiuzfd1ABSQD34GXyQXt1.O+.ABrEmwHwXTcOLMsZAVSNCAgoIB4bDr5vYgYifdNBhCWfh4PiyByE5WVVggKPmm.mdntskCvySPb3BzNXb7ktqFvyTPXNNf8knUupAlVGCWfmqf.AFju4O5Vb4MW62Evlb1BBSSDzWpVatJRYna.77EDGt.8CvgySuiMB3YLHLEQXeIaQ7A+ZA8WJk.AFDKLDeTh09iBsIm0f3p3FjXNrM49VQS+wgx76n9lY+Np+YJ2MH5odAk+ZpiBS77CyeC97KxGVc93pyufq5sl0+55+slE+6InUZ1a6fuk2Oqq7N8qO1l9Ce+mbAZZ5++Uxv24dkL7l3UGvahmwXuAwQOYP16eGpQ1MS6gf6vTmfqpbDss57W5OJJZapIMlXb8jACnK2+Rx5S8yw.vbLALGDf4XAXN1.liCf43dkyg5Wa6YIQiyLEIczaur2nDxy2jQdYo+KPMeIr.�
-
@d-healey said in Switching sample maps with radio buttons.:
Yep, that is much,.....much neater :)
Thanks !EDIT: is it safe to have a loop in the Oninit of the midi scriptprocessor ?
Also, what is the exec for in this.
velocity.setAttribute(exec("velocity").button+index, value);
-
is it safe to have a loop in the Oninit of the midi scriptprocessor ?
Yes, the
init
callback is not real time so we're safe there.Also, what is the exec for in this.
My secret sauce :D It executes strings as if they are code. I posted a video about this on Patreon a few weeks ago.