Like a drumpad
-
Yes, the onControl callback is fired for every control and you have to branch it to implement each specific behaviour either using a switch statement or a large if...else structure (which is far more inefficient though).
-
ok, in OnControl i did:
{ case Button1: { // Button press if(value) // Play a C4 and store the event id for the note off b1EventId = Synth.playNote(48, 127); else // Use the event id to kill the note when you release the button Synth.noteOffByEventId(b1EventId); break; } case Button2: { // Button press if(value) // Play a C4 and store the event id for the note off b1EventId = Synth.playNote(52, 127); else // Use the event id to kill the note when you release the button Synth.noteOffByEventId(b1EventId); break; } }
it works !
but i kept just your: reg b1EventId = -1; in OnInit (without array)
you wrote that we must create array ... (?)
-
ok,
for Chris (and other users) i did a simple project with 3 buttons. Notes are 48,50 and 52 (C1, D1 and E1)
you must change it in the OnNoteOn, OnnoteOff and OnControl to your desired note ;)HiseSnippet 1638.3oc4Y0raabCDdks2zJknflhbnG5AhfBTY.GE8icRPMBhrjsSERThpkqQukPuKWIVsKo.IW4nDDf7H0GgdrON4Mnc3xUZWIqJa4jZm1t9h3PNy7MejbFR51BtCQJ4BqLW+vQCHVYtgcmQLUuF8vTlUycsxj0dWQXvw7WaUez.rTRbsxjY0mn6NS10rh99viqi8wLGRhHKqi3TGxynATUhzWU6oTe+8wtjCoAoF8l0Z5vYM397P.JqZWxZ.1oOtK44X8vVw1ZHkbhzJSI6pUJJ5W932rSQ8W8hS9nOcXwF+3ne5IES8Y4DJDDl5HPcqL1Y9S3Ki8dtTEWzQgUDvlqUm6NpSO9ILiqOhJoG6SzMJa0AvjQ79beWcvq+sUidTe21iYOoEX61Ib4pFt711sntzIxS3zuJpCThFoo1LqrH3U9BBuLof2ZF3cK6NNB5.UROZrcc6lLEQ3ggYyzvxLVqU9ib1M3vHXphA39j8EPiIZT39kJsAZqRkVe674z+cu6g5.wBAo5QPjgfVHpKh6E0tKgQDPP5hXbEA4wEQhiZvYEymSP5hNt7dZ0Z5hdD5tk2N1n+rjfvHOpefTA3Bo3HYeJCzmJQGGpTbV9bvRJoBMDKP0ijTFLwXr2knZvCFvYPiB2It+6ngMX8VPfgnJT.O.5FKFgjbvzX.7dnQ7Pjf3SvRSTEvCkjMzC+DXsMRRXt.zLAgmGJ.nVXgb9bw9nnj.NjJaM112YCjRDRlw0LN6tCHBIUpgah+AuvYeuB3NPHdHvcPTOPP.qJQXv0NXeePJmAcPUTrOUhUTMcLE.z51j0NRQ.AdXeII0j1EheqbF7akKA9sxUM+V4r42Y4spmAuU8Rf2pdUyaUWDu4ExbzCFT+4P.7BVg0y8VMrNTudTmGRFEylUlntbjKjubLqLvGOBB8VM2sYT7mOGB9ndEZY3.MoqM6yg5bDQg0QO5QnMe35lgo+Rsy4HreHofgXxlLhjesXytUoSY1JyZ1KfUqbJqV8TfM26xMKM54EwieLLwjE1eZYhKtYWHUDa1Y3B8dOAGVdJhniY5UeRk41QrZEXQteCXCM3B83jmPUN8hkCvIKnZVG89xX56G.YYeaz9JijncJxIqKMVBFDLf1lEuM1LZWj7zESmtromWR3mtzYzo5Jp2InYrBa9vMPkq7fwLLAnkD8hy+OkWfB.80oQl3oS5QXmJmy3JCisjwqLyZs5ihgSgI.K8L7wBBt+1.w7t7SSWUt5oqsJ8uG5p5mAzUkOuoq2o2ICmCd5CZesy2AscLUpSMPNqITR6ECHwsSNJd44bTbq3R8I+B5EJopnD8A0WcR4e.QpnCpey3CpalMsnt5akEmJw50StE06aWazjF0H0Ng5p5ouzy6g18Hzt8T5VeqUjmWBmTIkSP+ZJmf9D5jpobRsgobh0hcxouWCb6JtanOVM8UtzWYMtCH+8T2sQe+EljpFk9JsKw8vJM26gM2I+yIbukcacMj4i2UlCdgUN+Si23a0l2dOOOhiJArqYu+ubQuB6ECJ21.ku1tiB1WGPYc6fCF.EviexhwstTexB3Pq9braG5aRMreuV8PftDSK82pE4pcfynylxWw.+.x.BVAy9I57p90N3fmH3gClUqO73n0JGJvNvUz5ltiWvH.sqRGiMDbozCBmHaIS2U6PQWMWkH4.HCsPNsL3zVvTOiAY00aBy.hLntEdPzS0L66q7Emu7pf5swfUSMx5ztoLsVxzahSMzIg0gXv1odMm47VHW6J3oZ9zmh3iOi1pmO3dFulT1wXrCUOUsGaHrM.jXRisKwCG5qlHMMHawY7A83Lpyzq4TBZ2tDQZnO23YGkBVxmH410NvbZgDQeWsmQYDrXpsRKGUT97SEKZ55arMvEoSif9uQgnU+eegnEQc2LtLDB7tP8Y977MripGfzE5tpf5A7PET.qEFR..GFzFpzzApt5PRWuYEcMLS6R51Z.0gvbKM948i6r7jhSPmkG2okyXSAwV7u2Eqv.lHLckinyW4Ck87SujVB0v0PBptYIilTCzUjVSybfrN3gDSFFCd9aKT2h5zlCjIrORmzwd6KmfN.6H3uzw7dE5P+Kij.HfE8+WIqcKcaTYqn6FZlrBf5duzwQuq5tvz070nxRqQ0kViMWZM1Zo039KsFOXo03gKPC8gL1ITwCL4Xsr9K.wd6JR```
-
Thanks staiff. I've updated your example to include a few fixes and best practices:
- used the array method for storing the event IDs (your script will behave weird when pressing more than one note / button at once).
- using the switch statement in the note callbacks for improved efficiency. Try to use
switch
as much as possible especially in the high performance callbacks. - removed some comments that were duplicated for no reason.
HiseSnippet 1750.3oc4Y81aSbCF+RaOTSfhFS7h8BdgEZSKUTJ4Os.ipIRaZKJZDHpoTMIDBbuyWhWuXGY6zRXBI9RruG6iv9Hw2fsGe9tDeooo8.Ff1NIPwO1+7yO+6w2ie70VBtGQJ4BmbWd+g8IN4tha6gLU25cwTlSiscxk2cawfdGxesyVC6ikRhuStby+Hc24xufSzy6e3V3PLyiL1jiyAbpG4wzdT0Xqup1uPCC2E6S1m1yZzqUqgGmUmGxG.TYd2RN8wdGg6PdBVOr4bcNlRNQ5jqja0JqJNp7guYyUm34Vg0Wc0ffz1c7FHDDl5..tSN2b+M7jycGephKZqvJBLmKrE2eX6t7SXFWe.UROLjnaT1oMvIi4c4g95Eu1pS8tzP+VIpmzAl6Vi0x4MZ40caR8oirOVS+lnNPiQXKs4laVzq74SuRSid4rn2BF5cM21dBZe03dzb6xtMXJhH.CQSaZYFqyb+wht04vHXpU6gOhrq.ZLBQw6VpzJn0KUZ4MVpvREtycPsgUBAo5RPjiALHpOhGD0tCgQDvRzGw3JBJfKhLG0fyVcoBvNBoBcLVXf1vWh9Yzyuc4UPl+8hDe7LIAgQAzvdREPRjhijGQYvzQknCGnTbl8rsUjkxvjkrP5PT0485yYPih2Lt+apWCvr2DVkHpB0i2C5FKFhjbXpwvZI.MjO.IHgDrzrH6wGHIqnG9IvFcjjv7ApYVSAAndfNC6pWpPrOVUR.GRkMSl6atBRIFPlv0LN618IBIUpo6X+Cdgy9QEHkfQ7wfTBq59BBLqRDFbsGNLDrxYPGTEEGRkXEUKGoHfFaCVqHf.CBvgRhIB9gquUNG8sRj9F+6YoCoFxYyzI8e0yw+Us7e0y2+Umk+CFv7zxJHzOAB0OkUb4B+9REPvCHe6qkI86JxnsHFAC0gi7g2oS1D0ODODD4lM1tQz1ECZ4ITkW2hMMaazqC87+DHeLQTb4kMCJ1S5GO89v0t+CPVg2CvgCHEMqFzgBB9nMl.v5kR.T4BBnRBfpmAfnw+1BusvjRSPvWeZSbTLChyrQLM0IMhoIO5MqBN79pPqPExmtW84kSsiXXEYQK7Uf2..2oGmkFY5Cjj7.7Q7LVGd.XNukNoenAEMyiNFYFWTdEY5gEGDaYhO0WKJmi7zY7SmaOH3zyRRF9mW5Ev6sQkfrpNrqCoEW69qfJW4dKuQZbDPQmJedlbB+CIrNRmNdDGNoKgcpb2IYxlbFMrgY18t0vcLTsnEksYVZ7Vg6nPtVqsD+JyV7G4hxSQUVuzYpJWLdW9ESh8bXa0D1lO+YvyJSimU9H4Ykyhm4yqY3a0uP.E0jtpoKcwpZxybBg0.4rFvQkOsOIt8rqqxI9HF3WOqw1XEVWpUrMXbvg1JplN41lbLTNrovKnjZh7HEuOLqiNWxI2hpnduZbYYFM2g5qAD+tpyqGUy76ZUa3nF0H0Ng5q5pKw8cP6tDZmtJcqa.srNWSaJGXx9bLssnYISbohEWP+lEWPe94RUKtT6XKt37IgKmtzYn.dt+fPrJcU85aEE2AjbNU4y5RjYRpZn8slxPo9ktv2D4hR2q41Re3vz46bSguvV6+s4a7EmVxcmf.hmZLYWvc2e8C8VReXT4FFp7stsUP1ldTVm13d8gSmiuUbRqOq2JF1XFxw9souwZX+UssF.xkHs0+rVjq1DtQBKkuhI9dj9DrBh9iw7pips2dORvGzeRTu+gQ6U1W.2JGTB6NdJi.xtxdMVWvkx.X4DMWR6tZMPzQqUisrGjmWHSaCJhCB8LFbFQxKlQSUo8wQwzevsxZSb6+ieJ7eA2R+yepdTaCjxYGRkrCoZ1grV1grd1gb2rC4dYBhY2TSb+nuRyjeZkEuXmBCvaggns0H2h1wZp0VRmb0Zni1tEQbqOjy47IQtzWfuXym9z3e7m5L+EitmyGUJeBGaS0gscXGCop.KliZ1lDfGDpFY0ljM4Ld+tbF0KcdAkf1oCQXS8otd1TofzRisb8Z6Ypperouu1ioLBVjJcW1jhxWboXVgquy0PWjNUO5+FEKL++6KVXVR2UiKU.AdWn9JONeE2ny.P5hQ9RQ083CTPQFMwPB.ntdWnZf1PEPdD6ZBlSWmgocojB0aSX9kR9J+wcVNo.BcmkS5zwKYpf0V7uit8Vt4IL8oHQ0.GBklDZukVB0YooDbRGbSAcPsm9zoEzJGXqMb4ASFFCeNyhoZR8ZwAwDdORmzwciOOK5dXOA+kdlOXjdouXjEfArn+LK4capaiJ6DcudSvpGbt2K87zuUcaHbMcDUxLhpYFwZYFw5YFwcyLh6kYD2eFHzEYr4.EumIGqiy+.7xebm.
-
Thanks Christoph, Staiff working well now!
-
@staiff Hello, the garbled code shown here, can you please write a regular code? Because I also encountered the same problem, I refer to your code, button 1 and button 2 can trigger different sound samples, but button 3, button 4, button 5, trigger the same sound sample, how can Each button triggers a different sound sample?
Also, why do I add my own image to the button to display only half of the image? How can I display the full image? -
@Christoph-Hart Hello, the garbled code shown here, can you please write a regular code? Because I also encountered the same problem, I refer to your code, button 1 and button 2 can trigger different sound samples, but button 3, button 4, button 5, trigger the same sound sample, how can Each button triggers a different sound sample?
Also, why do I add my own image to the button to display only half of the image? How can I display the full image? -
@lixiaolong Everything seems to work fine for me using the hise snippet provided above.
-
@Dalart Hello, thank you very much! Are you willing to share the code with me for reference? Only button 1 and button 2 can trigger different sound samples, and the sound samples of button 1 or button 2 are triggered from button 3.
-
@lixiaolong Here ya go, I used @Christoph-Hart 's HISE snippet above and just added a few samples to it so you can see it working correctly. Hope this helps, just paying it forward for the help I've gotten from this forum :)
Download to zipped project:
https://we.tl/t-ETkKHotFBJ -
@Dalart Thank you so much! You are amazing! :thumbs_up: :thumbs_up:
-
This post is deleted!