HISE Logo Forum
    • Categories
    • Register
    • Login

    Scriptnode pitch-shift a signal

    Scheduled Pinned Locked Moved General Questions
    50 Posts 11 Posters 8.1k 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.
    • 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.

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

                        @ps any news on implementing this library? I'm failing with all the includes and when I finally get them working I'm hitting the C++20 incompatibility issue.
                        So I started modifying it to use C++17 but here I'm definitely failing. And it seems to many things to modify anyway, doesn't smell good...
                        So if someone has a more straight solution I'd take it!

                        Also, I'm into the signalsmith stretch, but I can't figure how to make that formants compensation to work... Is anybody having an idea?

                        Hise made me an F5 dude, browser just suffers...

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

                          @ustk I’m afraid I can‘t help here anymore - at some point I ended up writing a completely own JUCE wrapper inspired by Christophs work because I needed JUCE 8 especially for the graphics but also neural stuff - so i‘m working with c++ 20 and juce 8 for a bit now. But in general it is always possible to undefine something only in the c++ node and also you can look at what is throwing the error and look at breaking changes between the c++ standards and/or JUCE versions and revert the methods back.

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

                          27

                          Online

                          2.0k

                          Users

                          12.7k

                          Topics

                          110.4k

                          Posts