Scriptnode Synths + Polyphonic Modulation
-
I made a post the other day but it got messy.
Many thanks for @aaronventure for getting me started on the subject of Hise Events / Midi.My question:
I have a scriptnode synth attached to an Audiowaveform via an external audio slot.
What is the best way to communicate from the main interface script, with my custom sampler node?
I'm interested in both reading the external data (from the main ui) + set things in the external Audio File slot data.
But I also interested in communicating more complex midi(ish) data to the synth. Such as polyphonic pitch information. I am particularly interested in a polyphonic speed control. Such that my scriptnode synth can have per voice continuous pitch control, similar to mpe. I understand the concept of events, but not how I can read them from inside my C++ node.In kontakt we have the Poly variables which take care of this aspect and allow the programming of per voice modulation. My plan is to intercept and ignore all midi events, recreating my own, therefore I will be able to keep track of id and purpose more easily.
But my problem thus far has simply been figuring out communication with the node.
Any advice or guidance is very welcome, this is not my area of expertise, and I feel that going in blind will result in some very silly hamfisted solutions
Many thanks. -
-
Womp womp.
Apologies for the complex questions.Regarding the sampler, I have managed to create something pretty robust and efficient. But my limited External Data and Midi knowledge are keeping me from finishing it off.
-
@griffinboy Aight buddy, here you go.
HiseSnippet 3321.3oc4ZrzaabbdojW4HVmf7vGZQuLUHHlpgggj9YpigkkrjsZhjUMkUZfgfwncGRNP6NC6N6JJFCep8P+AzdH.8Pu1K8dO0fdpGZAJZtlKs+BRuWf1uuYlc4thTLjpNuPkEj4NO9d+d4NQROlRIibJUd2A8XNktfaqAh3tq0kxENadWmRuj6VTULKhXVZ0A8nJEy2oTo4uGtPoEOmi9mO+1qRCnBO1vkbb1Sx8XuOOjGOb0cV483AAaP8Y6xCyc5qrxldRwZx.YBPOy6V2oG06PZG11T7Xy45beppqSoen6Uu9UYWm07fCt1Utl+6b8KyZWucyqdcpGk8N2nca+5MuZyqU+x2vozBq6yikQshowLE.zUk9CZ0U1WXPvdbE+f.F9PCmV.lMK6rVWdf+NoBGkiSI2cFJpl2Hptn6Vbed15CEYurdCxvajWnUZtIQRMlARpTNR5bFR5Uba4Ew6EObGjd9NtaJ.MXaJnaxSJly5L2u5EcWSBmPDWKjdHaiH3graT4Z0qWk.+Y4aVt7a+1jsfSnHwcYDgLlQjhp1OztcURLnPipR.0XbjLH.rZ7nAAG.pQEbJwaEwnA3YP.saWth.+JEACHIJV6j.BuMoO6RQLRGoPPwUQLA+cHXhkDZ61LuXMMvSIyxZy1Z9r1rn0RObk3nDlktePRDoSf7.Z.gcDvpv0ow.1.PKHTOTbQZGICITwf9cYQZZbUlGEIh6uYq0I9RlRboXhOSAb2fTncDMhSAMFxIjMtJv7g83ArpDd7kTDFUM.o4NLMAGR5KiNjK5P.bH.P4EPiX9EQZRLosLhvNtmLReqADUWYR.brf9zAJxArg2rMOREW1RKqq4raQd5yLL8Zf.GzMHGFEQGnAqBL9PBPq039pZD7jODjxQGoE2DE32w.jX3c+ABZH2yBgHlh+Q30AMWhPvP4FH..UHPtLgheDhN+TBFnT5QRtOxhw.4G.hGULn2EjTaAhrGKhFykBUYM8WCorM8U.e738uIo3h0hLDZkFMugUy9AfoHCPPnLBoefYkBlUICf1vnJo0xxCEIHC..vvSH0n.Rj.wcHgfSLHUL6TETedcI84wcIWtIQEHiUkQYXENPb0uIg+t.Tf+6MeykK+zxKVfReLeeCGL55YLwkaB7vyzbw8Asep4HH0R0RHMYcm.KsfDvLCI.q91X2lp8Wybt8vikyH3VS0Oohx9PrYqiGW6sgTRp3LhE.1S9DeZLsLPVpXKk7PYhVndKx5hNbAqFXueu76rEU.Qxipr7rQSZ+gHI02yjDB7u4BNZrXQO38YjKP3WQGV9ylQKZUd9sp7zxDxRb+k9QjkF+kWpJdBZTGEblGuD5SCFUh3kpZuwR6qOQL0bh8K+rgVi9RLLQeJFjQRB4PjEv+1PlDOMpTkGOdqoXwqKvvI+jDVBKe.rVbH2ZgvifYRhBk5nSaVzHsMBXDiKl4ikF+rJIfggkv37DUhwgwFiAOL3GSQ6P6hjGsI5nCNy8A7LAZdCYjGCBA60ERdHSTqeLyKAUSYb.WD.5BR6DgGtNDNHF7s1arPrRl7V6VcJn0.gckqkdXMvp73rKuOnrVZYHBhwCSmvIC+Z6bllL0V2QCzYuzwJ0.FLyyfDHwxzdSP4Q88eeN7IAvBsoAJHIvRFu.9GwHZxCLfRIggbYUCz0Ladm3grB5OUAsXWFCpnO8MyL4lVmoSpBPaMzs9tr3DAqxQXsZamDlmZBjfkCwDsq7hKVdQ.cfnw6PcrbLhlp7h1HhfMWg.cKWdQ.B3Mfz5Ta9FEoW.cfNARMVMLRK6XNlQ.SZv04WeqFUACPNF3kgzHB3zRL.3A.qBWcWLP.yuB+woj89KSdi2fj6YxO3V.r.pPSFHcnLIgIwfiMCSji7scuXa4H8vXyh3TOHktFIgDROnvJLzzoo.DSUP.HPWC.HEhDVKS3BgJySkUI0SEvnD8YkgeA6Sa3LCI0.j2oUjA1TumPdPkkrasjF.X0Xom.vDTuGjoKlyTPwag+3VOX67mGUjKExEPfp2pATMG9D8X3I8COC8PPyHiYOFxB4q7QqHGjKrpRlU5jIPWWJV2.DniJRzQP7j8FngQlkFTllzjKMMWVZ.oxohdErBD3R6H1mAFWTPcDmlNDjBf+HV6WFD5xBvr6CCn.JlAxD8Mhwhq.yRTKSO.zH.nJOwHNVo03hTIE1Mstli2u8DNS4TxXZ3TcEPPYgqFphVF0gVnmV7ZkShVjzz5ICFHMKXxz7zMYZBl.MqOKFMMmNiloPf1bRBzlyh.swzKPaNYAZybBz7D01PLlGHpnQN3RNxVsaO18VKqYmwtM1iazjtXEQR3AXWSCYc7fPOcEaTbgoqQQOifI2AkhMgRld.Tct44MjA9XCf3mGssRGqjEZvbNKEBGMV2d4KYaurU.TtbjCG.xhtVqTGM4m0M+m7OeWmY35MGy0ezlXrSrQWKIMzfEV6trifHpl1dWz8tL0gwxdZZ1ZM3T5BSAUeLzZeIDiCR+fJd.JUWvE8gbB499ArcjJcQm4l1weDrx60Bxqiq8zK96u2+3i9E2NTOPjE9M+GyOfCC9nucXHpj1s4GqmjQadPHzEIu2lgPAENkdU2GgsZwZSSBhIJnCQGvm4Pl+tR84clI1pogs9yeymsFcDFur6VR+DnMihSTAm0jcCjfyOFCbTEPCbwCxOKpYXLK0m3XVlVR7Ub2gG60c7z3bigFQGruDnQ6vodQ200EoLj.Om6F+zy5jnldzuXJ5sFmXMSZz+8rqnKkRuLSwgtfaLgQJ92l1QJ1apGonclWkp5NKghOwXDO2zEJtnMatyOlg4svWCyWr9yo4K9Z1UGRQMF6bF+0myM2b+zy6xTEodJG5R7Cjc3dlIR8AlYg.6BkApmLWgA9YqLmb.VbGN1vrFtga.saCEUhMYHF+sryt7sgVJxOaQrtVSSH5DMBlAhJYhv21rHGm3ooK79PkNHRVamGo6cTWclo68SLLJc0+YCiprw9GqQokdLYnw6CYPbyNc.YhOVsgo+QnDERYnw7NosfAOcFG6xoTnyV3765vpw6H.JVWvUZK6lt81AZWiD2WZl.jY5S5FinglQ.exwakBQfTPDss1kpxx6+35XqqFNG6ATykmxgqRxswdLnKTHzYkkW9lSMxZ7bAYky203ATctLcw23m8wA9hVtGBYTMgLJOol.mZwjtCu7yAn1vtSdNffFmJBLSi7TK7cR1JmxL.NUpvNb.iFRXvxpCz2cSnqdDjO6qoBscedUn8jJt9LUc62BJWpPViESowV7vdAr0EGAdWvJHM9p.WoKKLc0h4L1RJj85JEbu749yBRlm1GKCcGr2zCGtxEW4gr.F30NboWek2GBYRi.4D6LJKl82P2X0WeWWC4RPaXx2dKyc9+uoL2IIhdA20ONNh13afZOKo07qRRKqRDv0EaKERAzBxZ5omYjfEfQbKMGFaz7b8zNVawD95GvdNsa1.etjcyFoalKr51rX7Mrp89re1oz4MMfLbVtOQkuAj6DDH6ul901ZLoAghdscjACRCBYlr.OHkruSHTTXbJseepZWJO.OVqDEjAv+AhVvg08tTZ98XQJMfOua8Zv+.ehs0QcVXCpGHkGrCEZSBbtvjJfxhEUyKSoc5Dddsn4KIwoeVDeoMBYju.+DpGn.zHdo4yk9wD3BeBLIlCIgK3toZObWnVYm8LSpA3aDl3wm2xL3QunqtPwmfuhvmDwfVx.jWfK+9tQ1pWF4jigiFK7lElwYXrpc0y8WYS5JXdFssVWroO9Ek.j+GAWDnjcnQ.9gOgabdWCSObUDHyk8Dv6awE6UXDVHloGeh0puRqbyWI0Yq0gr9FQTg7Z5u5FsBjwaJ7YG6LB3clc7C3Zlv+K3hA..6+QQdNcdd4VAU8q4ZmVesgGXTUb9qOAM69teftsKv3oWRrtuGOcKI52OONjerPbUUy6527cB.ZdyBay29B8aPncD6mk.tlCHgP8G7dAbTBNYOfEb0kIXECWvcM.yM0oBmECrK3JUdPydXT4hVXWvcCfpHODAyILyJkSMe9QUye3mLpZ9CGiYFDy7TUyo12inkuSRrLDek+Y96VUdANYjfXQrZ41dTMdgaOSNyXP3.1wo0NeWtBaua0DnJ.ivpvJnxS66XSTrNz..9ljzWOM4QAg8BytO0KOi9zEMkFt2Wf67UVYDT+K+zSh5e6G+w+gQQ8J+7v+pMbxFo194w+Fe5e40e5JNS1N6yu8+6gyJXkOB7KZr8kevsEf1jhmcEwzh5I6vsSWrYjurhoOIbuft6vgn9e+69W+8s9Se1sK3H3rpTdXHUWI0YqW0uJp6Kj5EIehMGC599B5UffFBcblEc2Belbx2NE7SH2m+DOuhfZjK17rdwKeVu3UNqW7pm0Kdsy5Eu9Y8h23K9h3DtswCvTnfc+NqahZWxLgUc1Dm+KvIT5za
Basically what I talked about in the last thread, made flesh.
Yeah, this is easily days worth of fun for a HISE/HISEScript newbie.
Check the note callbacks in the synth script.
This is an example of continuous per-event modulation, as requested here https://forum.hise.audio/topic/9645/the-missing-piece-of-the-hise-vi-puzzle-continuous-per-event-modulation?_=1727930006185 and recently bugfixed to be able to take 0 value.
@Christoph-Hart feel free to add this to the snippet collection if there isn't one already covering this
-
-
Incredible.
You literally did it for me, I was not expecting that!
Thank you very much indeed, reading through this code was a real treat. So many useful things here that I didn't realise we had access to in Hise. -