HISE Logo Forum
    • Categories
    • Register
    • Login

    Scripnode 101

    Scheduled Pinned Locked Moved General Questions
    157 Posts 13 Posters 14.5k 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.
    • Christoph HartC
      Christoph Hart @Matt_SF
      last edited by Christoph Hart

      @matt_sf Thanks for doing this - I think it's exactly the level of complexity which most people are getting stuck, so this might be useful to a lot of people.

      Just a few remarks about the examples:

      Use the Parameter Range Editor

      Editing the parameters using the right-click context menu is just the fallback and there is this range editor that allows you to change the parameter range more quickly:

      38c39ff9-032f-4283-9e82-c99a280190c1-image.png

      Apart from the ability to drag the min and max value as well as the skew factor with the mouse, there's a handy context menu which allows you to quickly set it to different presets, or in this case, simple copy the target range to the source range (so that you don't have to edit the range of the main parameter).

      7551fe60-c3e1-400c-ac5c-5bb8b7688638-image.png

      Use XFADE instead of parameter ranges

      the panner is better implemented using a control.xfade node - then you don't have to fiddle with the parameter ranges and can change the pan laws by selecting different xfade algorithms.

      235e92ea-1430-4670-8926-ec2ae420349d-image.png

      HiseSnippet 1477.3oc6X8zbaTCEWqsWm+zRoEJLLbxG5gzYJAanTXFNXm3D2wC0IdxlFJmJpqks03ckVzJ6DCC24Fm6s9QfqbKeDXFNyLv2f9M.dRZs2cc1j53ZZN.9Plnmzae+z6868zSpsf6RBC4Bj0ZGNNffrttsyXlre89XJC0bGj0MragCkDQIinsGGfCCIcPVV4enRf0ZEP5eur51XOLykDKBgNhScIOh5SkwRaW6qnddMvcHGR8Sr56WqoKmUm6wGB3IucYT.1c.tGYOrZY4rQVE2sCUxENRrjDhrJrMuyXm97iYl0eDMj9LOhZPEjC7gLh2eDQLhRNtA2qiB4JYn58odcZOY+GhPV1si8F4Mdiaa2h1gNUdrW4l5IJEqQR+hUtzvLeJXV47fYFPxJAjJXfzsrcbEz.Y7LJ7bM6lLHH0ECt+jPwrVj0o104vBXxM8wCHMDvfoJrwCJW9dkf+b2ur6PlqjxYk3r83Rx9rMt65+v5qs9OtdoYmpa2LmSYFA2yiHxbZUDWbQJtAan+yHh6UZD1aHY5BgseZeZw4ym5Z10IVHm0jQk6GPhFGSJpjQD.E41f+6wM2AKwpfRjLXcADgjpfi0NjQ.S2DhVydGR3.IO.35mI9ALGdmgdXYZ5jJWJZBvejJFpBTrPpbbxbsY4XENe+Q4D9iWwtcNg6sraSkt8yFu4x.ufW6ea7Fkw9V161sKwUFC1B1MdxhldV9RmdtdT5IXSkwudzvRMdRkLSL+I63jf.AI.KHGxa6gGuQH1Ovib.fw6U5Ydb2ANzumb1Lm.CD1VshMb6iYLhW3hjfUbIUzBc.enjx50BKEzSfxp6Mz2AJo6RpGgNPlUNUtkYbY0XEGwgv5nG72vunIqnFaEMYkISlHsbOh7XtXfNbD8+Pvv36C0N4m18jJns773GWm6GPiXrPLPKqM2abPeNi5pDYVwDjtkOeHXjH3ZkaOdGvATrA1EbTiaik8U4BpZL.YiH1zcJoKksUpM4XMyNELiuB9pC0RwJ.+car.NuCpMqJqjyJehxLFFmZDjakyXmlgGol0E6gNREQUJosXXLhsUKcU6S5Bm4JPof+M0vG3EaFM67CVqBofVtYf1aqB7I1LQny3KQyr3hpxLjIqYU6GA9Sr.ghKwbHVziHU7KmiUEelN1JWRAQ0mYDMsOL8Pj0JpsWyNJC1SEqlhOiLcGMsnrHbLo702bZK7IyHCvgjDnxIij8hm+7espy.nMCs+MR5o89k2q1tm.o1ggZD.NQzh.3Uz.txUDhSDGUjvIi.XcVaCQsyX6WVcFaavyr1VuREeXEayGXlOyeVcqgRtOTgpyTddD8dEa+gdRJ5bSNMSeIn2ox7xLkJhDkxjWCLofrodhKgwxkxXob24uX28qan1rQz7ny7UR6sSfihyUXu1OWatvw29t676UMsw53y4x9vwGyBl6W6UX+kge351GPBIxL4dQbfozMS53+G6+ORrOYX47KGVT8kV2tMG5+UU7b4Wcbppu3C+3+3NE+qpy2wGSO8O04GSJyt7g4rGfrMmOvGq6S609lT2vLIPXfB65mqP2y06qGW5qwiHkdHAJ4qtzRkK3EK9s48EKBl6WrXeWIX9CEXVX.OLseh3SOjyT6wXgONDtLN46NP0hSR404XQlS8xpMfMYl53fkCE5dklz2Zhqeketu9Uxt6SeqzDqOiKCU3J34St36m8l612KmqPt1DL5PUW8aW1HhGjXnw36.YBcwPKLSjllX2hy3StESbT+.BbErd8HoauJqMzVRI1cPrjaW6.hGAmjAemZllx0MpuX9hK+qckY75CrMvsjJarzURbao7RI4mqWJYofwqfWG4Mx6.7lvF9XWA+oQWSVwSWUKA12L8CSulcK03RUPihthqc4MKi7gJbO00U4h+HnfY157IKfNe5Bny8W.c9rEPmGr.574KfNewEpi5vkn1WUobff16pa4vxZWFFXuZlN5e.SLLjjA
      
      Matt_SFM 1 Reply Last reply Reply Quote 3
      • Matt_SFM
        Matt_SF
        last edited by

        Ok now, let's take a look at the container.split node which creates parallel signal chains.

        Let's build a little reverb wit a Dry/Wet control :

        Add a container.split node to the graph and add 2 container.chain nodes. These will contain our stuff :

        83dd2341-b9a1-4575-a683-b08494f2978f-image.png

        See the signal cables ? You can see that the whole signal is send to both the DRY and WET containers and not split into left and right as in the previous example.

        Now add the required nodes like this : 1 gainNode for the DRY channel and a reverbNode + a gainNode fot the WET channel (type "reverb" in the serach bar to find it) :

        58076801-193f-4834-aa22-f5a30be985b9-image.png

        Now will be a good time to introduce you to another type of containers : the container.modchain. This one is here for you to put all your modulation nodes in. It can contain oscillators for LFO purposes, envelopes and more.
        Here we'll just use it to handle the Dry and Wet levels and for this, we'll use a nice and handy node that Christoph's provided : the Xfader node.

        Add a DryWet control at the top, a container.modchain + a control.xfader to the graph :

        b86ae466-b4da-4598-be8d-bf7679b31944-image.png

        In the Xfader menu, select "RMS" and connect everything like this :

        88ec8fae-c9df-4562-80cf-64e6edb44670-image.png

        Done ! How simple is that ? Now if you want to build you own reverb and manipulate it via your interface, just create parameter controls and connect everything :

        1c3d197d-c264-4fe2-9306-f17c48267373-image.png

        Keep in mind though to take care of the control's ranges, depending on whether you're controlling linear values, levels, frequencies, etc...

        That's all for today, have fun !

        Develop branch
        Win10 & VS17 / Ventura & Xcode 14. 3

        1 Reply Last reply Reply Quote 2
        • Matt_SFM
          Matt_SF @Christoph Hart
          last edited by

          @christoph-hart said in Scripnode 101:

          Thanks for doing this

          My pleasure, I wanted to do this for quite some time... Thanks for jumping in :)

          Use the Parameter Range Editor

          Editing the parameters using the right-click context menu is just the fallback and there is this range editor that allows you to change the parameter range more quickly:

          You're right to point it out, I was aware of the range editor but I'm used to the right-click... I must change my habits !

          the panner is better implemented using a control.xfade node - then you don't have to fiddle with the parameter ranges and can change the pan laws by selecting different xfade algorithms.

          Done in the last part, of course it so much simpler :man_facepalming:

          Develop branch
          Win10 & VS17 / Ventura & Xcode 14. 3

          Christoph HartC 1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart @Matt_SF
            last edited by

            @matt_sf I've added this to the "official" hise_documentation repo (it was basically just some file reorganisation and copy pasting of your "raw" post content.

            Link Preview Image
            hise_documentation/scriptnode/101 at master · christophhart/hise_documentation

            The markdown files for the online documentation. Contribute to christophhart/hise_documentation development by creating an account on GitHub.

            favicon

            GitHub (github.com)

            The "compiled" version looks like this:

            Link Preview Image
            HISE | Docs

            favicon

            (docs.hise.audio)

            I would suggest that we keep this thread for discussion but put up a link on top of your first post to the docs so that people who just want to read it get a concise and bloat-free version.

            You should be able to fork and create pull requests from the markdown file whenever you want to edit / add new files there, but let me know if you need more information. Just two things about the general markdown style (the forum is a bit less strict):

            • if you use inplace code like this, just use one backtick (you've used three backticks which usually indicate a code block). And if you prepend javascript after the first three ticks of a code block, you'll get the nice syntax highlighting
            • I'm using the > quote character whenever there's a background / additional information that does not follow the normal text flow. I've replaced all occurences of "Note: ..." with this format to make it more concise with the rest of the docs style.

            Now back to the actual content:

            Now will be a good time to introduce you to another type of containers : the container.modchain. This one is here for you to put all your modulation nodes in.

            That's not 100% precise (and for this use case you don't need the modchain container, just add the xfade node directly. What the modchain actually does is creating a monophonic and downsampled signal which will not be fed into the original audio signal and thus is suitable for modulation if you put a core.peak at the end of its nodes.

            Matt_SFM 1 Reply Last reply Reply Quote 2
            • Matt_SFM
              Matt_SF @Christoph Hart
              last edited by

              @christoph-hart

              @christoph-hart said in Scripnode 101:

              You should be able to fork and create pull requests from the markdown file

              No problem, I'll correct everything and make a pull request this evening :thumbs_up:

              @christoph-hart said in Scripnode 101:

              That's not 100% precise (and for this use case you don't need the modchain container, just add the xfade node directly. What the modchain actually does is creating a monophonic and downsampled signal which will not be fed into the original audio signal and thus is suitable for modulation if you put a core.peak at the end of its nodes.

              Oh ok thanks, I usually do this to make things clear in my graph but it makes sense.

              Develop branch
              Win10 & VS17 / Ventura & Xcode 14. 3

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @Matt_SF
                last edited by

                @matt_sf There's a container.offline node which will not pass the audio signal to its children, which is better suited for "hosting" control.xxx nodes as the mod chain has a little bit more overhead.

                1 Reply Last reply Reply Quote 1
                • dejansD
                  dejans
                  last edited by

                  With the new development version, do we have to compile scriptnode same as with the master? What is the procedure here?

                  Matt_SFM 1 Reply Last reply Reply Quote 0
                  • Dan KorneffD
                    Dan Korneff
                    last edited by

                    Is there a vibrato or pitch shift node?

                    Dan Korneff - Producer / Mixer / Audio Nerd

                    Matt_SFM Christoph HartC 2 Replies Last reply Reply Quote 0
                    • Matt_SFM
                      Matt_SF @dejans
                      last edited by Matt_SF

                      @dejans for "small" scriptnode effects HISE will include them directly while compiling your plugin, so you should be able to use SN effects in your projects whithout burning too much CPU (I didn't try it with SN synth though).
                      The scriptnode workbench is still under development but it allows you to create DSP networks and compile them (and thus optimize them) before integrating them into your HISE projects.

                      Something to read : Snex_node Needs to be wrapped into a compileable DSP Network

                      Develop branch
                      Win10 & VS17 / Ventura & Xcode 14. 3

                      1 Reply Last reply Reply Quote 1
                      • Matt_SFM
                        Matt_SF @Dan Korneff
                        last edited by

                        @dustbro A pitch-shifter example is available int Christoph's repo here : HISE tutorial.
                        I didn't try it but with this example project it would be simple to add a LFO to modulate the pitch.

                        Develop branch
                        Win10 & VS17 / Ventura & Xcode 14. 3

                        1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart @Dan Korneff
                          last edited by

                          @dustbro PitchShifter is here

                          A vibrato should be pretty easy to do: just modulate a jdsp.delay node with a LFO inside a frame block.

                          HiseSnippet 1810.3oc6Z07aaTDEeV6LIwIokTnf5QefCoRgH6RofDGhyWtxh5TqrgPqTkBSWO1dq2cmkcGmDCBDG6sdfS8FbhqbEINDweAHwI9m.kKbgKk2rytd2wdiqsqSp.QNT44Myru2626yYlVyiYP88YdHsb620khzVBq20g2ZqVDSGTksQZWEWk3yod4kj1rqKw2mVGook8tBBZ4lAE72YquIwh3XPiIgPGvLMn2yz1jGSsVoOwzxpLoNceS6Dq91kpXvb1hYw5.xSVbAjKwnMoIcWhXYYvHsY2otIm4oyIbpOrlMY06p2hcrib8GX5a9XKpXPQjN7gjjQa0xzpdsHc0Ggzv0h07rRM+53pl0M6QOFAVNXh7w6HIFnkYXhTwwPjzRHRyHEoqg0M7Lc4wyHjmEwUb.CRCB.0IEE4ZQZmh2hAKvgulMoMsrGLn2FV4NEJrZd3et4G2niiA2j4jm4rKiSuuyJ2bguZgbK70Kju+oZzH04DrwiYYQ8RcZg00aXabEmN1Ol5sZ9iHVcn8VHn9pX5riFlZH05DKj4TwwjeeWZ33xLq5BrR76As.nPXC90mVYaBmHLJgzf04R83lBwQaa5QfWszDkCuM0uMm4B90CX+.OGV8NVDtp6jHtIbB.OTrgBCkiuIuax3pwvGqvP8wFUQ7Z3ZlbiVoKiYRQFAj5hPFCiLuBdmFMnF7XAbFb4GLoggEF6vvEBCCAdJX9RgCyW9AESM.7o3XmcWOpKwitOqlEo6J9DaWK5dfLtZ9GawLZqa9kzAiPbkhvlhUrhQKhiC0xeRBjlcJkbBsGqC2zoYUB2y7DH84tcr0gzzFzsBkNflVFQLjbbAwXgegN0odvfW.+ENYQwXsvIKFMYhvuco7iYdsCLGg+FLFRr2O.jOrwIEQaXYwNdKlsqYnWJXCBnUiY00sEywzPPRthHIcCaVGfIghqVlcY0A.X1xDC.n5VivaI7+E4R.mMp2ZF8b5T3sXaQkpjZJvFag3KJTo3U.3cMhGTCCxAKRejQKahzIRONwHHdJijOU7OPLqAwBcfvhJ1T.GkHRfDikEmaH9v25v.mIjhRbiDJgxpFcQ+USPyjPPW.aypKgREg75IDxdq3xR.wIDvkvLeCnsDQhPz.NCdz0RL8jJehkAg+mDUaYaSeWHqvlcfraxbOJTDJgSc5IQAH6.w30g5WAaOJnIgmE3E2aD76plNgpbbV5pjS5i1xkz4TWQZnjUbzaSOVBBIoJvoYE0KnnA9xnDrdtQi0uaJrFxIbtrdQbYO5Wzg5XzMl+O5Y+5esxidw5azgyrgrbAUnPCGGNa8AElBiINrTfvjeOQhGz.eez3aH.lMlFh6Bp6EFqGlgXNbsVD+WhSvEDumMn6oTT6Dwx4v9lMuEjNQMP9pXvAo0ZQyMFQwYThhUB4ztLfa4Gn2m4u+lm7K7u6oJ57r3lCjbcQYlqliYN0gnsYGdT9COcPsEzLUs86e9y+4A8qOs4O81kNeC7COcbBvSA0K8rRijb74u01+dX1FcaFi2B55Iovr7O77+nZoWB+mF3vR38n9Tdel9dQZJldWJocpl9fIFCS+LJl939+2m30jxC726mHRadACp.ef4wmz.NUuWL5HnF49tiCA50Lv7M8iS14DnQae+fl.Ak5htRaR3umVqX.VNnwFn270BmcRsB8BGiZp4MDMemPXBQMY+rn9VrZ454w2C5zh3kpoEoer3Pewl5LIIDdVXGZvQO7UGBF4XefmTmB.qpOvhvojAhA22ynY7qTZxM9ShbmKTtK95TvO2JKycIUYIZKmSx1977mCa2whahN2yNImdhaWNsCRzy+RgoWAn56tV3TSmZcYlB0XRG+6UiYNr7pQG3yLAcSWYr6lN1yNwm5aqs5OdVecSqzZUTXx+i+WZ3uR724NPEvjwJgW1wzO6QusBMhdiYN3OWezxxF1kpRJ1vF9l9cQctYWCgm4v5tT.hu.Qmd2N5HgNJ2AQekghO56z+v08CTaxXssIA2+1q7MgeU4jP2zPEgfmVJ3tzdmfw4+LxQz72kB0JD5bwg75R+1n95Rti7qKceCNv988HN9tLeUbhZatOyQniwD+TepvJHOxeB5awHdoN0YqWFTxT2iNg2wKn+qn6iLgyRV0asclQ6VaUeUgDqOkK4dlWCO+0z4oIdM95IJOMPtHYT2TbRicbNhZAAFAx3aBQBMHPuOQTUcrqxbXQ2NcrUeOJ2yrYSpZghzTnM3bhQ6XJWuzdTKJwWI5W1nePy+SFVL9uVYp1qafkhadQzX9+89pWY+O8qdco79NWF7vlX3wNL7n2B+z4Cn.5sSv+IBxgqJFmuH5nviMiKrVAjMjg6PCCAD+dPByz2yslf879Svdt8DrmOXB1yclf87gSvd9ngtGQwkv1cEgb.gZ6Hu2Es3aLJK5e.xKD7r.
                          

                          Be aware that this is another contender for worst CPU usage for a simple effect (if you compile it the CPU usage will drop significantly).

                          Dan KorneffD 1 Reply Last reply Reply Quote 1
                          • Dan KorneffD
                            Dan Korneff @Christoph Hart
                            last edited by

                            @christoph-hart I'm trying to test out the Pitch Shift example. Getting some errors when compiling the DSP from workbench

                            Severity	Code	Description	Project	File	Line	Suppression State
                            Error	C2662	'void scriptnode::container::container_base<ParameterClass,scriptnode::wrap::fix<2,scriptnode::wrap::fix<2,scriptnode::wrap::frame_x<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::control::resetter<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>>>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,0>,scriptnode::wrap::no_data<scriptnode::dynamics::envelope_follower>>,scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,scriptnode::wrap::mod<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>>,scriptnode::control::smoothed_parameter<scriptnode::smoothers::linear_ramp>>>>>,scriptnode::container::split<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>>>>>>::setParameter<2>(double)': cannot convert 'this' pointer from 'scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>' to 'scriptnode::container::container_base<ParameterClass,scriptnode::wrap::fix<2,scriptnode::wrap::fix<2,scriptnode::wrap::frame_x<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::control::resetter<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>>>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,0>,scriptnode::wrap::no_data<scriptnode::dynamics::envelope_follower>>,scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,scriptnode::wrap::mod<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>>,scriptnode::control::smoothed_parameter<scriptnode::smoothers::linear_ramp>>>>>,scriptnode::container::split<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>>>>>> &'	PitchShifting_DynamicLibrary	C:\Users\Dan\Documents\GitHub\hise_tutorial\PitchShifting\DspNetworks\Binaries\Source\PitchShifter.h	290	
                            
                            

                            and

                            Severity	Code	Description	Project	File	Line	Suppression State
                            Error	C2662	'void scriptnode::container::container_base<ParameterClass,scriptnode::wrap::fix<2,scriptnode::wrap::fix<2,scriptnode::wrap::frame_x<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::control::resetter<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>>>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,0>,scriptnode::wrap::no_data<scriptnode::dynamics::envelope_follower>>,scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,scriptnode::wrap::mod<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>>,scriptnode::control::smoothed_parameter<scriptnode::smoothers::linear_ramp>>>>>,scriptnode::container::split<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>>>>>>::setParameter<2>(double)': cannot convert 'this' pointer from 'scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>' to 'scriptnode::container::container_base<ParameterClass,scriptnode::wrap::fix<2,scriptnode::wrap::fix<2,scriptnode::wrap::frame_x<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::control::resetter<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>,scriptnode::parameter::plain<scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>,3>>>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,0>,scriptnode::wrap::no_data<scriptnode::dynamics::envelope_follower>>,scriptnode::control::xfader<scriptnode::parameter::list<scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>,scriptnode::parameter::plain<scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>,0>>,scriptnode::faders::linear>,scriptnode::wrap::mod<scriptnode::parameter::chain<scriptnode::ranges::Identity,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>,scriptnode::parameter::from0To1<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,1,PitchShifter_impl::smoothed_parameter_mod_0Range>>,scriptnode::control::smoothed_parameter<scriptnode::smoothers::linear_ramp>>>>>,scriptnode::container::split<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>,scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<2,scriptnode::wrap::control_rate<scriptnode::container::chain<scriptnode::parameter::empty,scriptnode::wrap::fix<1,scriptnode::wrap::no_data<scriptnode::core::oscillator<1>>>,scriptnode::math::OpNode<scriptnode::math::Operations::sig2mod,1>,scriptnode::wrap::mod<scriptnode::parameter::plain<scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>,0>,scriptnode::wrap::no_data<scriptnode::core::peak>>,scriptnode::control::multi_parameter<1,PitchShifter_impl::bipolar1_mod,scriptnode::control::multilogic::bipolar>>>>,scriptnode::jdsp::jdelay,scriptnode::math::OpNode<scriptnode::math::Operations::mul,1>>>>>>>> &'	PitchShifting_DynamicLibrary	C:\Users\Dan\Documents\GitHub\hise_tutorial\PitchShifting\DspNetworks\Binaries\Source\PitchShifter.h	308	
                            
                            

                            Has anyone tested this successfully yet?

                            Dan Korneff - Producer / Mixer / Audio Nerd

                            DanHD 1 Reply Last reply Reply Quote 0
                            • DanHD
                              DanH @Dan Korneff
                              last edited by

                              @dustbro I'm trying... So you can't load a snippet into the workbench? What's the best way to get the ScriptFX into the workbench for compilation?

                              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                              https://dhplugins.com/ | https://dcbreaks.com/
                              London, UK

                              DanHD 1 Reply Last reply Reply Quote 0
                              • DanHD
                                DanH @DanH
                                last edited by DanH

                                @dustbro ok, managed to compile the scriptfx. I have a file called 'project.dylib' in the dll folder. Opened up the project and everything looks the same as before - The project doesn't use the new dll I don't think. What am I missing?! :face_with_tears_of_joy:

                                DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                https://dhplugins.com/ | https://dcbreaks.com/
                                London, UK

                                Matt_SFM 1 Reply Last reply Reply Quote 0
                                • Matt_SFM
                                  Matt_SF @DanH
                                  last edited by

                                  @danh Same here. Managed to compile the network but not to use the "frozen" dll version... Works with expr.node networks though

                                  Develop branch
                                  Win10 & VS17 / Ventura & Xcode 14. 3

                                  DanHD 2 Replies Last reply Reply Quote 0
                                  • DanHD
                                    DanH @Matt_SF
                                    last edited by

                                    @matt_sf did you get a .dll file after compilation? And do you get one when you compile an expr.node?

                                    DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                    https://dhplugins.com/ | https://dcbreaks.com/
                                    London, UK

                                    Matt_SFM 1 Reply Last reply Reply Quote 0
                                    • DanHD
                                      DanH @Matt_SF
                                      last edited by

                                      @matt_sf I get this message at the end of compilation, doesn't look quite right to me!

                                      Screenshot 2021-11-30 at 14.16.03.png

                                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                      https://dhplugins.com/ | https://dcbreaks.com/
                                      London, UK

                                      Matt_SFM 1 Reply Last reply Reply Quote 0
                                      • Matt_SFM
                                        Matt_SF @DanH
                                        last edited by

                                        @danh I do get a dll file for both networks but only the one with expr.node seems to use the actual dll... Don't know why

                                        Develop branch
                                        Win10 & VS17 / Ventura & Xcode 14. 3

                                        1 Reply Last reply Reply Quote 0
                                        • Matt_SFM
                                          Matt_SF @DanH
                                          last edited by

                                          @danh said in Scripnode 101:

                                          @matt_sf I get this message at the end of compilation, doesn't look quite right to me!

                                          Screenshot 2021-11-30 at 14.16.03.png

                                          Not quite right indeed :D
                                          You should see something like this :
                                          alt text

                                          Did you "Allow compilation" of your network ?
                                          (Deselect everything an press "P")
                                          alt text

                                          Develop branch
                                          Win10 & VS17 / Ventura & Xcode 14. 3

                                          DanHD 2 Replies Last reply Reply Quote 0
                                          • DanHD
                                            DanH @Matt_SF
                                            last edited by

                                            @matt_sf I haven't done that , no. Where do I access that menu?

                                            DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                            https://dhplugins.com/ | https://dcbreaks.com/
                                            London, UK

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

                                            19

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.5k

                                            Posts