HISE Logo Forum
    • Categories
    • Register
    • Login

    Custom Dsp Nodes 101

    Scheduled Pinned Locked Moved ScriptNode
    24 Posts 5 Posters 1.9k 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.
    • ustkU
      ustk @Sawer
      last edited by ustk

      @Sawer said in Custom Dsp Nodes 101:

      I want to make a vibrato FX ( there's already one using the Pitch modulation FX ) however I need more flexibility (routing, delay etc) in order to achieve that, and maybe use that to create chorus later.
      This is my starting point, and it sounds bad :) . How can I improve it ?

      The main issue here is the container. a fixblock isn't adapted, prefer a frame for this task
      Set a low freq of 1 or 2Hz as starting point and lower the gain
      Set the max delay time to 10
      The very secret trick now is to square the sine. Because changing the time with a sinus creates a derivative that result in a non sinusoid that isn't pleasant to the ear (I probably explain it very badly though...). So if you square it first, the result is a nice sine (try with a triangle without squaring it, it will be obvious that what you hear isn't a triangle but a saw instead)
      Note that I used a pow operator but there's a square node in the math section too
      Also this multiplies the frequency by two, so you might want to set the Freq Ratio to 0.5

      Screenshot 2023-07-05 at 12.09.58.png

      Thirdly, what is the difference with using RNBO and scriptnode?
      Are there any advantages or disadvantages?

      They are just two distinct DSP environments, so it depends on which one you feel more comfortable with.
      Even if I don't use RNBO personally, it is probably more powerful. That been said if you are just getting your marks into DSP scriptnode is probably a good choice because it is simple and there's no extra headache to integrate within a Hise project.

      What are the limits of scriptnode?

      Audio wise, not many! Especially once you combine it with SNEX (or C++) node

      Is it possible for example build a whole custom algorithmic reverb?

      Absolutely, you can build complex networks such as a reverb.
      The only limitation is the power of your computer. I have made a big reverb and my old iMac is suffering, but it holds. So if you have a decent machine it's all good

      Many people are wondering how to make a DSP and I've been there and still be for a long time.

      The best advice I can give is to read and watch DSP content as much as you can, and soon the different concepts will be clearer so it will make sense how to use the nodes, operators, etc... In the end it is just transferring DSP code into a graph. This code will soon appear like a graph representation in your mind.
      Many DSP are represented with a diagram, which is almost a scriptnode graph already so the implementation is even easier.

      An aspect that isn't alway obvious is where to use the different containers like frame, fixblock, and oversample

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

      S 1 Reply Last reply Reply Quote 1
      • S
        Sawer @ustk
        last edited by

        @ustk Amazing! I got so much progress out of it!
        However, the oscillation in terms of pitch is the same even if I change the frequency amount.
        It shifts only by a semitone or something like that... Is it normal?

        Thanks so much for the full description of scriptnode.

        ustkU 1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @Sawer
          last edited by

          @Sawer The precise amount of shifting is hard to predict
          Because it depends both on the amplitude, and on the frequency.
          It's strange that you don't get it going higher when changing the Freq... Try to raise the Gain
          Also this is a starting point that I made in 2min, it's not perfect and needs some tweaking

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

          S 1 Reply Last reply Reply Quote 1
          • S
            Sawer @ustk
            last edited by

            @ustk I am trying to just emulate the LFO modulator in the pitch FX.
            I realised with your example that the frequency changes the amount of oscillations.
            So what is missed is the intensity, just like in the picture here:

            Screenshot 2023-07-09 at 14.40.01.png

            How can I achieve that particular property in the scriptnode?

            S 1 Reply Last reply Reply Quote 0
            • S
              Sawer @Sawer
              last edited by

              @ustk Update: I just had to change the amount of delay.

              ustkU 1 Reply Last reply Reply Quote 1
              • ustkU
                ustk @Sawer
                last edited by

                @Sawer Yes, or you can also change the gain. If it's already set to 1.0, then you can add a math.mul

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

                S 1 Reply Last reply Reply Quote 0
                • S
                  Sawer @ustk
                  last edited by

                  @ustk Thank so much, will modify it again now. However, I'm getting compilation errors:
                  Screenshot 2023-07-09 at 17.19.32.png

                  Any idea of what i'm missing?

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Sawer @Sawer
                    last edited by

                    @Sawer Update: Error is that the smoother class is not properly setup with parameters

                    template <int NV>
                    using modchain_t_ = container::chain<parameter::empty, 
                                                     wrap::fix<1, oscillator_t<NV>>, 
                                                     core::smoother //Here's the problem, 
                                                     math::pow<NV>, 
                                                     math::sig2mod<NV>, 
                                                     peak_t>;
                    
                    

                    The solution is to put everytime

                    template <int NV>
                    using modchain_t_ = container::chain<parameter::empty, 
                                                         wrap::fix<1, oscillator_t<NV>>, 
                                                         core::smoother<NV> //Why does it not make it automatically?, 
                                                         math::pow<NV>, 
                                                         math::sig2mod<NV>, 
                                                         peak_t>;
                    
                    

                    Why does it not complete the parameters automatically, just like the other nodes?
                    Is there a solution?

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

                      @Sawer Are you using the latest HISE version? I remember fixing this a few months ago.

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Sawer @Christoph Hart
                        last edited by

                        @Christoph-Hart Okk, thanks will checkout soon then!

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sawer
                          last edited by

                          I've been working on multiple FX so far.

                          Just as the default fx that are always incorporated in any new Hise project, how can I save and recall my fx in a way that I do not have to do them again for each project?

                          S 1 Reply Last reply Reply Quote 0
                          • Dominik MayerD Dominik Mayer moved this topic from Presets / Scripts / Ideas on
                          • S
                            Sawer @Sawer
                            last edited by

                            Hello everyone.

                            Trying to improve a vibrato FX I created in scriptnode.
                            When using the node on the scriptfX, everything works.

                            However, when it is compiled, and loaded in HardcodedScriptFX, it does now work properly anymore. the Vibrato only starts it's processing when I move the Rate knob. If I do not touch anything, then the processing is not happening.

                            Am I doing Something wrong? Screenshot 2023-08-13 at 13.44.53.png

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @Sawer
                              last edited by

                              @Sawer Are you using the latest develop branch of HISE?

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

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                Sawer @d.healey
                                last edited by

                                @d-healey Yeah, the 3.5. Wanted to make this work before moving to the newly 3.6 version

                                d.healeyD 1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey @Sawer
                                  last edited by

                                  @Sawer But the bug is in 3.5 :p

                                  Link Preview Image
                                  - fix delay node in hardcoded network not being initialised correctly… · christophhart/HISE@f9b4ae0

                                  The open source framework for sample based instruments - - fix delay node in hardcoded network not being initialised correctly… · christophhart/HISE@f9b4ae0

                                  favicon

                                  GitHub (github.com)

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

                                  S 1 Reply Last reply Reply Quote 1
                                  • S
                                    Sawer @d.healey
                                    last edited by

                                    @d-healey Yes ahah thanks for pointing it out.
                                    I have successfuly updated to the new version on mac and windows.

                                    But unfortunately, Hise Keep crashing when compiling DSP Network. (Happening on windows for now, will test on mac soon).

                                    Is this happened to anyone of you?

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      Sawer @Sawer
                                      last edited by

                                      @Sawer same Issue on mac, I cannot even export any of the plugins.

                                      When compiling any plugin :
                                      Screenshot 2023-08-14 at 09.54.17.png

                                      When compiling a Dsp Network to DLL:
                                      Screenshot 2023-08-14 at 09.52.12.png

                                      Is there anything I've done wrong in the process of building the new version of Hise?

                                      Will create a new thread soon..

                                      ulrikU 1 Reply Last reply Reply Quote 0
                                      • ulrikU
                                        ulrik @Sawer
                                        last edited by

                                        @Sawer I had similar problems and I deleted the "AdditionalSourceCode" folder inside the project, compiled Networks again and compiled the plugin without any errors.

                                        Hise Develop branch
                                        MacOs 15.3.1, Xcode 16.2
                                        http://musikboden.se

                                        S 2 Replies Last reply Reply Quote 1
                                        • S
                                          Sawer @ulrik
                                          last edited by

                                          @ulrik Will try that asap! thanks

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            Sawer @ulrik
                                            last edited by

                                            @ulrik Hello, unfortunately still did not work for me. Whenever I delete the file, as soon as I open the hise project again it comes back. Real bummer because now in the Timestretch version, my scriptnodes are not working due to a bug ahaha.

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

                                            10

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.2k

                                            Posts