Drum synth: Accurate TR-808 hi-hat model done in scriptnode
-
Here's an accurate model of how the Roladn TR-808 synthesizes its closed hat sound based on the original schematics and frequencies measured from its oscillators and filter response curves.
Use longer decay times for open hat.
HiseSnippet 2627.3oc6as0caiaDlxNPNRaR1MMs80xG5YOxoYk4EcsocaR7kFe5ZGWK2zcexGXRHKdLEgJIjic6I+2xq8mQ+Gz25isC.Hk.0cSGm33JlSjEFfAyfAy2LCDIIWvHAtD2iiB750ivzzxs5AgTGRTDMTKWwitrGQK2CPstLf0YyNXu.sc2RK2iP6giXjPcIoWcYObTDwUKWtU+ibB4JbOMw0+9O7JrONvgLjjl1aodNjevqqGaH0Cdwexy2eGrK4HutJitxK10gFrI0m1GzmUQFZ8vNmgOkrOlOrUPZuFG0QK2SQXaa210p0noqSkplMaiq65bhcypDWqJ1jlDW251tmztsVt7a65wngsXXFIBlzWQcurUG56BjB3sdQdm3S3ML0ZARVRVayNd9tCLNQfoBoXpVUZp94n87b8FPenI6aDcnOjCUiVtUlkJYdETobJpz8jpziQsbB85wF1CWe9JztAvNXaLr2npJxwpk6CnMov.BXk6hOirSHzX.CkpYX7Lc3i0ed69ANLOZfNMXeJi7lfRqW7eTrPw2WTeztZ2dh8wESH02mDNwt4tCgyhwRA86dBI7Y5mi86SFLPX4m1llewroNxUsx.oA6F3wdSORb6cn9tbaE+6iuCnEa1fu8W1cKLCy2ThoAiqGIj4wUmbaQNGfAxsnBnsHQmwn8.fvX6efmC0suOlk1chCzh6.rGo1C4aTAQdrKUAhWAeLiY5isnp3iQG3wb5LYcbkInifk5lPGiQlODsc61DG1PE7dnc9wrBCWbwWHQ7RjkHRpP7O.soOEjr9qwroEB8C+m+4+ZQCg1agCglfweF5pfmx+wJFU9apvl2aw1ulC.91OBLUT9uVpiqgd4q2p0gwHOw202N3bhODxwLktsGMf1qCMvyQ0i5PBKz6zSIgpZ7DWFujwfTva1O77TtjaQbvWNB0jAOjxu9ERJ+.ATMU1eMroLr8O8BwzMjf2KZ0Ohkp1he5CGR7I3nTt5a6PgsDRFM6Wg78yx03gH4hTW.Dux9EeRcieThtJ2QtcqrO.IbK9Rvt90nXG1uHLrOBEik9RvzNyBKVcgJr3it9l8hL9jZ5tOZ6KXgXya46vwpo0mK07PZelWvo6ggbhW.w82ue2VP0SNDPECBH9ffP4VgWrursAuMWgZAmlVz3+BWwcZxamKtSyjNUNmv9D16ngmIRrG+cHetrFCn1v2D4.00wMPQZukDFwc3gz8Fkg+o8Ree561j1smWLTPrjDTOf5eYRddNQ4nRVBurKsOH830AbH5ivd97BygvVvQcbeSPKXvhxN49r6KRpleGrCnGWd.FpgEvg7CKA6YjvxNJ0EMhNObOja4kmaerAwm+jRTklRPc6xsO7y3maUd+bCThhHOBaWn1PojSoX+BEEa3PljdnNEYQEtOB2wMJzJs7+FDItxqxhtmnnGv5bjKR4TixJ+3s.PvJxzLfu4A3PXJgCmCNH7h1S1U0Z8NdfxivgmRXBUWkP7ASCHhC.HJLeXy3k4tt7jtzAaTZCDEum7hRfEG4cb1dnBalYjOqLxmcF4qRF4q5j4alVaAdzmbQxuQvVdQ87wW9p9PBDYQ9onv2uCbIWvyn7clZaCmQyEBgI3l6mno3D.AHGzBBUrmWPhaAOpg1d3KhaW.YZ.W.sVLRuVd+cwQwLJKnBWlUZZXZVCJK9Lx6jt3wCnY8Z0Mq0vrVEqp1V1wQsiq1Okz1hzF22mESKOHQfnlh9glt9gPlPa0RpkESkdNki5k8YztPRfjn5eNr.4QhiwDO2OAYASr3xpYCCKaKqwrFViZM9joqqIqkVQYMMK2fOO1lUqYTqZyQT10P1FYZuqPRovyxwfSq5mGKQgjhemsiq00xwUdx3TK14Y.xOu4e3hen79JzvSxmZviKMiquz3Q5Xj4suBBZXw5CxFoojGMuHOb5rnORjEOj5KxgOwbnwrMuL2yLCZdj3GLHVcKhdKj31gWk4jzY0X3J4BFjKOUZfzwrREfdjFyR+d.Z2n2x60A6mnkP1cEiWAT.83wseOQoJnjALIi3P1WzJfPJBeMDjjxioM0JCkcOIAmv5hJ17JhMUQIiI6PRYktmjrSw+7TfqZl5bpYpSmXN+hh3pLUDmp6JBYu.PakHowgwTCkZksPoVVMaZToZMKK6JMp2nZbzmcBI+s9v4FTSrXTQlFzpdEyFl10FKwhk0LiFYlRigRHpMEiyCDhW+PNnc1Q+LuIh9sHBZgRZrF5fNyIez36xKzLGWZ5bJfBhunFSRMXS5x5y.xK8DrD5cyB8Z1PB8pXBE7XY0XIz6tAzy55B8rVB8tYgd10pIgdUMqVsgg4Rn2cDnm80E5YuD5cyB8.DmD5U2tdMi5UVB8ti.8pbcgdUVB8tggdUh+IOqCvtZF1Kgd2QfdUutPupKgd2rPuFFRnGLM.SFUquD58EFzap+nvoAkQAjKNNpCF5NMn7mIAkp8OYTo5HtV+34EPa5Cy+tCtmWOVctOlgCF89bhNBehuXM0x2ykDd.1g+jO.lEWO5Ndxtf+FaE9XdWQSeCGhNu8H+9UOD0VJ2xPeS49MH35JFHavpI4qYIz0rhnjwPF2GUWNAocSuu3lqMcf6S.QXGG0xrokQSqlJp0SPMK2nI+plYip1FV0sGWAqUotY8Fl0sMpU0rQMgBtJ5OqBDqeUf3qAlwFiF8pQZr3UBjO+3TirjrMLM3FklMaToYcCyXadqtTJqiWvoIh+WxmMilxq50qUogU0Fidagmxfz9XmT6F61BV.sc.Gl6tHAsmRbNAVyJSHTq6NHzl2VQnUtZIgWhPyDB03VOB0NSHT66NHT6J2RQnlKQn+eYNzq8iVx0dBdEkdVWr3IZNauDjeJd9q6hcBoGG+HFwWb2WPA.QAwOVL6waqapcdbvhAuMA7GVlicbROUiwnUVYzNqLVIqLVMqLVKqLVOqL1X9LxeiAiOkM+wzRSauC1VdhvbIPpb4VUiDeXQ4aCI2Wc.E3HrwGEMWNHeF+EMm+Gol7qTOh6Fibb2xcRdCh0VY0UQLBjECNru9uyKfoCtwhWbynuWOhE12goOB27W1xV6u8Od79uYqsKMRmq+7hEJVXiMz2kmYjmpTm0gn+WwmSjCRuCAN8e4x7g01mhY5mRXsv7QWR11KnWe15EK.hoPHg0OLPRBl42Kl5i5PhHCdoPizwgDgPNEL45NPfOnELO.b2WPevqOJ9D54jhEFtdY.llauzO560Om54p2S9BVT5nuU2E1Lh0h1zvRXXuR2oyuMgtniA87s5QxdJynwHZ9lYImNqyGqbvEhz+8Jq1HtsBt1XCNcHLRmxfAry.5RqwEPeQ5OUujU8xFs+MQOMZc8MRZ0D93obROev7eALVyxVUaKIw+.rZ7++9EYkuCOp5TV9CVjhkzDVLfDDyUHr+vJEy8Px8BI8f8pRGH+aqdDmH8dQpiKdj.6aeADaO.GaFgsYltJIPAelN2c0iWekbJRs.48cP7ZCltAoKJ4R6CnK8yS348Ounl1+C75r.8B
As always mucho thanks goes to @d-healey and @aaronventure for pointing me to the right nodes. :)
-
@Morphoice Nice!
Some tips for ScriptNode:
- you don't need midichain when creating a scriptnode synth. all the midi messages are already available in there and will trigger the envelope and similar nodes by default
- given how the ScriptNode synth requires an envelope module, you can dispense with the envelope module, because it's only giving you troubles by applying further multiplication, which does not let you control the release in your example. So can just set a fill 1 for the envelope by adding a scriptnode envelope and a fill node, then manage the voices yourself by adding a voice killer in the env section, and adding a killer node in the network (just make sure it's not inside no_midi - it's best to just drop it at the end)
- this allows you to use the release for shaping and allows you to make use of the decay for held longer notes, and rely on release for shorter notes, letting you play closed and open hats just by varying note length (of course this only gives you either closed or open, ideally you're controlling decay with a controller pedal and can smoothly move between closed and open)
- you can disable the retrigger by calling the method in the synth's script processor
HiseSnippet 2837.3oc6aszbaibDFPRCknr8t1wakWUpJHW1hxwgBOHIHiSV+POhUsqjULUT1bIpFCLTDk.AX.FJSso7g7WHWRsmxuibymRU4ePtlK4rukiI8fA.b.eKRo0NZIcYIgo6dld5Y995FfXHcoDOah8IgdNsaSnRRxKeXfuEILzOPRd8itnMQR91n5W3QatUSrimzdaKI+Qn8wgTRfBuomcQabXHwVRVd4eEqA47qHE84cO9YXWrmEoWSRRG66XQ9BmVNzdsd3S9bGW2cw1jibZIncomrmku2V9t9c.+YYjpTar0Y3SIGfYpsDR543vlRxO.oVtBgXZzv1FaXXWoRkZUqUplFtgZI7qzpTqjdIS8plMjjysisC0OnNESIgRxq7Le6Kp2z+0d7A3XmPmW4RXWnIUGFYdy656ZylhrVk1poiqcZfJDBaHgv1x7v1mf12w1Is8dgu6FIPomEhAP4kx5dKmw8zDcOUA2aHtjrfKsB2ktGptUfSaZOIL+4Vn87fUyFXXcRzU35JI+VzV9fBdzhsvmQ1M.tH0fBUTUenB7iMdTiNdVTGeOEeuC7ojW3UXi0+iqme82rtR+hZzXnxXCSfuqKIXnhYaMBFmgE75z5UjfGpbN1sCIUQX5mMlhFcLUbI2hOqETz2aOOG5KZS7F0FAo3PE7W+l81FSwrEh31.8ZSBnNLWPdax4.LfurjGsMI7Lpea.HLvZFraw2tiKllcKDCnEK.hAYV2XKNdgNzKDAhWY6qlVW7dnCcnVMGtOtzP7QHRcc3iwnw6f1oQChEsmCtBZ2u75A5IN74SFdNZJhIMZ3uMZKWeXjUdNlNJJz29e9G+qokBs8TSglfqeH5xfgFKso1LRal65h1bkoasaBt2TSgd+3V64cZCkJ8uiTh1ATLjv3U53ZyVzdIgF3b5oj.hMidrPCraHYAg52RHTkWRvGWk6i+f38S63cNwEljodbjy9iR1skHVIUd1sc66642toumikH6Q51MwoyPmiyFSAZpCLZimFs2R+AD5q8CNKBSF+2PrhGKBibxSHwwhSZ0KV7TWW+Wukeq1NwqpPLIpsC8cuHIvHuDWCBravyi39zV9cfAUFIuDLxP8kGgcbYpUuSHrQ09Ed0AkiXjkW9XRPXTGuJRsH7OX07.eaPTtcwVfObwgXfuGXMX68gcXjfhVoa5FquKtNxq1crpyF0DRdjrTTzqUKVziUkbTY8IXENuF6JXwdIdtn8BOlI0B6JcLa4jMei5SdHmOkXptJpAvXoIkY5caTK32E4RFzwSrYB93Rh9nzg3.vXnLStCmbEza663E6i81SuOtaesA6doj10c9pL5U+Lxq4tdlM+QSLdGLPWuMoAtiKcf1y3gROy2+rV3nsnyMQUNtvuWLL2CBaQY7Y4JHbJfenfLkHgJboyHAfjz7Rxoc8W03xSUUiWIo9uZpf7J2UFWnaMzNcoAXsKepq2Gto96K27k9cnNdmtOFv.cAdnC5zpNvHYkP+Glv7GesZBWUcf6O5h+K7IVnF6Z4XgZIBmpDW2EAE9+hPK.0xBPgRCjJYvrWroz.4uXMNGYvtLIrFvm6sFxh7b19ATZRolRRyrhPZl0P3l1gA5YyybWTRpuhQhG53mZ5DFWzXSI9wrMFBL7wz+7PpT8WyXoNBGbJgFUBmXCwD+djnBlhtMmdWFWfvd1rrl9oQodISXRxEUMZTAPCZ1cDLSaFsSeFsyXFsqzLZW4ga2Xi1QfAWR2jbva6D11Eewy5.r27hIxzBa81ylzkQm+yzj1Apo0F3OhrlsOIagH4GdgHHFjUrHDjlJ7AZqWQHeBnSTqvGsR0T0zpnkodjHEpYVwTqRUsJkzKanaDSY9TJEacVuZS.Rl+5W+0+sGms1jbvnBCojfOhFsOhPZv0r9+Nw8+WP.vUe06v05ocn9PIdozpuOhB4POGX1EiAmbVi+swS5OFn2eL3aLObUnZNK7Eht3+zz3u7m6yEWEYnNSqS4Q.ANiTVJip8ufoVr76m4edzKItDbHQLB7mxIs1WM4EoK0F0s5DbNQJyDdRAgbSp+6E.5Md2B0qT4LJO3noN+iFiciRlzZKLP8pNNMCjjPtybnVN1NYyb9QQ4yg6ZuXjrgk2L1r45FIywp3KcJrN5XHYsEqrtg4yh71B7+o4uyP8mkiJ68dIL2yi77OYvo+8EJmIQggEC5Y9zVzBJy8FC4UbnRirRJt3gMvIlNsCaNggMScDCL1AjhBhG1Xmw9I4.W1jqxhIWylKM2zBXJMR.i3tMDxXJPlBjgwrPhrg5yFantdsZpkJWQW2nTUypkiIO1Mf7G5.0YmlQ39v..SF1GcyRZU0LpH0etAc8wRlnkwigL9UFQv41QCuxKYXtwSdoccPdMMCzTw4uJ5vlBoTFCs3ksmiqlbB06.E7m44RI.7xVI9Lf7x1AKfdWuPuZU4PuRZPMK55UW.8tY.8zmWnm9Bn20KzynRENzqrV4xUU0V.8tg.8LlWnmwBn20KzCPbbnmogYEUyRKfd2PfdklWnWoEPuqYnWI0XnG.6pnZr.5cCA5UddgdkW.8tdgdUU4POna.iTKat.58+YPuLOf2QCJC8HcOIrIFDmET9c3fRQ4CGUJpwb8ruyi1xE5+8R+JptmXeeBE60+WMI5H7qbilS0ccrIAGhshd+gdZGaG+cc3hfeGGEtJ+hLy98EDddi9d9U2g8JawTsHHaDecAQVcIIxRmMI+4rPcMNFkYjxXMjIuCxtMcsnuerQCbuOLDFwrVZ0zUqoWSvstOpVwp0XepnUsrgptowfNXkRlZlU0LMTqTVqZkHGbYzuVDHZdYf3qBgwp8ydUMKV7RAxmLOUeSICUMUVPoVspkpYppEGyq2x2m1zw6zjg+6x5M0Z7OllUJUUubU897mQnjzUcRsqsuUu7nc7Xvb6ogzdD7bQXM8YBgpeyAgV6CUDZoKWR3EHzYBgp9AOB0XlPnF2bPnFk9.Egps.g9sxbni7tHtLGAhXH9GiBYu0rzSNi+Z3mAq+868lolUqAOMD82Oy9ohXowepH98ucvSEwAucvSEw6d7nOUD2BcTy.RXyLu4cIc+vOYD+t2Jc0bZMFmesF5oVTmyG33Z7tGObm5cOd92KL2GwiuId0yagsB7OI9k8hM4VKpEfOzK9MbZe10JZRm2+pB68d5DKqrc0.FpOqFZLqFVZVMr7rZXkY0PyY0vpS1P1oeM9Alvdg4.Tzg6vu4d4D1QfiQhDee+7yGDauZZKdjtwOUA4kfRSHw+h6I+XwmVwl88jKJ1L4vaJszxKinDnfDLkn7Kb7nJv13nSfT3moDRC5XQU5yZ1QCr9A67kmbvK1dmB8IbiGsd90yu4lJ6wJxgw6oPaRT9s3yIbkTZRBHEKVjoVCWeLU4TBsNlocA90Nds6P2X87vvjOfP6D3waB542D00G0jDRROBigJ3.RzfbJDxUrXGgJZSne.3taT6oG1Q7q7Omrd9dyWJfoYwKki9Lky8crUZyOaIEN5SUrgEiXungePALrVoX07mmzdjfTIepRHWRQpeLhlsXVvp4FLc4JmOT4WJLaCYwJ3ylaxZee1QtCBfMSamGM5BxBUdfRAcyhpM9ogOHbCkMStpF7iGvZ5Qo8eWPWsh5kavah8CHpw9+allY9tLV0QL8SmjQSogLYfQHpufTLDZgXq60b6.RaXspvg7eWuMwJTocnndwZBluSWfa2CGGFgkYphXSfC9PE11UGVox7tHyDjI6v34FzcooKJX62APWJmmXyadz5RRCfe9IiE+zskaJBJ5gw8+.jXoB4M
The point of this envelope setup is to show you that it's all just multiplication, with the added bonus that the envelope modules also do voice management when their value reaches 0, which you have to do yourself from the network if you decide to fill the ENV section and do the envelope stuff in the network.
You need envelope control of the oscillators because of the shaper, so in this particular setup you cannot just dispense with the env node in the network and rely on the module. you would first need to take out the FX (shaper and filters) and put them into an FX network of the synth, as that would then follow after the enveloped oscillators. now your synth network can just be the oscillators, the envelope module can have the envelope and the FX does the shaping and filtering.
It all comes down to the project architecture that you pick. Do you want individual scriptnode synths for each individual sound type? That also allows you to have compartmentalized MIDI processing for that synth only.
Do you want it all in one giant network for easy access to things? Then you do what I did in the snippet, effectively just using the ScriptNode Synth for its polyphonic capabilities. You'll then have to wrap the envelope node into no midi, and either use the midi note's NoteNumber to trigger different parts/drums or create a network parameter which will serve as a gate and trigger that from the script (this approach loses polyphony) or use the event_data node and set these from the script which lets you keep polyphony while retaining full control over the MIDI processing and keeping the whole thing effectively in two places: the large network and its script processor.
So yeah, HISE is incredibly flexible and respectful in how you want to define your workflow and design your project architecture.
- you don't need midichain when creating a scriptnode synth. all the midi messages are already available in there and will trigger the envelope and similar nodes by default
-
@aaronventure I'm must learning scriptnode, it's incredibly powerful so I'll have to work my way through that
Meanwhile I wonder why it wont work if you put the envelope last, as it would be in the original circuits... there seems to be a noise still coming through even though sustain is zero, then again this might explain what you just said
HiseSnippet 2772.3oc6as7baabFGfxKkohcqccl1oOlFzKYnbcovCRBx5z3G5QrZijXLUc8MMq.VJhJP.VfkzTsi6s7GP5sbpm54doGZO0bpSy4bL8UtzKY5L8Vmdx8awB.BvWhjRpNJgviIE991c+dre+99VrbAoGk3XRLOv2wpcaBUPPboZdtFDeeWOAwU1+j1DAwqgpehCs45MwVNBaugf3WBsC1mR7j3jd3Isw99DSAQwkdKFAwbWQH35eeuGhswNFj9jDDdhqkA4ssZYQ6Ss18+QV11agMI6a0JQqKd+sMbcV201sCnOKgjEZiMNFeDYWLqYYPBOB62TP71HrllYixkqT0znXIkpMv5lFGpUsDwTsnFoJwzTWy7vFMDDytooE00qNESI9BhW4gtlmTuo6yb3B3IV9VGZSX2nHTGjLm7Vt1lLSjQUX8lV1lwNJevsgR31Vh61dUzNVlVwz669tQ.Co98HoCTLSZ0aoTpmRR0SNg5MBURLgJcEtJcSTcCOq1z9bX5yqf11AlMafg4ojpBusBhe.ZcWnANzBsvGS1xCtItC4KKKeGI3iUuaiNNFTKWGIWmccoj8bxu5J+hUxsxyWQZPVMZLRdLw34ZaS7FIaVng2j5XdmNsNj3cGotX6Nj3FBleZeJZ79zjS4FbqNQCcc11whtWahy3BDDBcUve8i2dCLEylHBoAsqMwiZwTAwMHcAX.eZIGZCh+wT21.PXn4LHZw0riMllNDhAzBY.9fTyarIGGeK5IIAhmawUSqJdSTMKpQyQqiYFgNBdpKBcLDMdczlMZPLn8Uvqf15oWLPujhOWj34nofLoAh+Zn0scAIK8HLcboP+f+yG9ISaJz1ScJzHb8cPyBFJ6bggRl1butDutVjm0m1Hyak8RbpzaERsuFoLxTp+IjTPjPAeBK+RGaS1j2iITOqiNh3QLYoIy2.a6SVjX8KHIVEyjPGWlqie8v3oMc5RrAiLViCT1uUTzVDaoX9oC61w0wscSWGKijYQhC2RZNizFmuLFno1wnL4zo8m52kPelq2wAXxv+F7UbegefRd.IzWbPq99hGXa69r0ca01JbVE7IAzp4ZeRjiQLCuEDHZvwgX+fVtc.gJhDy.RFVm49XKaVyp2wGBTM2yoNz3fLyhK8Dhmev.uLRt.7OX1bWWSfU1svFfNbRMLj2GxZvh8gHLhWAi3ftIp6ImG4q5chMmI0nj8HQg.uWqVLuGa0xAKuOBqvyqwtClryvqIss+SXbMv1BOgMcxr2fwj6x4lDqoKiZ.YrTDRYdWC0B9t.myvJdTeNEcLSRcTnF1C5LrbStBGcGLZ6X4Dpi8io2A2a.ZPzKkztt0OOU6peLTGJP0SE7GXX7AXngdCRCbGa5PzSogBOz083V3fPzybhprblesPXtC31Bp7ypUP3o.9FI3IEvThycNS.HHbVSxobwu5wklpUOdkoKQ7jevtymURdtqJSx0cUzl8ndXkYuz0KC0T8kkZ9X2NTKmi1ACXfdPdnc6zpNjQxHJ8ueTl+v6kixUUGx8GbyKfqPlJr6ECYpDwbpJbcCD7..64a.nVlCxWXnRICW8hYRCU+hQ7LTAaVJXMjN2eNj444Y6GpQmVoonxLYRTlIGxw8fVvZ7SWn4VITqnFLJcne2mVgiRUiyusM7LVi0ivYOpBcbNSqPylPnWC4F6yFVxdjBIXOJSNU+OMEfEuXS5EUlZCKPuwm7vNPBNd81TTf621wjzikw66oLPo4rIJMmseoYDKHNQYYDpHbe+RxHjBbOyvyxxRDW2Egz.5oq4xGKgQuFfrH0zRJGP.tRIsWEFAEY9kRwpxJJkURsV.VCTUqVUtXoxppZEqnWoT3ljskG4m0APKmDoh2BD.XLrKU8hJUTzJOfBuLRUcPUNkuQIkFmEoTdLNmqEHdoGyR.Hjp6C5hTlj7FbtPYryEuEjqc1DD5zDDGRUqI1OwHKOEyxYmlQNavStMRs7AcntvBS4Hz30u8a8Z9d+q+3e8dBoVtYBj30SfjTlGnX5AXAV7hEKVsBGKVTonZIU0JKvhWdvhu169ouSue0+X5vhpmUrn5Br3EKVTqbYNVrjRoRUjUVfEuDgEeZ0e2et6O7uOcXQsyJVTaAV7hEKBPPNVTWSurrdwEXwKQXwe+29c+z26a9ISGVr3YEKVbAV7BFKVTNDKB3vxxZKvhWhvh6d3Md5e3u72lNrXoyJVrzBr3EKVrhLGKBCCzI4R5KvhWdvhe7+8W9SeieyfOuXpeHtwiR8cH8NvuIFXmFk9U3nzj7GducS2+yzO2ZNz51vnusYjK8lIG6CnXmfgKAJGsO9P6.KptskIwqF1H3WZ7AcLsb2xhyB9NzGbp4DxjLmvlsNjXZRLCjES8S6PS3Cyh761XfsD65rebWVSK.7FY5svdMi40hsln+bdxjMoDLyYFjqhz4CP5n1qhT3jGCH3VfHzBShoTUUtpZ0Dp0sPUKToJ6prRkRZxp5ZCqfkKpqnWQQWStbIkJkCTvkPuSRbo9rf3WFbiUFLYVkzPyyWL+fljlrhLyoTsZkhU0kUB840a45RaZ4bTj3+prQStJ+RWubwJpkpnNf9LlFIbdWiS4bwSLBAkCsoCClaNM4vGSVt.rl5bgPU+7CBs5mUQnEmsZxKPnyEBU9y7HTs4Bgp84GDpVwOihPUVfP+BYMzw9LDyxgkLDheUDtoo+f+dU2.EctMKDvdDOiQbGOEbNZhJ3WlcllRXOQVcvoARn9yXGvt8wdGQnAm5ljDBOyhNjfy5q+.MeXty5dQLCO2gXtQumACFKjKHowbrkAJU0KqqTthR4hpkzT0BOcZOfRgGtp+w.8Eu3E+52+8+v6kNDBP4y0S7d8vw+sIPnvL7fuQmINgWFNkrnG4ZalzkbvwM9mZ2ePWh5D1pmKVMbYzFDC7IIUwipn8Ql2ev81Qan5KS0VfjCUuiOMQx7wc7fYCQoWN9fbnGSrII1nlfXWcMsO5dm5DEZVhcWuiW2Tq1pzo5Dlqb4uBp+AU9huxQ5sOaRyufv5e9jiSjd1qfblOB4++3ns1Ba34dfA+U.gYbWMfBrJJmvSd4Nr6kTD5NnmjcdLOvvH8PMTGUm2NpMucr371wRyaGKOucTed6XkSuir2ntvhOrCaLDjWaSdoYwn0TAUjDHgUs4u+ArX0XJNjdg6EoXF3AZHgew0jWK4dbt1.62YglQubXBYVZIDk.Kq.PiRugkCUBBiCdCG7eSIepWGCpz.8l8pGUe2Me5A6t2Fale.lqd2UxsRt0VSZa1RUXqgRh1jH8SvcI7FI0j3QJTn.qYMrcwTI.PWGyZcd98VNs6PWckbfXx4Qnc7b3jfQ94AC89MI9j3WQJeIrGIPHGAtbIC1qnAsILN.b2Nfd7KSE9P2tjUx02do.ll4uj1+Mk55ZYJ0le10yu+qKYBSFgZQCWu7XXtRxn42Ohd.iXNutjOmSApaHhlMYl2n4pr1xabNeoePBq0m4qfq0ViQeG1qzC3.aFSm6M5A77ktsTdU8BxM9t921eUo0htqJ7wsYjta732CZqRA0RM3jXe.dM1+e9zX4awxpNFyO1HCLoQXLfDBFKOX9glOr28I21izFlqxWi+c81DCeo19IaWXKgtuYOH2tCNzMBSyTojj.E7NRrvUK1Rb4CQJCjwqVnsACWb4h7ltc.zkT2n9776thfvP3muyDwO8ZYGifBVJ8+y18NEV
-
@aaronventure discarding the envelope in scriptnode altogether and having one in the synth solves the issues
HiseSnippet 2467.3oc6a07baabEGTRKsoprSbUldocRPujgx0kBevOqSSrsDUrZijXLUUcOotBXoHp.wxBrjlrcbuk+.R+enm6kdH8T8oNs+AzS8qjyY5L8VmbJ8sXAHWPQJQQakwJlviI4912tuO12u29VH.ROFwylXeXfmS61DlhRpEq4SsHAATekTKue+1DkTqfp22i0bilXGOks2TI0MQ6fCXDeUAoGzuMNHfXqjJ0huOmPpLKoDd8eeuGfcwdVjgjTTNf5XQ9.mVNrgTqcueriq6VXax9Nsj3N+811h5sA0k1AzmEQZJswVmfOlrKly1BHkGhCZpj51HroocihEKWw1JeA8JMvkrsNxrRAhsQdSREhscIS6iZzPIU5p1NLpecFlQBTRszCn18q2j9DOg.NvIv4HWBugtRcPxBxaQcs4lHmpxFMcbsG3nB.2FRxssnvs8FncbrcFPen660C6Pc3HjcfoVHo5sXB0SWV8zjTuwnRojTokDpzsP0s7cZyF1CWe9Fns8fUyFXXcRVUD7pj5YnMn.CdrbsvmP1xGZLX.YKpocGU3i0taiNdVLGpmJ0aWJirmW10V9Wublke5xpi1UiFisOtX7ottD+w1MOzv+rFXVuNsNh3eG0tX2NjALBleReJZx9T4kbKgUKwH0aaOG1dsIdSJPPIxUA+5mr8lXFluPDQC3qMwm4vUgTaR5Bv.wxRFzljfSXz1.P3TqYPzB0tiKlkLDhCzh5.7AIV23KNdANr9x.wWXwUSqJdKTMGlUywqiKLFcD7TWF5XDZ7FnpMZPrXCUvkPa83KGnmr3yDKdAZJLSZn3WAsgKEjr5CwrIkB8Y+u+5mMsoPaO0oPiw02AcQvPomILjbZy85R765PdxPZiMuU5qvoRWMh5PMReroT+yH0vHgbADd9kNt17EuGQX9NGeLwmXySSlsA1MfLOw5qHIVSDk8ZBc7Zn6+vMq+nnDpg+VspWWhKXvIir1g5Qa2j54XImnXPDkrFOVy39LFTY0Fc76lHSylDKbeYp+7O4M+aQLKymfxGP.USl7CAn9v1em6ENcCH7od2qdm.VhRF+YO6QDWBNHQFrpVTXIgLitc8y1silxPiafDFoZX90KbbwRSWbwYWm4zFFeyXcUrh7xsxtBJLr3pfe80PQArWIbr2DEgktJ3ZOy5EW7Ul5EOKWz0QU6w7w5uDVsejpY7Uop8HZGli2w6fg835A4w2sSq5PQtVDPs77Ht7BRRs.uzAQaMdatRTm3YG13KgqnN04sSE0odbmRUcrKg8Dp+IgaTG8aX+YQMCPI76EXAUvwcJAJGP7C3Avv12Z4f+obeWW5S1f1psSTncnkFRsF0se791bhBthMg62h1Ajdjc7Pbv9XGW94mfzPPwR164UGXN7zA73wcC2jL8VXKPO5WCCG0.vU7xsf0IheNKo5bFQmGttw81hauxoXhO+wmjP3JA0sE2+vuULoVj2uvAITDtjxf7nG1BpRWIgZspjZEyv3zggCeZENRR3WCEz1ENkzD8HhtkCZEhMdfSqPSKIzUPzA9rSKYeRNotGmImX7mmBviWbI8hqHdSGPuw8ePGH4knnxDTf1a6YS5wyl88gr00v9fHYjnCdE2B98NNdGvK1GjJOHVYGbuAsyCsqyHsq67qBaqCs4FdZTXUZC3yDnuIoAtiKKwboHInqMTPoQFIkTFf.bkPZuALC5ZhK87Uzz0KB02cBbpxPGsfACiJUzxWnnggY9xkJWH51bskO4W1APK8iUwUAA.FC+xnTd8x5lEGQguFxvXTUNguQOgFmFoWbBNmUBEu5i3I.TRL7QcQ5mk7FcsPehqEuOje8hIHz4IHAjpVSd44IX77VkSOMyb5vydMVs79cXzVf8DhPiiNV52627i+O+o+46oHc.PEEIj3MjPR5yBTL4DLGKd4hEqTVfEyqm2nfgQ44XwqNXw25i97Or2u8SmNrnwyKVzXNV7xEKZVrn.KVPuPgxZ5ywhWgvhOtxe3uz8G8umNrn4yKVzbNV7xEKBPPAVrjYohZkxOGKdEBK9Iu4G84e729ylNrX9mWrX94XwKYrXdsHrHfCKpYNGKdEBKt6Qu9i+i+i+0zgEK77hEKLGKd4hEKqIvhvz.CRqPo4XwqNXw+9W7a9EuyuazyKJGSeFnz.ORuCCZhgtShR+lBTpb+m9d6lb7mGHUVKB+Szya0G5Tbys2vEl8ssico2RdtOjg8BmNITNZe7QtgVTcWGaheMrE+uo.3krcna4H5B9NxGbt4DVPNmP0VGQrsI1gxhq9IcnR9vznftMF4VhcCTCgbyA8M1zaQi5BlWaf0D+yYIS1YkfYFyfbcTIwDjLp85HcA4I.BVEDgYTRL8JFZULpHoVqhpjqbE9UQ8xEL0LJYdZErX9R5kJqWxTqXA8xECUvEQenLtrzEAweMvMVdzjYkSBMewh4G0jL0z03NkJUJmuRIM8Hed8VTJqoi2wwh+awmMsJhqRkJlurQgxFinOSfIkWz6wo+BwSLFAkAU0iCysmlb3SHKWHVyXlPnFe8AgV4kUDZ9K1dxyQnyDBU6kdDp4LgPM+5CB0L+KoHT84HzWI2Cchmg3TUuuBZ6fC38ZgcikRpEd9mfGPomzBG9rBMaOrxeU7jM0Ba4SOzR7.dyMtqGRA.QdQO3M6vaqpqzM9LawO2c7GGmCsrRNUmZfFy5.Mm0AleVGXgYcfEm0AVZVGX4yef7WIhnCcyeVyTT1oVUwIBSECofyBqPhNrn3cRfGqNfBbD1nihlZAX+LRzWBM4sjOh65ibb2bMie59UVXwEQLBrKFb1e02wwioBgwgu4JAuqZ.yuiEScjQyewBpua0Ge3t6sY0riz4Z2c4LKmY80U2luyHeqRUVSh5OE2kHXRsIAN6etbb1Z3RwL0iIr5XN2YEsc7Z2gs1xY.wjwmv536IHAy7SCm58aRBHCdAHBTw9jPgbL3xUsfDePKXd.3taH8AupD3incIKmYn8x.LM2eot+6p1k5Xq1V7nKlc+2V0FVLhzhFT+rXXsR0p4OHldXGC54sUCD8jiQiPz7EyrVMWiyqf4LAp+PIqMf6qfq0WmSGRizLG3.aNftvazC5KP81pYMJkSqw2K31AqotdbqJvG2lS5tCl+d.u54LJzPPh+A303++oSikuEOq5DL+AFYnIMFiAjP3b4CqOrrQidH419j1vZU1Zhuq2lXEn1NPluHNggWsGja2CG4FgkYlpLIPAuiJOb0gWekXJRXf79pEYavzMX6hr1zN.5Rsa7Xd5cWVQ4T3mu6Yhe50xc.BJ7N37+Aq2uoS.
then again, to be absolutely accurate with the original circuit there is two envelopes, a short initial burst and the longer one that decays
-
@aaronventure I tried splitting the oscillators signal to create a short initial burst but the simple_ar seems not to receive any midi trigger. how to I make it work? You said it would receive midi without the midi-chain.. . it doesn't even work within a midi-chain though
HiseSnippet 2604.3oc6a80baiaDmz1zwx0I4xkL80xmtQNMUl+S7OMs2YGa4Kd5YGcQtoWexCLIjEGSQpRB4H0NYl9coeQxq8iQ+Fz25ioKHHoHkk0+h8cJIhYhrvhEXWrK9sK.DAtGA66fcNKx2sSGLgiie05gA13nnfPN9MOseGLG+VBM56SZseKjqO2QGvw+.giQQDbnHizK52AEEgc334W86oD3KsFW7y+86dAxC4aiGPhi6MAt13evssKY.0569mb87ND4fO0scNt018H6.+8C7B5B5ypBRbcP1Wht.eBhx1JBbuDE0hi+oBHUUml55lVN1ZUksZhLbrOW0pJ1QQSEagcbLTcNuYSN90q43RBBaPPDbDzouHvoeiVAu0mIf23F4dtGlVPlqAHYFYt8a454jYbh.SkPNS0pLS0SDN10wMi9.S1WEWg3fVj2nwux3TI4YPk3yoRqwToGIzvNzsCYPMT84WIbjO3Aah.eSdUgwKG+6E1O.XvmToM5R7ggPgrFTVWR5YhvGa+7lc8sItA9hA9mDPvuxu71a9O1rzluaSwgqpYyQVGULgAdd3vQVMc5P33ZXY+tsOGG9LwqPdcwYLBC+h1z0mNapMaTmiw.+i7cIupCNo7gAdNTaE86W2CvkX1fu8mO5.DAQcJIz.95fCItT0g+.7U.Lf4hJIb.N5RRPG.HbM+GLyIvoqGhTb5DEnkTAXOJ3CoNJ+HWR+7.wYXNlzXmiMsp3iDp6RraMZcbkQnifk5tPGSPl2WnVylXax.EbMgC+o4EFN8huTp3YHq3HoI1mWhHuJxFh6QMbQx2Tbz2++92+moMNZmoNNZJP+YByBnZ8aq.Uq+KPryam40+BB8JDd+gLc7dB68xCZ75joTweWrl+UXOHVSwoTGG3GzoUfuqc9YQuFSBcu3BbXdMdjCi8HDH269cCupvzvCv1n9WiJi4qS4Gvfpkm7KgvoCJqtab2kQP7esaitQjBKp3u99Wi8vnnAx6edzt0rC.WBdNM6yPh9wM039BrAoXL3almWr1zMuXBIflRc8Ao5JyirXqraIDOs3SA65CERlv9Igg8ABIXoOELsicEEq9EyJJFmIZCgZ8HgH4Ev0ClnZJ+bpZuNnKw0+hiQPNtdPb7S51tArBHaLnV99XOnyE3WgtpcVYIZYpRz.1VbbgO.OIUJSKymTobZk4Vv+IXxaCBuLNQcx2g7yr0LTbsdbuAGFQm.Coukp.+iaOOuf2teP6NtISsiGowTqG30OMuM+JLdRG.60NnKH6jQArW3SQtdT1ffPvNVbdkeCf43ENRmMdRbJx0ODYCZQ+5HXon.phtmGvKgCqXmaUNCowC7ZTaMa62WiIZ+mtHSlgDT21TqCcq57qRqmYdXJBURkD7CNqMr.OtBp0iyoVoLLJcXPymVguZNgeOgnNdvBnuQKBq5QI3zlNshc8bhcKgfLq10kcHtRtpGkrKz9Io.zYLd3doaF8.WPuQ8eQWH3EaQkEn.kOx2A2iFM62AQqqiBAQRvIqZOsD78ic8eCc6AfToSh4NF0KqrFTtAA2og6eOtrLTlNvWWHdUZY7oBzO.2D00iTnu3xIn6MPPqKnTTRk.BvSAo8DnGjkXOxZVRxx5v56tD+VlglwfhhkkjVUcEEUMSCypIGJxgg3+VW.uzOUEeLH.XvPeTLzjMkU0GRgumfhxvpbAaibAMdcAY8av3rUr3EeMM..WglOrIRdbxaXeg7M5K9dH95rIHgIIHFnpdK5xyKv3j7xSUOud7duFoVlTf5a0z0LUsTqVUS2zPyxJNEU5IuvwkCGd+b3H44AHVrCVhDuaQhVlLjnlrlRUEEykHwEXj3ig1VU1vzvRW0T2P1zn5zADU9XAhJKAh2s.QUccFPrpb0plRxKAhKx.wuhlRzzzR1xRY5QgpernP0knv6VTH.9XnPCUCcICsknvE9zgpZ5xU0.upL3fmRfn1GKPTaIP7NFHpIk.DAPntj5Rf3hNPTyTQQQ1RQ0TwTdZAhU+XAhUWBDuaAhlRLfHzMPijpZrDHt.CD+ZZFQEIYCX+7RiJgX94yiAgF4i6cVTKDTcQD5WyPn4qezPz7bLIHZd8H92imVpOTI6rr22C5+ibRGiOJeeeFA4G2c4v3BmhN2KdL0vy0AGVGYS+AD31qqiavgtrpf+lXElXDgUxGQnV6ywNNXmXYQU+hlzbVwMXGls77bP3YscZOI7UJb.7reygI7SRL5CfmU27bt+qKDcUygFs2WnIyNWApajRLoUyXT7LuW5Wmm31iKb5bFubCACVGTDitgfLi7MD0hl+TMIjMjBUxRwJmZ8XAqJlVzGcYyppRJFpWWA00LjMLkMTkzqJapGqfqJ7i4iBYLKw2tGXFMGNzsYw.QyTDtIGjdngjpjrD0nXYYpYYHImXyazNHfzx0+hTw+qo8ljE6wvPGVHRUSkgzmafIta6L5x2JVhQHnRB07og0bllLV2Pb8XrlxbgPU97AgZsnhP0lsUfrDgNWHToEdDp5bgPU+7AgppsfhPkWhP+hLG5MtqoqsaksDNJ5MzZsQdoRgekhaKHdI1xyyxyyZ67rs.AZThYMzBqQe1DYQVZYjkufirnrHm6eKgHWJL5Lzvu2LOQ.mb6CpjwRgW4yz2fsbcvDfrBiMJ1CouUm4.ooCf32HRtFuk9JCeJJ7BLINHSdBI2MKeb70eIZH1udsy5wyNCGFC+Zi9XTG1slg+mwCQcjPfMRtC.iC9AX0wbJu2opWozWN8T8qzZe3CeW6lMe9tSTGuUNl0asCCM8hgvtlLSt+G7JtmMy8iOu9Mebp2cc8z1AuHH3x1n32c546dS9ywa5cajcXvY1rqHGcvsQLEH6nexqh7wzxhxbWkNeM8dHPeAkOy1tXWcsFpLuMTcdan171vpyaC0m2FZLuMzbxMjd+B2qKInM6cuG.f0qwhSymlqDxbwgSBgyt6jz4pYT7w8RNsdddXcpz6lN8OLM42j+WAXmg9EApzJ8RGysxpqJPvPNFHJj3ev0mHBSiiulmQeqXDIrqMQbnVSuZlMNo1Oc1Iu5fZkGpxse9lk1rzN6HdDMuEMgpHoEV7uftByXRrENDWoREJaM8BPDQHXSCDk6xrxt9c5R1dyRfXJEhIcC8Yjfd9cwc8osvQ3rqPZjHJDGKjK.StnMjXGJA8C.28homcYSQmGbEdyRCFuD.SSsWhm9shWE35H1gcUNJe52H5.NiDsnYPXYD3qDsa86SoGWQVMeiXDqlJjfDDM0YV1t01TdYLWJR7OlazFQsUvyN6PoCgQZUALfsxnyrF8f5hDepXYEiJRM+sQOMZawcRKYAe7TJomm0+8.dkqnTsIiD8CvpQ++6llQ9gznp2vvOaPFOjFwfAjPbeEB9GR4jVOfbmPbGvWUtN6uM5fsiD6DkmuDNglWqGDa2GkXFA2LQLOIPAelHc5pKc8Nrtnv.jVW8jwFzcYoKJ6DzEPWhWk1l287M439+..NZCx
-
@Morphoice yup, keep in mind that you're now applying the envelope on the signal that already went through the shaper and the sound is different than if the envelope controlled signal went through the shaper.
If you have the circuit schematics of the original, you can also try using Faust's wdmodels library.
-
@Morphoice Haha zoom out
You need to move your shaper and filters out of the no_midi node
-
@aaronventure damn it, pardon my terrible eyesight. I could have sworn it’s outside, I looked a hundred times
-
@aaronventure said in Drum synth: Accurate TR-808 hi-hat model done in scriptnode:
If you have the circuit schematics of the original, you can also try using Faust's wdmodels library.
that would probably be the best Idea to model the filter accurately, sadly my faust/wdmodeling skills are still developing and for now not good enough.
Also probably a simple filter node tweaked correctly is less cpu intensive. not sure about that, though. Once I figure out how to model a low and high pass correctly using wave digital filters, I'll give it a try.
-
@Morphoice have you checked the examples?
-
@aaronventure I'm at it right now. It's not easy to wrap your head around though
-
@Morphoice nothing worth learning ever is
-
@aaronventure i derived this LP from an example
but I can't seem to get it resonatingimport("stdfaust.lib"); secondorder(C0, R1, R2, C1, C2, Vin) = wd.buildtree(tree) with{ //declare components vin(i) = wd.u_voltage(i, Vin); r1(i) = wd.resistor(i, R1); c0(i) = wd.capacitor(i, C0); c1(i) = wd.capacitor(i, C1); r2(i) = wd.resistor(i, R2); c2(i) = wd.capacitor_Vout(i, C2); //form connection tree tree = vin : wd.parallel : (c0, (wd.series : (r1, (wd.parallel : (c1, (wd.series : (r2, c2))))))); }; process = no.noise : secondorder (1.5*10^-9,2700,68000,1.0*10^-9,1.0*10^-9) <:_,_;
-
@Morphoice ah, this is where we part ways on the topic - I never got into using it beyond trying out the examples, and I'm not much into virtual analog modeling.
-
@aaronventure anyhow, here's the revised circuit with more of a snappy initial click
HiseSnippet 2670.3oc6b0scaiaDlzNP1xaxljM6o2Vd0djSSkIHo3OMsaii+YiOcsiaja51q7AlDxhGSQpRB4X2dReY5KRtsOA8112fdWurc.AoDorr9KwIN6J5SjDlA.yfYv2fAjDgdAiF5Q8NNIzuaWJSRRd4CiiboIIQwRxqczkcoRx2E07xPV6sZS7Ck1aaI4uDsOIgQiUDjd9kcIIITOIY4k+NNA4p2QJ85+7aeNIfD5RGPRR50Q9tzu2uiOa.0Ce1uyOHXWhG8H+NEpswy1yMJbqnfndf9rLRUpKw8LxozCH7psDR5Ejj1RxOFQz08ZYZZ634Zz.6zhX44dhtSCpmlgN0g54Yo6cRqVRxU1wymEE2jQXzDnSedj2kMaG8lPg.dseh+IATdArTSPxBxRa01OvquwIALUnBlpkElpuFsuumee5CLYOHkgxfVTznIuz3TI7LnRxETo6HToGhZ5F62kMfCWe9BzdgfGrEA7MEUEQckjeGZqHnBgr5cHmQ2MFJzuA0LUUehB7w5OsUuPWleTnRT3AQL5KCqs9Z+00pt1aWSYXVsZMRdbwDGEDPiGIa9zg3w0vZg85bBM9IJmSB5Q6WQX3W1lVY5rothQcgJFEtWnO6kcoYk2MJviaq3+9pd.oLyF7q+vdaSXDtSIiFTutzXlOWcj2ldN.CDtnpnsoImwh5B.gq3+fYNQd8BHrxSm3.sLFf8njOj6nBS7YWVDHNCywTG6broUEeH5Pela6QqiKMBcDrT2D5XFx7dncZ0h5xFnf2As6OLuvvoW7UyEu.YkFIMy97BB6kItPbOtgKAecwQe2+8e7um13ncm53n4.8mflEPUkOTApp7IH14Gl40eBgdkBueegNtBZyWrcyWkMkJ82J6DdNM.h0TdJ09QgQcaGE56VbVzqnrX+SOkFWTiG4vXSFCV6cqdwmWZZ31TWxkkn9O+6+qrJWrdBJeOETshjeADN8JcWeBc+aOqYuDVojJ9Su6Uz.JIozz6cbi.WBcNM6yvB8iapw8PhAoRJ3almWbmoadwDV.ZJ00uLWWEdja2J6cQoSK9bvtdeT1D1OKLreIJCK84focrYTr7OYxnXblnUQ6bAKlfuElOXlpo8wT0dUTOle3o6Sf03t.hiePuNMgLfbofZEFRCfNGIuDOqcQYUdYtRzD1VbZg+GbkwDyKKmwDmyrPB+GPYuIJ9rzEpy9Mr9rHmgx45I8ZZbBeBLr7sZc3OoMCBhdyVQc55mM0NcjlR8vnfKyW2lSTTq7gvlch5AROab.6F9Hhe.OCaHLDrmEuWF1DpbZpi74iGjtHYkcItfdb4gDHYT.Ww20C3mnw0cKjmyP57.+F2ZK1.9UpDu+ySyTXJA0sC29v2rt7xb9bCzxYJBWRUQgQG2ARwSpjZ8nBpUdEFkNLn4SqvkKH7UPIcCfTnuVKhf8nDbdSmVwVofXuKJpuU6pxNlVu.6QI6RseRJ.eFS.8h7sitsOn2jKedOH7kHsxRTfx6E5QufGO6WBwqOjDChjQyxaOuD7688CeMeCBfT4Sik1mbQ+xFP4lLZ2l9+kzxXnLefWAklmV+5oCz2l1hzKfUpujJHnUFHnJHsxRpJP.tJIsuF5Arp3Ba3nhwlPFdmQeivPKpflliipQCSMMcCaK6FY2Vjcio+4d.d4xbU7Qf.fAC+Ryx.ai0MGRgWAooMrJWx1fKowUPXyqw3b2Twq7JdH.oRMeXSDdbxaXeA9Z8EeGDgc1DDZRBR.pNrMOA8RUbRd4opmqjt6qQpkYE39VCSCacG8FMLLssLbbRWjJ+duHIU.GduB3H77.DK2AKPh2rHQGaARz.an0PSydAR7VLR7QPaafsrsbL0sMsv1VMlNfn16KPTaAP7lEHpaZJ.hMvMZXqhW.DuMCDe.eIQaaGrii1ziB0eeQg5KPg2rnP.7IPgV5VlpVFKPg25WNT2vD2v.7pXvAOk.Qi2WfnwBf3MLPzPMCHBfPSU8E.wa6.QCaMMMriltslMdZAhMdeAhMV.DuYAh1pBfHzMPiTaXs.HdKFH9U7UD0TwVv94UG0BhEmOOkbReF47RWBHJgiZujWy45RBxEr7Rkg3IgzKNNoMAZWYH9WIf3E4OZLdwZLIL9XU2pnsBf9eOubc8gE66iYjvztqPPBzQjSBRMJMC78nwGRb4OCBoM644GsqufE7clwZhgTVpXHkc5bB0yi5kJKt5W1xWvJtp3tgimm6jd+1Ns2J8kJcG7EOzhI7LMJ9Xmxu+8BNyyyrnBJ47VCMVuGpkvJWG3MxwYVqlwEA566x+47D1ebQimyvsqhrDcPYH9pHrf70Dziu7qdVDeXEXUGMmBp0iPN0sc3WlX6F5pZV5WUAMMrvV1XKcUyFXayTEbYzuuXPLqYI73JfYzd3H+1kiiMSAHmbL9gFR5pXUtQwww1vwREmYya1IJh01O7zbw+y38lpi3xxxDxiogs1P5y0TIoOzIDf+fXIFgfph1IjGTyaZVv6ZRbKEqoMWHTse7fPctshPMlsDXVfPmKDp5sdDp9bgP0+wCBU23VJBEu.g9Sx0P+Pt0pUEoXim9jyKtofr1NOaJ.wiRLqgVDMZwZ+2rQVFkDVDm4lNNi1s4LAVAQZ6kLz8d4AHZ14Xntf6neG7D7l.nEM13X2m+hgV.llqzouRkRMeC+sN9HR7oTVZXlhDxNdWgzzSPSxPU+pbm06u6LbyXjqN56C6vtxpoQ.liaCK1wxzBaZiMMzZnqom8Z8lcTOFClC.ny0cPL+7THdS5moDS9nM9qfROAKiczqo9oR6VQbvIJ7FTgEOnJUcrlilgtyUtA45pykupZ94dXRAea7owRTM+jNLitpYZhp3XPUZvNICvbEy8KPCN1V2760a3m8v0JnAmLi9QKe+yl7F7Y.77nny5PRei8muSq6GiyWPGhabzwthClIevsZJEXQvvrW+884kUvRmmga5e5W3uT7G65VtqtRC0l2FpOuMzXdaXi4sglyaCsl2FZO4FxOUqa1iE0QbhO.7yg6HVZWNOkJY4kknYq5KNwt74p8oDRuH6A7HKCatg++HB7uDZxOu3CNZigdHR0ameT2kVZ4kQLJjVB.xU909gLEXZb5gKN4aURXw8bYJC0Z9ABt4A67CGevK2dmZCwb8mtV00ptwFJ6wS0gmClBqMU4ORNmJpjRaZLsd857p0JHhvTfXEMI7ZWST1OraO15qUEDS0XJqWbnfDzyuMsqOpMMg1+fKmnPhooB4Tvjq3B4BBkf9Af6Aoz6eDmImDcNcspCFuL.SysWJG8sJmG46ozUb.hpcz2n3ANiLsnUTbMB3qTba+qxomxnOmuQIQvoNKJCQycl0bauNuthJWMQ42TXzlvsUv0FavoCgQZWGLfs6SWXMt.3kn7XkZZV0Ua8KRdbx5JajWxA93wbROse+eATWbcsFsDj3e.VM9+d6zLx2kGU8ZF98GjoCoQLX.Ij1Wwf+gUKq0CH2Ml1E7U0NT7cytT2DktIEqWVMgluyEPr8PRlYDbyLkhj.E7IJ7oq97TjEcQoAHm2gYiMn65ubQMund.5R477171mtljz+GfHQj7w
i can't figure out why the notes stop if the key is released early and the decay is not played out correctly in this snippet, it works in my drum synth