Forum
    • Categories
    • Register
    • Login

    Control ScriptNode from UI knob AND envelope?

    Scheduled Pinned Locked Moved ScriptNode
    6 Posts 5 Posters 56 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dannytaurusD
      dannytaurus
      last edited by dannytaurus

      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)
      

      Meat Beats: https://meatbeats.com
      Klippr Video: https://klippr.video

      ustkU HISEnbergH David HealeyD 3 Replies Last reply Reply Quote 0
      • dannytaurusD dannytaurus referenced this topic
      • ustkU
        ustk @dannytaurus
        last edited by

        @dannytaurus Matrix Modulation does this. And bonus thing, you get the envelope visual feedback on the UI knob

        Hise made me an F5 dude, any other app just suffers...

        1 Reply Last reply Reply Quote 2
        • HISEnbergH
          HISEnberg @dannytaurus
          last edited by

          @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+oA
          

          You 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.

          Sonic Architect && Software Mercenary

          HISEnbergH 1 Reply Last reply Reply Quote 1
          • HISEnbergH
            HISEnberg @HISEnberg
            last edited by

            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!

            https://github.com/christophhart/hise-cli/commits/master/

            Sonic Architect && Software Mercenary

            1 Reply Last reply Reply Quote 1
            • David HealeyD
              David Healey @dannytaurus
              last edited by

              @dannytaurus If you compile the effect and you've enabled modulation slots, you can add a regular HISE envelope to the slot I think.

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              Christoph HartC 1 Reply Last reply Reply Quote 1
              • Christoph HartC
                Christoph Hart @David Healey
                last edited by Christoph Hart

                It depends whether you want it to be a static connection or a dynamic modulation routing.

                If static, then a control.pma node would be the best candidate - connect the UI knob to the value and the envelope output (either from an extra_mod or an inbuilt scriptnode AHDSR) to the add output, this will combine the two with unipolar modulation mode.

                Scales and offsets a normalised modulation signal using a multiply-add formula with clamped output.
                The PMA node (Parameter Multiply Add) scales and offsets a normalised modulation signal. It takes a 0-1 input value, multiplies it by a configurable factor, adds a constant offset, and clamps the result to the 0-1 range. This is one of the most commonly used control nodes for adjusting modulation depth, inverting signals, or combining parameters.

                Each parameter change triggers an independent output update. If Value, Multiply, and Add all change in sequence, three separate output values are sent to connected targets.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                13

                Online

                2.4k

                Users

                13.7k

                Topics

                119.4k

                Posts