Closed Be-ing closed 2 years ago
Be my guest. The main issue is that it needs to be added to the cmake, which I dont understand/know how to do. So feel free to grab the changes and submit upstream with the needed cmake tweaks to make it build all together, I would appreciate that a lot actually.
Cool. We're working on CMake support upstream to get Rubberband building in vcpkg for Mixxx.
BTW, is there any documentation on how to build and install the rubberband LV2 plugin? manifest.ttl
refers to rubberband.so
.
Ah, now i found out:
./configure
make
rubberband.lv2
directory somewhere in LV2 path (e.g. /usr/local/lib/lv2/
)lib/ladspa-rubberband.so
in there (.../rubberband.lv2/
) but renamed as rubberband.so
Upstream recently switched the build system to Meson.
Upstream Rubberband is dual licensed GPL with proprietary licenses available for purchase. @falkTX would you be okay with giving upstream permission to apply the same license to your changes?
FWIW, I do feel this is different than a clueless company taking over a 20 year old community project, immediately making a bunch of highly questionable moves, and imposing a CLA. Rubberband was almost entirely written by Chris Cannam and his work not only with Rubberband but also QM-DSP and VAMP has been very valuable for many community projects.
You can take my code changes and do whatever you want with them. I basically just converted the ladspa stuff into lv2, it was not even hard work, just menial stuff for converting.
I kinda gave up on rubberband as a plugin though, performance is really subpar.
performance is really subpar
Yeah, we've been looking for alternatives for Mixxx. I tried SBSMS in Tenacity but it sounds much worse than Rubberband and processed slower than real time. I also tried Paulstretch in Tenacity but that only works well at extreme pitch ratios. For DJing the sound quality matters within about +/- 25%, although most DJs use +/- 8% (same as Technics 1200 turntables) or +/- 16%. At those ratios Paulstretch does not sound good. If you know of any other timestretching libraries, please share.
soundtouch is another common one for this, but dont know if it is good or not.
Mixxx already has an option to switch between SoundTouch and Rubberband. SoundTouch does not sound nearly as good as Rubberband but it is way easier on the CPU.
As of Rubberband 2.0.1, there is an LV2 plugin shipped upstream. It is not the same code as the plugin from this fork.
The upstream repo already has the LADSPA plugin code. Perhaps the LV2 plugin should be upstream too? Then the LADSPA plugin may be dropped upstream.