HISE Logo Forum
    • Categories
    • Register
    • Login

    Scripnode 101

    Scheduled Pinned Locked Moved General Questions
    157 Posts 13 Posters 14.4k 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.
    • Dan KorneffD
      Dan Korneff
      last edited by Dan Korneff

      This post is deleted!
      1 Reply Last reply Reply Quote 0
      • Dan KorneffD
        Dan Korneff
        last edited by

        now when I compile the dsp network, I get these errors in VS2017:

        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\chain.h(38): error C2923: 'scriptnode::container::chain': 'NV' is not a valid template type argument for parameter 'ParameterClass' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\chain.h(35): note: see declaration of 'NV' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\chain.h(36): error C2955: 'scriptnode::container::chain': use of class template requires template argument list (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\documents\github\hise\hi_dsp_library\node_api\nodes\container_chain.h(127): note: see declaration of 'scriptnode::container::chain' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\chain.h(43): error C2955: 'scriptnode::container::chain': use of class template requires template argument list (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\documents\github\hise\hi_dsp_library\node_api\nodes\container_chain.h(127): note: see declaration of 'scriptnode::container::chain' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\dspnetwork.h(23): error C2923: 'scriptnode::container::chain': 'NV' is not a valid template type argument for parameter 'ParameterClass' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\dspnetwork.h(20): note: see declaration of 'NV' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\dspnetwork.h(21): error C2955: 'scriptnode::container::chain': use of class template requires template argument list (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\documents\github\hise\hi_dsp_library\node_api\nodes\container_chain.h(127): note: see declaration of 'scriptnode::container::chain' (compiling source file ..\..\Source\Main.cpp)
        1>c:\users\dan\desktop\wrap 3\dspnetworks\binaries\source\dspnetwork.h(28): error C2955: 'scriptnode::container::chain': use of class template requires template argument list (compiling source file ..\..\Source\Main.cpp)
        
        1 Reply Last reply Reply Quote 0
        • Dan KorneffD
          Dan Korneff
          last edited by

          charlie-day.gif

          Me trying to figure out scriptnode...

          1 Reply Last reply Reply Quote 2
          • ustkU
            ustk @Dan Korneff
            last edited by ustk

            @dustbro said in Scripnode 101:

            I guess a more direct question is: how do I bypass the oversampling from the Main Interface...

            Back before the new scriptnode version, we could just connect a parameter to the bypass button so it was easy for all kinds of nodes to control the bypass.
            Now, this is not possible anymore, but I don't know if it is intentional from @Christoph-Hart removing this ability. So if it has been lost during the migration then it might be re-implement, or perhaps with another way to access it...

            @iamlamprey Doubling the nodes is not an option. Imagine if you want a selector with x2, x4, x8...

            Can't help pressing F5 in the forum...

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

              @ustk Yes this is intentional. The reason is that if you want to bypass nodes, you usually want this process to be click free (like the container.soft_bypass node offers now). But having the overhead of the "bypass smoothing" for every node wastes too much performance.

              Now the oversample node is maybe the only node where you still want to connect the bypass in order to change the oversampling (I can't think of a use case where it makes sense to eg. bypass a fix_block node). However I would rather add a dynamic oversample node that exposes the oversampling factor as parameter that can be modulated like any other knob. This will also solve the problem of having to duplicate your signal chain in multiple oversample containers like you described

              Doubling the nodes is not an option. Imagine if you want a selector with x2, x4, x8...

              ustkU Dan KorneffD 4 Replies Last reply Reply Quote 1
              • ustkU
                ustk @Christoph Hart
                last edited by

                @christoph-hart said in Scripnode 101:

                However I would rather add a dynamic oversample node that exposes the oversampling factor as parameter that can be modulated like any other knob.

                That would be nice indeed 🙂

                Can't help pressing F5 in the forum...

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

                  @christoph-hart That would be excellent.
                  related to oversampling:
                  After doing some tests, I'm finding that the send/receive nodes don't play nice with oversampling. Most of the time they show a samplerate mismatch error. This also happens with setMinimumSampleRate. Using that in conjunction with a dsp network that contains those nodes produces no output (probably because of the mismatch).

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @d.healey
                    last edited by

                    @d-healey said in Scripnode 101:

                    @dustbro Click "onInit" and start adding components. You shouldn't use the interface designer for scripts that aren't the main interface, you should do it through scripting.

                    9f4761e6-5721-4178-862c-3c7975b55920-image.png

                    Ok... Why is that?

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @A Former User
                      last edited by d.healey

                      @ursbollhalder When you save your project as an xml an xml file is also created for all of the components on your main interface, but no such file is created for secondary scripts.

                      This means that if you copy your script from one project to another it won't have any components on the UI, so you'd have to create them again. If you add the components inside the script then you can share that script with other projects or with other people and the UI will also be recreated automatically each time.

                      If you look at my modules on github you'll see they all define their own interface so that they can be dropped into any project and everything will should work.

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      ? 1 Reply Last reply Reply Quote 1
                      • ?
                        A Former User @d.healey
                        last edited by

                        @d-healey Yeah! I see... I actually ran into that problem when creating a granular and a custom arp script processor with an interface. I thought it to be a great idea, creating these modules for reusability! But yeah, the next time I imported them in another project it was a mess! I then created a secondary js-file for them, in which I put all the Content.setPropertiesFromJSON for every element. Because also your knob modes (linear, decibel, etc.), as well as min and max values do not get saved without the xml!

                        1 Reply Last reply Reply Quote 1
                        • C
                          crd @DanH
                          last edited by

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User
                            last edited by

                            So the modchain does not have an audible output signal, right?

                            Christoph HartC 1 Reply Last reply Reply Quote 0
                            • Christoph HartC
                              Christoph Hart @A Former User
                              last edited by

                              @ursbollhalder Yes. It's supposed to be used with a peak node at the end so beyond that point the signal should not matter anymore.

                              ? 2 Replies Last reply Reply Quote 0
                              • ?
                                A Former User @Christoph Hart
                                last edited by

                                @christoph-hart Yep... That's what I messed up... I put a simple xfader into a modchain (doesn't make much sense, I know) and had that in a split container and was wondering where the signal was coming from! Oh my 🦌! 🙏

                                1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @Christoph Hart
                                  last edited by A Former User

                                  @christoph-hart If I mix between a dry and a wet signal with an xfader, is it correct to use the overlap or rms mode to avoid a drop in volume when adjusting the mix slider on top? https://docs.hise.audio/scriptnode/101/drywet.html note to self: RTFM!

                                  And as the last question... can I somehow dynamically load convolution files into my scriptnode house of wonder?!? Similar as to when I load those files into the standard HISE convolution module with a combobox f.e.?!

                                  I have 3 convo containers that filter the incoming signal... etc. It would be nice if I could let the user make those choices in a combobox... see here:

                                  2021-12-09_12-23-25.mp4

                                  favicon

                                  Google Docs (drive.google.com)

                                  Matt_SFM 1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User
                                    last edited by

                                    So I added a couple of knobs to my scriptFx, as instructed above by @Christoph-Hart...

                                    Now when I add f.e.

                                    const var myKnob = Content.addKnob("myKnob", 30, 20);
                                    

                                    and then later on take that line out and recompile, the knob and some xml-graveyard junk is still in there somehow! Also not sure where the xml for the scriptFx-interface would be, so I could frankenstein my way through this for now...

                                    Screenshot 2021-12-09 at 12.59.00.png Screenshot 2021-12-09 at 12.58.45.png

                                    LindonL 1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User
                                      last edited by

                                      And here's to my very last question of today:

                                      Is there a reason not to forward the params to the UI but first creating intermediary one on the scriptFX ui? I could think of re-usabilty issues... but what else?!

                                      Dan KorneffD 1 Reply Last reply Reply Quote 0
                                      • Dan KorneffD
                                        Dan Korneff @A Former User
                                        last edited by

                                        @ursbollhalder said in Scripnode 101:

                                        intermediary one on the scriptFX ui?

                                        If you add controls to the scriptFX UI, you can no longer access the DSP parameters from the main interface.

                                        ? 1 Reply Last reply Reply Quote 1
                                        • ?
                                          A Former User @Dan Korneff
                                          last edited by

                                          @dustbro Yeah. It's either main interface to DSP parameters, or...
                                          main Interface to scriptFX interface to DSP parameters?! Right?
                                          With the second option you loose option No.1...

                                          1 Reply Last reply Reply Quote 0
                                          • LindonL
                                            Lindon @A Former User
                                            last edited by

                                            @ursbollhalder said in Scripnode 101:

                                            So I added a couple of knobs to my scriptFx, as instructed above by @Christoph-Hart...

                                            Now when I add f.e.

                                            const var myKnob = Content.addKnob("myKnob", 30, 20);
                                            

                                            and then later on take that line out and recompile, the knob and some xml-graveyard junk is still in there somehow! Also not sure where the xml for the scriptFx-interface would be, so I could frankenstein my way through this for now...

                                            Screenshot 2021-12-09 at 12.59.00.png Screenshot 2021-12-09 at 12.58.45.png

                                            Yes this is standard behaviour - your script is adding a knob, to remove it (in order to have it always appear in the smae place - just delete the knob in theVisual editor...

                                            HISE Development for hire.
                                            www.channelrobot.com

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

                                            46

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.3k

                                            Posts