Control ScriptNode from UI knob AND envelope?
-
I have a PolyshapeFX with a Drive control. I want to control it from both a UI knob (setting base value) and an envelope (adding to base value).
I don't know ScriptNode very well at all, so I'm relying on Claude a lot here.
The various approaches we (it) tried could only accept control from one source. UI knob > Drive work fine, but as soon as we add the envelope modulation, it overwrites the UI knob connection.
Is it possible to have this kind of control in ScriptNode?
UI knob ─── setAttribute() ─────┐ # (base value) ├──▶ ScriptNode "Drive" macro ──▶ node param Envelope ── ExternalModulation ─┘ # (added value) -
D dannytaurus referenced this topic
-
@dannytaurus Matrix Modulation does this. And bonus thing, you get the envelope visual feedback on the UI knob
-
@dannytaurus It may be a matter of preference, but you can accomplish all of this just using Scriptnode. Take a look at a lot of the math nodes (for any type of waveshaping, adding/dividing/etc. of signals) and control nodes (for routing different control signals).
Again it's probably whatever you are most comfortable with. Personally I treat the Matrix Modulation more as a tool if I need different, flexible modulation sources. But if it's always an envelope modulation then Scriptnode has all you need.
Here is really hacky example:
HiseSnippet 2617.3oc2Zs0aaibElTNiSrRxtaZ2caen.cfwBzrYCzRJQcqEEqum3F6DgHsIAnnHcL4HIBSxgkbnsUCBPebennn+D5Oo9SI+CZOyPRog1z1xp1A6VkGhlamy249YF4dQLaZbLKRSu5fIgTM86g5OIfOdywD2.sc2RSeYz.ZLWaiIgj3Xpilt9ROQrl9J2RS94Ce2FDORfMc1TZZuh4ZS2y02kOa1dq8LWOucHNzAt9J61ZscsYAax7XI.NVBYnERrOjLh9bhXaUPZOkDOVS+QHhcCSCCqVNMNfPNvodWqgzFsZYY1XXWCKRWRKitsLrLATusiKmE0mS3zXM8asAyYR+wriCRYvqbicOviJFXp0G3b5z6v7bDhnXVsMG654zKWAEqooi5MScsTp55yQ6653Nc9YpsOSt.d1ITUf5UJBukJ.OSU3Yn.uRfjtBjtUJjd.pucjaHe1JB7bWztAbZzPBXmTgR5d0p75Jnu8QOBuEcna.EyGSwwt+UJlMT9c27yVC+nus5lLXX.ulO4P5NQvfoj9glF0sdLtaSiu92UspffulhGEQN.SvQzgzHJ3mf4LIQGl34gisinz.7POFg6FLByc8RYB3RDywGQhv6js1.XIS7uGmy9QT9lL+PV.L3gqVXWqly9+PBPjXJWxvc2Jm0v2Nl9a.1mDC3fEgAWO7ley2fsyIXspOBiw6Ffe5t82F6xwG6JPKXi.QIzCj0wBmknGiOHgC5GIEDmFXuCrgjQtARRbLEaSBvNyTrDadBwSgU3pf7V.+0hExlTL2hvIO7cqJrsq9awqt8IfpNf3AtHPDhXyq9dPXGlDXycY.LBdNiSeQvC+5puq5JUeeU7oWZ3vRWSvtHlmGMpzkEgrQWzAeXPh+AB8wQDuD5zMBtkE80QmuutZnncpzqrQVvtAt7WDRCNu.TsLUlHtHCUvV4xnhuHKpX8DGW1qIGQAqtulqiHRsvblZRAPMYl12uqvJjSVfC.WCoQbWg.ouE8HHYWZv2JnsnwGxYg.im5bBQe7rrEofP0VKwvmhJX90NQk8STGbrqCe7rI9mqMl5NZrRV1eXsLLlmf5rdLZGLRMaqKm5W935oSvomvU2flhjcmqr5UQ19p0lIa+4eXshx1G9GmV19a+w0ByM265HjMIow6wXg3ddjIzHSMPO57ZW938nC4a54ZeXt2xLLeuqj0ntBhWiofX7e+TH9ewOi0X2hVipnmQmb.iD4nXCtGxpdGq1s51nSQiwcQVMq2siUmFlEMJhSz0paq10617LVGoqZk+jN5cUw3UA98ZAHgbGlV0LdrXtsbigLXSdgMGLJOWF1BKOj3ESkquG6X3XvTckCepa5Hy5ski2Dxox7eRDIbrqcbgSBkOHId70CCojHQOAvp7njzE2.xZdHPpWBpVFrfQsVcke5zwncWi1lxcMfMZjGcelCs.kEUSgpqAATOATjy88wzWQsgbKJXYJ2fE2wiv6ym3cJJ0a6bivomGxQEwmwk54yucfiBuaU88PyLmotKTwm4j.rrXa.hlkxV.xWVn1qnrYPrKehZyTWa8FLuP7Andtb6wkiwJkfQHO3MAFy5n59nsGNDrpy.3sP67lal1mTY+mjx96h5C0ok8.KY9WJGiEouvOgFPiDJOyKnc3+871Nb3b2NbZf5.HfJNjEWfv8o9tCfzZwpSJb8in+EYbl57aB97ktzG9tc.grzyzmvShjtEq6yRB3EbCV5h5x9bKsWLhPY+kze6s9QWK2+DHxuvsBVIGi8c8C8naGbD0CZdQhweFJKgc9rEcr2mEvBGyBbsUs5ujxibGMhFoh8REn04bhn9a9Le9Zuj5QIpdve0Z6AddjHQ99ETWXdkugTo1qeIJEtXQzH9mtYrW5+qyXWvbhR4+mf5w7lj0K2aj.3WHmJ02EmtBdm2Tz6FZ7IqQnMR.7GItahttHkW5Uh0+0nxtlixMaPWS9nyt2h1yo7iYQGJkzruC8XKDopHGH3gS2mpstmG63YBXF2.IP3JneajQM3eo6ZS4MRScRzSuRBzRaVyL4YzQ5U.VOycZCOl8g8gq+KVR387TR7.hqmnef9IwvMvbdQPefNxpbBq6ykgu2dGhnarI8Hhlhe.RbGNvkfFUydpqghXLyXHTKoO1ixxBMYOnKReXnv3HDRAexqLlBMPh7kM0WAAaQrt7kZRAzxou7gOTVHEAE.3Wn.vYaoLToRh4EB5JP3dngdzSdKYrSbzow.MK0aMksTFFJPiKADHk6mlFxHFAIDpHPymh.WeEM6qRuuapWfV+iE4VFPhFQ4hSWQchrq.GPkQEwEGpk5GjdyrXeFiOl571vbFoMkkhcbaTJa0tPxKu0FH14W+9TArmdFg.F3POIUusMbwFGGpi7vB8hlhPCtZSGAnYe2fb0fH7QaexIYiWA0v.9.y0+P5woFOg.ZTqdylca1wntQqNsMMZzP5eemrxHZCfqkMfIIBHRGA5eAiVFIa1Ki1+bTcy50Za0od21c5T2pS2tZYUjmhll.m0tQf5xnmx7blSf1pUmt0ZazxpYmFcLa115L.03FCn2FZSwlLYtP5sQlRBWDc4yphukOe7gPlvXAqWAAI7D4HNGl+kPllHehGjrzoGMxFBAIilBFAcaVhhp4MjhZETdCVymppQoppFWMUUcA53zvrBFSUcKijM0UPkdZUg4hXSteVH1dTHy4BZWt1AylIQGQuAcRlKvbuz.keTfkOI2W7FAMyZVYZkpBY20tvJf2Csa7qDqZS7xYFT8SohcoEvJT49WI6d.5HrVI6rrB3kRxKqahKTLJFgceT5Uovuj3GVpF5bJVeGn6l.exImSA5BEMWRwM.MOtA4jY8DNyG5SV9nRELomWtPQVNSizOlVcMLMaYpvh6HRoaTH2SomHsim9RUu7Ec8oerKjTV1wUPaGPfaG3LG4jT7KmZqJ3K9YS8EyVsL+uoG8x74leOGDJzmTzsoJZe.+tgdSNkmyxWCdNhq.b99Nn4qfNrKW+DesBa8xZlYdoM4DIsKyLdJ43b7ftDu9kA+ux5FnSWn0LnCxlcLMsZUOq.rXaWsZdykbBDF7nuZJvEJHop3Z7jHwaYLGLSIUoZHSpSZg3k6OMdQrTYAKoG55KRYYDmDL9iUF1qg3Dk33qny7bQdDZcGm+GLpY5yBVU3V5v+WStPY1zrybIF0JErF5Kp0XtTZpBWA1VQsjXZpkmEbv.A7uLP.9jp+1A4+5uJOVHXagaMmV7oHLA4WIMTCCqFcsrZaT2zpiUi1y4c+KonvY8zyDq6Ch01AGk8PTebDsTZOexR4sFMKO+B0l4FL1g9D4i7sP+kEn8RVh3GmdeBOx8Dwick32GzJ14uqWb9i4jM1H2QuOMvQN3+.exVzb5ydBKZlu3GEd3SriXuMKUrPAdG4Lf0MPFvJzyvXbI+IYHdOt2ZaWjTm4f0WzC1XQOn0hdvlK5AasnGr8hdvNW9AE+PbYY6DATvsQ5sc5yvom21qt9RZ+WOE3+oAYou can use whatever envelope shape you want here, it needs to be placed in a midichain to process midi events though.
The minmax node is good for setting new ranges, and the pma node is great for quick multiplication/addition/subtraction/division functions.
-
Also, I haven't used it much to date, but it looks like the hise-cli is starting to support a lot of dsp controls (which I am presuming is for Scriptnode xml), but I could be totally off the mark here. Might be worth giving it a go!
-
@dannytaurus If you compile the effect and you've enabled modulation slots, you can add a regular HISE envelope to the slot I think.