How do you Tempo Sync ADSR?
-
@d-healey I have read the link & opened the snippet but I just don't understand it. I know very little about scripting & I have been building most of the plug-in without it.
Again though, if the knobs are synced to the DAW, what happens when the user moves the knobs manually?
I'm not sure I understand what you mean by this question. I intend for the whole plug-in to be tempo synced to the DAW. If the User moves the knobs manually I want the tempo of the Attack, Decay & Release to change in beats, not ms?
-
@Delamere said in How do you Tempo Sync ADSR?:
I'm not sure I understand what you mean by this question. I intend for the whole plug-in to be tempo synced to the DAW. If the User moves the knobs manually I want the tempo of the Attack, Decay & Release to change in beats, not ms?
Ah I get it now, I was misunderstanding the user interaction.
@Delamere said in How do you Tempo Sync ADSR?:
I know very little about scripting & I have been building most of the plug-in without it.
The transport handler provides a callback that will tell your script when the tempo of the DAW has changed.
TransportHandler.setOnTempoChange(var sync, var f)
In that callback function you can use the tempo, combined with the value of the knob on the UI (1/4, 1/8, etc.) to calculate the number of milliseconds the attack and release should be.
You can use that calculated value to set the attack and release knobs of the envelopes.
This is probably a bit more complicated than beginner level scripting so I recommend you start with something simpler - my scripting 101 video on YouTube might be a good starting point for you depending on where you are at currently.
-
@d-healey Ok thank you for the reply.
I designed the plugins, how I want them to be etc, before joining HISE or learning anything about scripting. The idea is to create Sample Based Instruments from my own instruments that I have recorded & mixed through analog hardware that would have a tempo synced Attack, Decay & Release.
Whenever using other instrument plug-ins I always prefer to use the ones that have this option, like Omnisphere etc. I find having to calculate the ms with a reverb calculator very time consuming and was hoping it would just be simple to change the ADSR from ms to beats.
I don't really have the time at the minute to learn all about Scripting in Hise, what I have already learnt is from previously watching your video you have mentioned on YouTube. Most of what I need to do in order to complete the plugins is possible without scripting, it's just a few things like the Tempo Synced ADSR etc. So I may need to leave it in ms for now & come back to Tempo Syncing at a later date when I have time to learn scripting properly. Either that or it seems to be possible in Scriptnode which looks similar to MAX which I'm familiar with, so I will also look into that.
Thanks.
-
I have tried to Tempo Sync the AHDSR using Scriptnode, Does anyone know the reason this isn't working?
-
@Delamere You've made an effect, you need to make a Script Envelope Modulator.
You should also tell us what you mean when you say "this isn't working", in what way is it not working?
-
@d-healey I did try making it as a Script Envelope Modulator but it comes up with this..
You should also tell us what you mean when you say "this isn't working", in what way is it not working?
So if the Script Envelope Modulator is my Envelope & in Scriptnode there are 4 separate Tempo Syncs, one being sent to the Attack, Hold, Decay & Release of the AHDSR Envelope & a control for each one that changes them in beats. Then when I play a MIDI note, the AHDSR shows that it's triggering, but there's no sound coming out?
Thanks.
-
@Delamere Can you post a minimal snippet that demonstrates the issue? I haven't used script envelopes much but I can take a look.
-
This post is deleted! -
@d-healey okay thanks I really appreciate it.
HiseSnippet 1945.3oc6ZsraiTDEsZmTIjLYxvHgPBIVXgPnAznH+HILHVDO40PD3LVSmIvtnJcWNtT5tJS2kShAgDKYGrkcHwWAq.IVwN9Dxmv7G.2pejt53tcZ6DOAjR7lTu78bO2G081sa4Irn99BOjw760uKEYr.1rOW1YiNDFGsylHiEwMI9RpW4voVueWhuO0FYXL0yTSXL2znf+d0ZqSbHbKZxTHz9BlE8KXtLYxrsZ74LGmsI1z8XtZ6d4F6XI3aHbD8.7LEtBpKw5XxQzcIpsUBi9LheGjwGgqUqs0SpT4I0quREBotMgrbUZ8Og1d01VqT4SpXe3JUfOqhLlYKalT3YJIRpOxX50E18M6HNkGJf8Y9rCcnpAUQlfjCmdagisREUyh1nCywtULQ4iPF3VIz1Tgz1agaxrYWLeB88lAKTN4D5DnQozvapTvqpN7pnAuLfjgFjlNDRODaZ4w5JSVQgm6g2gCVy1DvNoCkv8hL9c7FBXCb4Rtjioa6ACt3.OZ0Uq73xebkO7Sa2iaIYBdYAeWgj9b9i9v4+14ma9ua9xWdo1sybMkT7DNNTuLWV4Y3MrC9HdO2CodOt7IDmdzK1Hn8ooTb9TptE2JTo01nfuCmIedWJOO+.TDSo7HhPErUY.4uXD4a5vrodHFvwyh+bt3vpn..m30+AMPE9v0tNGt904vKm5v+xuV570J9gWICI+xc1jHIJO2HVDX1tTOISYzL1jdBj2HzOdN7lT+ikhtAzraWAWw4FKdkD8YIB78azWefKy11g1R3yTNUIq7dMfLccMYeCUOslKQ6apVitwt.6.x5ciDe4s3mPc.MnbSgcOGB3AVERe4AYtffG0NeC7SkRHeFxUXSUwg6QAcAR1ZgjzyjZa3TlsDRygMNCjWGJ6nNR0nZvHaZaROG49YXHKLwTSiX9dxsOwLC9yfzs4RKQKOgIk5Zjx4cu8IkYAmdKR+bYk30ulzx8txvdMkoewnkyWaL044vl87kpKNC0wjwirVFjcpvF+Uzzxe56u8M9ygeA0gR7o4Z9S1w33.LXsBPUJwXQuzEUAdQKnTd85ETEEvARout5eiUOSQg3CwsXRqNYiwRYfQ3BmIAFipB793sZ2lZIS.3z3s+pISIe5hewPweOrIiSCpeOP3ucv3xeI4DZ4mQ4TuPes7Kg+uKZI7cKbI7O2RBheOOB2uqvO0WrI0ksGDh5qO4K8ghNoe8KTVS842PP7xboWs11fRl4YLIxddAtEO0UziKS4FL0v5Ln5X1YvzSpNCltXtICGd+OHvOUiLyFhw2IJwYbdyKPb.XGZZUcf2TvEc6H3LKc+fWPkdriNBtOPScxTGi6P5w3QocDbgIlpCOb+hlMP6RkmJ7NNfsh9efqB4B+.Pd.MhKNvMgKdpii3T0shrHqJvIAy0R3zOlXLJEtCJ3Mv4Tm3.GrQIPxP+26QXNpsAWMCsFY+btIr4fLFFSsO0yO3KdVbkkfOPt1cCt.a1sIV.F52hntq5gXU2VfGF0aIqKb5FJ10sigOMfgtckTiSBgMBSe35FTKPILRQ+shuuU0sQIioz59HzGTMBL+kTPaA7N96qV0h3fhtNE3CkTTaORImQs0Yw9ccfLk4pvgKOn9DevgC8z.8BDLsFBV.KUEKbfupZgTv3sBfA3rtj1NFDIKF0GR4fhNFM.kjyXOh2QToeTCdbpUnKW.WEVfKoisuGpUl8HgzrOprpwifszjwuTEMfXImco4p0vLixyLOldZHkjJZOvtEpsCTrzloJhZFb0pfe8S6IEtP.cPUFHMzM6fn6UqMH5pLhnaAbS.CLvAADx.e+alYcduZsq.XYQa.HFIfMGdKNAxeYWTTgPiNpZ7iWlt9ke9m+sgfpEwujqbto1AUmLfDxFZrFHsvn6qEFUcrhiVHnw0agnnnNluKF5tXn+6DCUarhgte3i43VHHJ9ArbWTzcQQ+2IJp9XEE8f3mVzsPbTxSp5tHo6hjtEhjz85Po5TKzaMU.0ahiambovUypQsvUthfH7P6n7A3c64pgrHXG1kMx7T0C0LIbqj9DoC+7uz1GbUU+7Nzyheaaaxf9LI8WuW61gAhomQgOtM8LEV9G3usbOjZaSsCNtRwRGEO2HGE+C+YwL7M1s4eEX3unmvBZxe+FiRjbQCX.VNWWy6GgvufBtNiWn7Dh6h5DnfL2x4ybSH7EWjUw.3e3ccA3HaZSdETwQn3JKsRN724q85l+Rtb85ahmvAGazy6jAf44qkGS9Z3dt6gSd1uEj9Fma5FYbMC9Yf8YDfTFUnkNKMdzA8nVqUdYoyoXqKcIUNETl5QYdotyBKsCM40rrygdszqzOaoaKEKmju2XZVsaLMahj0NbthoV4zYSrTdMXrxMS+Ml4pdNlq0EhicIAutow5Gs0MxqxepB8p7uweIoi+q0+lAJuPzSx3G0j.2SoJIGZZvDZ3vJ9sy4G2xPz3JwshXR41UhqgOZwppwFQKVMdwWKxvkX4INH5YUnbGeifY.8lGzS0b3lpwkG3GGIB4xrYGXYk9qZfCVabOX8w8fKOtGbkw8fqNtG7iG2C9jq9fpeBCQkTpBYgTcs1JrWQi3mh.Dcf9W.DigtXA
-
@Delamere I've had a play around, I haven't been able to solve it, yet, but I'm going to bed. I don't think you need the split node.
I think you need a sig2mod before the ahdsr node, and the mod2sig after it.
There's still something missing but I don't know what - forum search might help.
HiseSnippet 2003.3oc6Z0zaaajFdnrG6XmD2FfhBTfdPnHXQ5h.CI4OhM5Aq3uRLRjiPni6dZMFSNxZfImQkbjs0tn.8Xus60dq.8WwdZWf8zdq+D7Og7On66vOLGZQJSIKaWTXmKgyGbdded+dDa5Irn99BOjwr60qCEY7HrYOtr8FsILNZmMQFygaP7kTuxgCsduNDeepMxvXhWoFvXlIQA+8w0Vm3P3VzjgPn8ELK5aYtLYxnMq+Fliy1Da5dLWsUuX8crD7MDNht.dl.WA0gXcL4H5tD0xJgQul32FY7mwUVZ0Uqb3JuX0JsVtZUxJqtxxGRpT0dQK5JUI0VsU0WT6vCsrPFSskMSJ7LkDI0GYL45B6dlsEmxCOf8Y9rCcnpGphLgSNb3sEN1JQTMJZi1LG6lwDkOBYfalPaSDRaeFtAylcw3Iz2mFLQ4jcnSfFkRCuIRAup5vqhF7x.RFZPZxPH8DrokGqiLYFEddHdGNnMaQ.8jNTBWKx3ei2P.KfKm2kbLcaO3gK1vyVd4JOu7Kp70eSqtbKISvKK36Jjz2we1WO6ee1Yl86ms7kmpUqLmScJdBGGpWlSqrL7FzFeFuq6gTumW9DhSW5EKDj9zTJNeJUWiaEJzZKTv2gyjuqCkmmc.JhoTVDQnBVpLf7mKh7McX1TODC33owugKNrJJ.vIV8+o5nBu4ZWmMuv0YyKlZy+7uT570J9lWJiS9C6rIQRTVtQrHvrcndRlRoYrI8DHtQnc7L3Mo9GKEcBnY2NBthyMl6JI5yRNvmVum9CtLaaGZSgOSYTkLyWUGhz0wj82n5g0bIZuoZ06DaBrCbVeYzwWdK9ITGPBJ2PX20g.VfUgvWdPjKv4QsxGfeoTBwyPtBapxObOJHKPvVKjjdlTaAmxrksSNw+Z81T1Qs0BftScaZKRWG49YnPKLAUSif9AxcOAME90PX2bomnoukHmEzHmy6b2SNSCNAVjd4xNwyOlnmGdkgCzDpdEidNesQT1mAa10WpRnFJqIOOxRaPzqBaLrjlz9O+g6digYvum5PI9zbMGRVw0wfn+ZJfpYhwjdINpBAilPQB50UnJdfCjSOcZXrU2SQg3SvMYRq1YiwRYfQHwzMAFipV7w3sZ0hZIS.3j3s+K2LkFpe7yEd7ODax3zf57CN7OO34xeK4DZ4WQ4TuPat7K0+WKZo9cJbo9uyRBG+ddDteGgepWrI0ksG3p5qO3G7ghSoe26UZS8w2PP7xbpOt11fPl4dLIxtdAlEuzUzkKSYFLwf5fn5H1Awj2TcPLYwLSFL7t8b7GZ17Ja9Y5P79EQASiikdA5C.9.C0pKDMDbQm1BNyR2l38ToG6nifbDZhVlxabWUOGOLsvfKrqe0A65eQCJncoxSEdGGvVQ+efqB4B+.Pd.MhKNvMgKdoii3TUlRVjFF3jfwZJb5ESLFkBWAErL3bpSrSD1nDbxPO66QXNpkAosg1oreG2DVbPzCiI1m54G7hmFWYd3ePb2cCRp8fsIV.F50jnxe8DrpCMvZi5Mu0EFfCD655wvaPXfKWcpwAjvFggRbcCpOnDFon+lw4fUcnTJ1lD7AmPq2kPqQ0SfgPIEHeDdG+8UyZQbPQIYAlQcdpkOcn3Nc3RkpD4G3qxjmR9+r.4GLZlWaE54vBkv4h5gnbPAAWgLkmDfR7n2i3cDU5G0lFmZEZDDnhBKKkz112C0LyNcPZLlJlW7SvRZv3WpdC3XImcowpU2LihnLOldZH4jx+aSEbBk69JkYyTk3LEtZUvR6kckBWvEKf+PZna59Q2GWqezUYHQ2ivM.Lv53vfCou2+lYVE1GW6J.VVzF.hgBXyf2hSfHJ1EEUHzvip5+iKSW+7O8S+qAfp4vefqLyo1A0Nz2IjMzX0QZNTOVygp5H4Q8nf1NuS8mh578duo68l98i2TsQxa5wgWSwcp6T7Ukbu+z89S+9weZgQxe5Shumm6TOpjaa5dep68oty7olJTx7YGUC5qKs+zbXPu2d9345u2vj8MXeHiRo7bRYuaLdTbHzfr2CeAEWsoEuI14MEy7o33tgmOb194l38U3nK3A1P7mf2sqqFwEg4vqK.Ydp5lZShCURefzwk7uzx6eV0ES3POK9mZbSleGGRu061pUjFK0HJ7wsomovxuA+sk6gTaPlB1tRDSqtmYnCu8i+2h4QTe2F+u.08EsRWPegmVeXBwMNLHebDBeKELhFsXb2PbWTaSEj4VLel6FBew0gVL.9e7tt.bnUsI+Nawdn3JyuTN724qcayeIUcb8Uw2vNGaz06j9f44qkGSdKT.vCwIWhcAouQoDfgFWSgeEneFBHkQoqoKG.RoWCRsmY4.wykU4.wy8GrxARgP7vivgs.87xfkSE5WJAdNcgj5dxuTy8g8Cft4krryubsjqzWW4ckfkShowljUarIYW6LZIeMaoksvLcESzxok33S5VPgkalvZiKU1B4nxVWHN1kD76JNReQeikueiIJz2uwX+WFez+VNFOP48htRF+nFDHOtpkEnoJSHKkU7OCqebKUQOWIN+kIkaWItGmnIqpd1HZxpwSdqbFtDKOwAQW2kxb7AAi.xMOJUbC0yk66KmEgbY1rCTel25up91XsQciKLpabwQciKMpab4QciuXT23JW8FUe2JQkbqbYgPcM2JrWZi3qeB7NP+er6Wt7D
-
@d-healey I just took out the last 'mod2sig' and it seems to work as desired....
@Delamere
check this...HiseSnippet 2003.3oc6ZszaaarEdnrG6XmD2FffBTftP3hhhzf.A8v1MAcgT7qTiV4HD536cUMFSNxZfImQkjx1pO.5xt61scW2zeDcUu.2Uc2cycu61Bzh7On8L7g4PIRYJ4WoE1Zi4Lygy24aNOGoVNBCpqqvAoM+186RQZ2Aq2m60Y0NDFGs4ZHsEvMItdTmhACsR+tDWWpIRSapmIGPatoQ9+8p5qPrHbCZ7PHzNBlA8SX1Lu3Qa03iYVVaPLoayrUV8hM1zPvWUXI5A3YJbYTWhwAj8oaQjKq.F8QD2NHsGhqVsswiKW9w0psTYBolIgrXEZsmPaubaikJ+jxl6sTY3yxHsYV2j4Ibz8HdTWj1zqHL6q2QbDOXC1g4x1yhJenBRG14fg2PXYJUQ4nnU6vrLaEQTtHjFtULsMU.scebSlI6zwiou2zehhwRnRfZERBuoR.uJpvqrB7RARZJPZ5.HcOrtgCqqW7LR7ba7lb3zrMANmTgRvZQZ+DdUAr.tWIaxAzMbfGNUfGr7xkeTwOn76+gs6wM7XBdQAeKgG847G79y+EyO27e07EGbp1sScN4t3HrrnNoNszxvYTB9.dO68nNOp3gDqdzSWHn8IoTb1Tp5ItQfRqrPAeSNy64co7rrCPgLkzhHDUvR87I+EBIecKlI0Aw.NdV7GyE6UA4C3Xq92qAJ2BWcPgKMFBWaPge3XH7hID96e1u7q0yuvKM3N+nFnWt4ZDOhzxMjEAlsK0wiIOzzVidHD2HvNdN7ZT2C7Dc8oY6tBtjy0V3LI5ii2v2sQe0GrYllVzVBWlznJdl+QCHRWWc1mSUCqYSTdSUazMxDXSXudmvsu357CoVfFTrovrmEAr.q.gubfHWfyibk2B+TOOHdFxVXRk9gaSAcAB1Zf7nG6orfiXldch2wOsQGJa+NJAP2rgIsMomk2NoXJkaBppBA80jqeBZF7GAgcyjdBm9JhbpoPNmz85mblEbBLH8yjchl+Bhdt8YFNPQo5mO54j5SntOGVumqmLgZftF+7DqsmTebLFVRQa+1u952XXN7KnVThKMSyg3UbdLHFtlBnZlHLoVhirPvvIjjfZcExhG3.4zWkFtvp6IuP7d3VLOiNoiwBofQHwzkAFCqV7t30a2lZ3ECvowa7utbJMTc6WHX6uMVmwo9046u4uk+yE+mjCoEeFkScBr4xtT++WdK0uatK0+4Fdv1usCg61U3l3EqSsYaCtptpC9RWn3T5m8B4oo53qJHNoN0qpuAnjoJiNwqmiuYwSsE83dILClZTcPTYB6fX5W65f3u.N6IZxY1.L91gAMihYdJh8A6HCopB7lBtnaGAmYnd1+BpmCa+8gbAJpSp5XT2SOBONspfyMwTYzmcm1HBZKp2QBmC7Yqv+G3p.tv0Gj6RC4hcsi4hmZYINRlQjEdpBbh+XsDV8iHFsBAqfBVCbN0JxYAqU.1Yn27sILK4xfzyPaSlOmqCK1OJg1T6Pcb8ewyhKWB9.wW2xO40s1fX.XneKhLO08vxNw.KLpSIiSM5FI1UOGCtofQtb4tFE3AqEDxv11uNfBXjj9aEkqU1IRgHOYvWaJkdTBrFkOAFBEjf7N3Mc2QNqAwBElLEXF49IW9rAp6rAK0SlvdWWYF6D5+880evnojxJTyUEngKD1qPQ+D+mgNkkFfh8h2l3rO0yMrcLN0HvHv+HJn7SRGSWGTqT6nAovXxXaQOAKoIiOPcEv1RNdfwp1POkhkzOfdT.4jv+aMIbBz6gJYYsDkxLCtREvR6o87D1fKlO+gTP2rCitWUeXzUdLQ2cvMALv5ZwfMYn2+ZoVs0qpeF.KMZC.wXAr4vqyIPDEy7hJDZ7QUi+8fz02+ce2ONBTs.9kboYN0zuFgg1gzgFqARwg5tJNTUlHOp632d40p+TXGt23Mci2zqOdSUmHuo6FbcDWqtSQWIxM9S23O85i+TsIxe5MhtOmqUOp3aU5Fepa7ot17olIPybY6WE5qKo+zBX3buSon4Ft2vX4FsOjVgDdNIr20tXN3PnQYuG7Bx+wlR7lHm2DLyahi5FtTvrCyMQxk6nK3Q1P7af2pmsBwEh4fqK.oej7FYiiCUPcfjwkbGX4COq7hIrnGG8UJtFysqEo+J8Z2N7DKwHR7wMoGKwxe.+st8dTSPm7EWphIOtmarCu8M+274QzXql+r+w8osRmSeg2sw3Dh6hvf7tgH7SnfQzjEi6Rh6BaaJmL2hYybWR3KpNz7Av+iy4Efi8Qa72mVjGJtbokxf+No9UM+EW0w4+H9R14X0dNGNDLOodVL4UPA.2FGeI14j9ljR.FabMC9Yv4yX.oTJcMY4.PJ8pPp8TKGHZtgKrNVt+lUNPBDhGeDNtEnmUFrLpPefD3YzERh6Iefl6C5G.c4qYomeoz4QuRdckWWJVFIld3EklU8BSyN2Yzla5e+Kq+++gC9sAbXBxzkOUKiVhi1oqfCrLyDdgYLVKiirUDhCrI9euhSzubuKjemFS826emFuPzyiw2uIAxWKaMAZdRGxFYD80s5F05T3ykixSoS4lki5kIbxJxm0BmrRzjWI6gMwvQra30ZIM6tk+HfdyCS41T9bwg9kvhP1LS1tFFIeUCIX0IUvZSpfKNoBtzjJ3xSpfevjJ3iOaAk+NTBKsV5ZBgzZsdPOyZQWyD3Qf9SDUcmDA
-
@Chazrox @d-healey thanks a lot guys, this works. I’ve just realised there’s an issue in doing this though, the fastest tempo the tempo sync can reach is 1/16T and say for example you were making a pluck, there doesn’t seem to be a way to change the Attack, Hold & Release to be 0ms to turn them off. Any idea if there’s a way?
-
@Delamere I was gonna say that but I figured you had thought it through after all that so I didn't mention that. Thats a pretty crucial aspect. Its possible to script some case switches or something. Not impossible but definitely complicates the script a tad.
-
@Delamere compile with
HISE_USE_EXTENDED_TEMPO_VALUES=1
-
@d-healey Sorry how do I do that? Thanks.
-
@Delamere Have you compiled HISE before?
-
@d-healey I'm not sure, I think so. Do you mean in Projucer? I have searched how to compile in HISE and the steps it's saying to take I have already done, not sure I've done them 100% correct. Do you mean to open, HISE Standalone.jucer? Then if I select Exporters > Xcode (macOS) there is a section to add Extra Preprocessor Definitions? Or am I misunderstanding? Thanks again.
-
@Delamere Yes, it's the Extra Preprocessor Definitions where you need to add it. Then recompile HISE
You also need to add it in your project preferences within HISE.
-
@d-healey when you say "Then recompile HISE" do you mean to do this?
And is this what you mean by adding it in my project preferences?
-
@Delamere yes and yes and you'll also need to add it to the script node extra definitions, also in project preferences