Description
The CAPS LADSPA plugins -- or more properly known in LMMS as "C*
", are authored by Tim Goetze and they have changed considerably over the years. The current version as of writing this is 0.9.24.
To remain consistent with our goal to stop bundling 3rd party source code with LMMS, we're faced with a decision about CAPS...
To quote @tobydox about breaking user-space:
"[...] We have been shipping CAPS 0.4.x for years now and the available plugins and their behaviour remained stable for the users all the time. If you would depend on https://packages.debian.org/jessie/caps instead, lots of effects would be missing when loading a project as the available plugins inside CAPS have changed significantly between 0.4.x and 0.9.x. If you'd simply rename caps.so to caps-lmms.so no plugins would be loaded at all as the library base name (caps) is saved in the project file (internally we load caps.so, caps.dll or caps.dylib depending on the platform). If we (LMMS developers) decide to switch to 0.9.x we will implement an according upgrade mechanism internally (and probably even still provide CAPS 0.4.x in a separate library) so things don't break for the user. -Toby"
At some point, we have to look forward and not backward though. Moddevices has a clone of CAPS that we can safely submodule from once LV2 is adopted but that's a little ways out, so we'd just be using it as a reliable and maintained LADSPAv1 mirror for now.
I've done a poll on Discord about migrating over to 0.9.24 and so far, the team seems OK with breaking user-space in lieu of an updated library.
Missing Plugins (edit me!):
C* Clip
C* Plate2x2
(upgraded toC* PlateX2
via tresf@5bee27c)C* Eq
(upgraded toC* Eq10
via tresf@5bee27c)
The way I see it is we have four options...
- 👍 Do nothing, keep CAPS 0.4.x
- 😄 Ditch 0.4.x, upgrade to 0.9.24, break user-space
- 🎉 Keep both. Create a CAPS fork in GitHub with 0.4 branch as well as master branch, build both, hope no conflicts arrise.
- ❤️ Use 0.9.24, but try to hack in some form of compatibility (leverage a 3rd party plugin instead, recommend different plugin, etc).
Note: If you're on mobile, switch page to Desktop mode to tap the emojis.
From a code maintenance perspective, I find number 2 to be the only long-term option, but I wanted to create an open dialog on this. Some have shared thoughts on Discord, but please feel free to post them here as well. GitHub is easier to come back to for a final decision.