Scriptnode pitch-shift a signal
- 
 @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. 
- 
 @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. 
- 
 @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 :) 
- 
 @Christoph-Hart can you point me in the direction how you included the library? i fail drastically somehow. 
- 
 @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 withtcb::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. 
- 
 @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 :) 
- 
 @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: 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_PROCESSORpreprocessor to true and manually add a few JUCE modules to the DLL Projucer project (I think audio_processor & hi_streaming are missing).
- 
 @Christoph-Hart haha thank you - I will have a completely non-judgmental look :) 
- 
 @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" 
- 
 @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.
- 
 @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. 
- 
 @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? 
- 
 @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. 

