I’m a complete novice on building C++ and using external libraries so I don’t even know where to begin. I’m trying to use the Rubberband pitch shifting library. How do I use this in my code using the Projucer? I see there’s a src/ folder for the source and a rubberband/ folder for headers, where do I need to put these? And then how do I reference it in my code?
I’d just use tracktion_engine. That has Rubberband built in with an API you actually enjoy using. And if Rubberband isn’t doing it for you, you can switch to a different implementation.
Looks cool! Is there a way I can include just the time stretcher of tracktion or do I need to link the entire engine with my plugin?
You should note the Tracktion Engine has its own license you will have to pay for if you don’t license your own code as GPL3. Seems a bit overkill to incorporate the Tracktion Engine just for getting easier access to RubberBand.
Honestly, it would be preferable to use less software. I’m still not sure how to include Rubberband in my project though.
Well, if you want to use the library directly in your code, you can store it somewhere on your disk and build a static lib file. Then you can add “rubberband” in the “External libraries to link” field, as well as the Header & Extra Library search paths in the corresponding fields. Hope this helps.
Ok. Where is external libraries to link and header & extra library search paths? In the Projucer I see header search paths and nothing else.
External libraries field is on the Exporter itself. Other 2 fields are on the Debug/Release sections
Can you tell me how to create a lib file on Windows? Much appreciate
I’m going to edit my question to include more detailed instructions for how I did it. I’m going to also add my code for using the library. (Apparently, I can’t edit the original question so I’m going to make a new post later)
Thanks, looking forward to that
Any update? Apologise for my impatience
Yeah, here you go: Guide: How to use Rubberband for pitch shifting in JUCE - JUCE
no code yet cause I need to fix some issues but it should help you get it set up
Thanks! I’ll take a look at it