Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrading CAPS LADSPA Plugins #3979

Closed
tresf opened this issue Nov 17, 2017 · 6 comments
Closed

Upgrading CAPS LADSPA Plugins #3979

tresf opened this issue Nov 17, 2017 · 6 comments
Labels

Comments

@tresf
Copy link
Member

tresf commented Nov 17, 2017

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.

Current examples:
image

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!):

The way I see it is we have four options...

  1. 👍 Do nothing, keep CAPS 0.4.x
  2. 😄 Ditch 0.4.x, upgrade to 0.9.24, break user-space
  3. 🎉 Keep both. Create a CAPS fork in GitHub with 0.4 branch as well as master branch, build both, hope no conflicts arrise.
  4. ❤️ 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.

@tresf tresf added the poll label Nov 17, 2017
@StakeoutPunch
Copy link

😄
New is good, people requiring the old plugin versions can use LMMS versions that contain them imo

@musikBear
Copy link

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.

👍
Breaking compatibility is the worst thing any project can do. just saying
Personally, i would definitively miss c*Clip

@StakeoutPunch
Copy link

StakeoutPunch commented Nov 19, 2017

Personally, i would definitively miss c*Clip

c*clip was renamed to c*saturate.

@tresf
Copy link
Member Author

tresf commented Nov 19, 2017

Here's an exhaustive list of the plugins.

Note, I've already mapped:

0.4 0.9
AmpIII --
AmpIV --
AmpV --
AmpVTS AmpVTS
AutoWah --
  AutoFilter
CabinetI --
CabinetII --
  CabinetIII
  CabinetIV
ChorusI ChorusI
ChorusII --
Clip --
Compress Compress
  CompressX2
Eq --
  Eq10
Eq2x2 --
  Eq10x2
  Eq4p
  EqFA4p
Narrower Narrower
  Noisegate
PhaserI --
PhaserII PhaserII
Plate2x2 --
  PlateX2
  Saturate
  Spice
  SpiceX2
PreampIII --
PreampIV --
SweepVFI --
SweepVFII --
ToneStack ToneStack
ToneStackLT --

@tresf
Copy link
Member Author

tresf commented Dec 1, 2017

I'm going to open a PR for this and close this as a duplicate. I'll move the compat chart over as well.

Voting is closed. The consensus is to upgrade. Not a single person voted to keep the old version around.

0 people voted to keep old version.
7 people voted for blindly breaking compat.
2 people voted for keeping old and new bundled separately
2 person voted to upgrade but hack in some compat logic (I vote this option too).

So at this point upgrading is happening. I'm going to aim to maintain as much backwards compat as possible within reasonable effort. @JohannesLorenz this is similar to the CALF upgrades, so any help here in regards to mapping is appreciated as well.

@tresf
Copy link
Member Author

tresf commented Dec 1, 2017

Migrated to a PR #4027.

@tresf tresf closed this as completed Dec 1, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants