HISE Logo Forum
    • Categories
    • Register
    • Login

    Building an effects VST - Idea on guidance

    Scheduled Pinned Locked Moved General Questions
    18 Posts 6 Posters 580 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.
    • A
      aaronventure @Aetheon
      last edited by

      @Aetheon Faust has a tapestop effect in its library, meaning you can open it up and look how its done.

      https://faustlibraries.grame.fr/libs/demos/#dmtapestop_demo
      https://github.com/grame-cncm/faustlibraries

      In any way, once you reach the limits of ScriptNode, it's time to move into Faust or, if you need memory, SNEX.

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

        Check the buffer stop example in the Snippet Browser, it's basically a tape stop FX written in SNEX.

        1 Reply Last reply Reply Quote 0
        • griffinboyG
          griffinboy @Aetheon
          last edited by

          @Aetheon

          Yep Snex will do it.

          If you need more complex control, you can also create c++ nodes for scriptnode, which will allow you to use juce directly.

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

            Just while we are on the topic of buffers, could anyone assist with a working version of the Recorder Demo from the hise_tutorial.

            I recall this working fine in Scriptnode but the network won't compile to .dll. I have tried solving this myself but my knowledge of C++ is quite limited. Wondering if anyone has developed solutions for creating buffers in Scriptnode and displaying the waveform like in this tutorial.

            griffinboyG 1 Reply Last reply Reply Quote 0
            • griffinboyG
              griffinboy @HISEnberg
              last edited by

              @HISEnberg

              I've not created a neat solution yet sorry.
              I'm working on a bunch of extra nodes for scriptnode.
              Buffers are on my to do list, I'll look at it tomorrow if you can wait : )

              What do you need the buffers to do?
              I've not looked at the recorder demo but I can look tomorrow.

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

                @griffinboy That would be awesome!

                Check out the demo Christoph put together a neat solution, it just wont compile unfortunately (There's some discussion on the forum about it here.

                I don't have a specific use case but there is so much potential with buffering. I've managed to get around it with RNBO but displaying the waveform in the audio recorder node would be a huge plus.

                griffinboyG 1 Reply Last reply Reply Quote 0
                • griffinboyG
                  griffinboy @HISEnberg
                  last edited by griffinboy

                  @HISEnberg

                  Hi again,
                  Apologies for the late reply, I haven't had a proper look at it yet, but tomorrow I do have some time, so I'm likely to create custom c++ node(s) to accomplish what you were after.
                  I'll share with you the result.

                  Progress:

                  I've cloned the behaviour of the Recorder node.
                  Now I shall extend the functionality and make it robust.

                  I'm going to add a sample playback system, and an adjustable playhead. As well as options to overwrite the buffer, and do 'sound on sound' using the buffer, as well as an option modulation output (following the waveform) as well as a circular buffer variant.

                  Do you have any feature requests?

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

                    @griffinboy Cheers that is incredible you have set that up already!

                    Adjustable playhead overwriting was my next recommendation so it's great you are on that already. I am assuming you have managed to link its behaviour with the core.recorder node (for waveform display) and adjustable recorder length? Those are the main features I would personally get the most use of.

                    Using the buffer output as a modulation on another signal would be a fantastic (similar to MaxMsp's lookup. I imagine that is pretty manageable in Scriptnode already.

                    I am not sure I understand circular buffer variant but does that entail several nodes can read and write from the buffer simultaneously?

                    It is really awesome you are compiling so many SNEX nodes for the community by the way, I know I greatly appreciate the work.

                    griffinboyG 1 Reply Last reply Reply Quote 0
                    • griffinboyG
                      griffinboy @HISEnberg
                      last edited by

                      @HISEnberg

                      i've made my own module, forget the recorder node.

                      Circular buffer means that you can record infinitely, and the recording will loop around and start overwriting the start of the recording when it reaches the end of the buffer size.

                      This means you can create programs that constantly record, meaning you can have functionality such as 'save the last minute of recording' Without the user having actually pressed record.

                      I'm still working out how Hise manages the saving of files for the node.

                      This isn't Snex, I went straight to c++ this will be a node, in the same way that the original recorder node was.

                      LindonL 1 Reply Last reply Reply Quote 1
                      • LindonL
                        Lindon @griffinboy
                        last edited by

                        @griffinboy Man I'm looking forward to seeing all this c++ based node work you've been doing... well done.

                        HISE Development for hire.
                        www.channelrobot.com

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

                          Using the buffer output as a modulation on another signal would be a fantastic (similar to MaxMsp's lookup. I imagine that is pretty manageable in Scriptnode already.

                          This functionality is embedded into the standard core.file_player. Thereā€˜s a dedicated playback mode which uses the input buffer as position (try with a ramp before it).

                          Christoph HartC HISEnbergH 2 Replies Last reply Reply Quote 1
                          • Christoph HartC
                            Christoph Hart @Christoph Hart
                            last edited by

                            Docs:

                            Signal Input Mode : An external control signal determines the playback position within the file, allowing for creative manipulation based on signal input. The input signal is mapped to the playback position, so if you want it to play normally, use a ramp generator that generates a signal from 0 to 1 with the period time of the sample length that will map to a default playback of the sample as it would be in Static mode. Of course this is just the easiest application and you can do all kinds of funky things (scratchy, scratchy) going from there.

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

                              @Christoph-Hart That is awesome. I don't have an immediate use case for this but I am sure others will. Just tested it out and it is very scratchy scratchy indeed.

                              I agree with @Lindon too, I am excited to see all of this node work you have been up to @griffinboy . Do you plan to release a GitHub repo with all of these at some point or share via the Snippet Browser, or are these mainly for personal use?

                              griffinboyG 1 Reply Last reply Reply Quote 0
                              • griffinboyG
                                griffinboy @HISEnberg
                                last edited by

                                @HISEnberg

                                A github repo would make sense, I didn't even think of that!
                                I'll probably just make posts whenever I create something new. These are custom nodes and so they can't be shared via snippets, but luckily it's quite simple to import these nodes into fresh projects.
                                Hopefully these will extend scriptnode in a positive way, these are meant to be more indepth modules, and some of them require programming to tweak, but I plan on making it as easy as possible.

                                Things that are currently in development:

                                • Customisable LUFS calculator
                                • Efficient RMS calculator
                                • Two stage autogain module (based on rms + lufs)
                                • Nonlinear Circuit simulation framework (based on WDF and HSIM)
                                • Tape simulation (based on Chow Tape)
                                • Accurate low distortion compressor with auto release
                                • 1:1 Accurate Moog Filter
                                • Efficient Linear phase Multiband with latency compensation between bands.
                                • Personal C++ custom node template

                                Many of these are already done, but I am working to integrate these better with Hise before I release them : )

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

                                  @griffinboy Wow that is awesome work. Excited to see some of these implemented. Let me know once the buffer project is up and running I have a few ideas for it. Does this mean they will operate as nodes in the module tree or nodes within scriptnode?

                                  griffinboyG 2 Replies Last reply Reply Quote 0
                                  • griffinboyG
                                    griffinboy @HISEnberg
                                    last edited by

                                    @HISEnberg

                                    No not nodes in the module tree at the moment.

                                    I do have the capacity to do that but at the moment I'm less interested. I think scriptnode gives you more control.

                                    1 Reply Last reply Reply Quote 0
                                    • griffinboyG
                                      griffinboy @HISEnberg
                                      last edited by griffinboy

                                      @HISEnberg said in Building an effects VST - Idea on guidance:

                                      Let me know once the buffer project is up and running

                                      Sorry about that, it should be done quite soon, I just wanted to make sure it was robust before releasing it. There was a method I was wanting to do for a while, which is to fix the number of channels at runtime, so that the node can support arbitrary channel counts when loaded into the daw.

                                      This poor guy, getting notified for our conversation, I should create a new post haha

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

                                      52

                                      Online

                                      1.7k

                                      Users

                                      11.7k

                                      Topics

                                      101.8k

                                      Posts