Connecting Rubberband Library for use in HISE
-
@parabuh The C++ template is somewhat of a guide as it gives you all methods you need to implement, the rest (how to actually call your library methods) is specific to every library.
Using it in HISE is as simple as exporting the DLL then it will show up as node (or item in the Hardcoded FX modules) the next time you start HISE.
-
@Christoph-Hart I attempted to do this by adding a path to the compiled rubberband.dylib in the "external libraries to link" section of the auto generated projucer file, and my node contains a #include to the header where the API methods are declared. Let's see what happens when I include the .cpp....
-
@Christoph-Hart this resulted in an error:
Reference to 'Point' is ambiguous
seemingly because there is a juce::Point<ValueType> class and also a macOS defined Point class. I'm going to dig deeper into what's actually happening when I'm building/linking these libraries. This is at the edge of my C++ experience.
-
@langermarc19 You might need to swap the order of includes so that the rubber band library is included before the JuceHeader.h file
https://forum.juce.com/t/reference-to-point-is-ambiguous/24884/8
-
This post is deleted! -
@langermarc19 Did you ever manage to get this working?
-
@DanH I got it slightly working but not really a while ago. However since Christoph implemented pitch/time stretching recently I haven't looked into it any further.
-
@d-healey is there pitch shifting? I'm not after time stretching for this product. I've used the Faust one but it's not quite good enough. It's for Scriptnode.
-
-
@d-healey Yep not what I'm after for this but thanks (unless it can be repurposed for SN?)
-
-
@d-healey so to be as clear as we can:
With time stretching on...
- I have a little tune in C Major, it lasts a bar, I pitch it up to E, and it still lasts a bar...?
-
@Lindon That's the idea
-
@d-healey so where are the pitch options? Can only see the timestretching options in the sampler voice settings
-
@DanH just enable timestretching and add a pitch modulator.
-
@Christoph-Hart Ok so this is like a breaking change if we want to add in time stretching to an existing project which also uses pitch modulations?
-
@DanH no, you just can't use "normal" pitch modulation when timestretching is enabled for the given sampler module.
-
@Christoph-Hart Ok thanks :)
But for real-time pitch shifting this algo isn't implemented in Scriptnode is it?
-
@DanH there's a stretch player node IIRC.
Oh, yeah realtime will never work, the latency is something like 100ms.
-
@Christoph-Hart you mean the latency in this algo? I'll see if I can get rubberband up and running in that case