HISE Logo Forum
    • Categories
    • Register
    • Login

    Scriptnode pitch-shift a signal

    Scheduled Pinned Locked Moved General Questions
    48 Posts 11 Posters 3.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.
    • Christoph HartC
      Christoph Hart @aaronventure
      last edited by Christoph Hart

      @aaronventure No I just took the timestretching algorithm that's already in the sampler and made it a realtime effect that works on any audio signal.

      d.healeyD 1 Reply Last reply Reply Quote 1
      • d.healeyD
        d.healey @Christoph Hart
        last edited by

        @Christoph-Hart Does this mean we can have a pitch LFO in effects plugins now?

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

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

          @Christoph-Hart well the stftPitchShift looks pretty good - and quick and has a MIT license...

          HISE Development for hire.
          www.channelrobot.com

          P 1 Reply Last reply Reply Quote 0
          • P
            ps @Lindon
            last edited by

            @Lindon @Christoph-Hart
            stftPitchShift is def the best out there I could find - it can do polyphonic and also formant shift.
            2048samples latency is normal for pitch shifting audio (it's also normal that low signals sound bad when pitch shifted in those kind of plugins)
            I'd love to see that implemented as well :)

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

              @ps I played around with it yesterday but it always sounded very cheap. I‘m definitely doing something wrong maybe I‘ll try their JUCE example and go from there.

              P 2 Replies Last reply Reply Quote 1
              • Christoph HartC
                Christoph Hart @d.healey
                last edited by

                @d-healey said in Scriptnode pitch-shift a signal:

                @Christoph-Hart Does this mean we can have a pitch LFO in effects plugins now?

                A pitch lfo can be made with a simple delay buffer that modulates the delay time (a basic chorus), a pitchshifter would be overkill.

                1 Reply Last reply Reply Quote 1
                • P
                  ps @Christoph Hart
                  last edited by

                  @Christoph-Hart did you align the pitch shift with the timbre shift and set a timbre frequency to around 2.5 - 3ms?

                  if the formants are not shifted together with the signal it will sound strange :)

                  1 Reply Last reply Reply Quote 0
                  • P
                    ps @Christoph Hart
                    last edited by

                    @Christoph-Hart can you point me in the direction how you included the library? i fail drastically somehow.

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

                      @ps I added a third party node, included all files in there and then fought an epic battle until all compile errors went away.

                      You need to use a replacement for std::span (I ended up with tcb::span) as this is a C++20 feature.

                      However I'm really not convinced about the quality here - the CPU usage is 2-3 times as high as signalsmith and the sound is super bad. The latency is a bit better, but that's really the only thing that this library has going for them.

                      Also the coding style is super counterintuitive - I literally had to copy the entire plugin code into the node and write a wrapper because I couldn't figure out how it expects the different buffer sizes to work.

                      P 1 Reply Last reply Reply Quote 0
                      • P
                        ps @Christoph Hart
                        last edited by ps

                        @Christoph-Hart can you share the node template with me? I'm doing something wrong - I get 2000% cpu even though I'm pretty confident I do the processing in buffers haha

                        btw in general It would be interesting to see how you write a wrapper around a juce plugin code and integrate it as node :)

                        Christoph HartC 1 Reply Last reply Reply Quote -1
                        • Christoph HartC
                          Christoph Hart @ps
                          last edited by

                          @ps Are you using the debug build? If you don't build the release configuration it also maxes out my CPU here with a single instance.

                          btw in general It would be interesting to see how you write a wrapper around a juce plugin code and integrate it as node :)

                          Sure, here you go:

                          ThirdParty.zip

                          This is definitely not anything I'm proud of - I just want to get this thing to work so the coding style is all over the place. If this would make it into HISE it would require a almost 100% rewrite including swapping out whatever weird thing they are using for the FFT with the proper libraries (IPP / vDSP) etc, but I'm rather sceptical at the moment that it's worth the hassle.

                          You might have to set the USE_JUCE_PROCESSOR preprocessor to true and manually add a few JUCE modules to the DLL Projucer project (I think audio_processor & hi_streaming are missing).

                          P 2 Replies Last reply Reply Quote 0
                          • P
                            ps @Christoph Hart
                            last edited by

                            @Christoph-Hart haha thank you - I will have a completely non-judgmental look :)

                            1 Reply Last reply Reply Quote 0
                            • P
                              ps @Christoph Hart
                              last edited by

                              @Christoph-Hart one last thing - what is the magic trick to make it find the files referencing each other?

                              '../stftPitchShift-main/cpp\StftPitchShift/RFFT.h' file not found

                              #include "../stftPitchShift-main/cpp\StftPitchShift/RFFT.h"

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

                                @ps There's a backslash in the path (after cpp. Try if changint this to a normal path helps, otherwise just make sure that the relative paths from wherever you call that works.

                                P 1 Reply Last reply Reply Quote 0
                                • P
                                  ps @Christoph Hart
                                  last edited by

                                  @Christoph-Hart ok i managed to compile it - and if this is what you have heard I understand now why you are not impressed. I downloaded the vst and tested it and it sounds pretty different and has also a completely different performance. I'll do some digging.

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

                                  44

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  101.8k

                                  Posts