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

Upgrade Calf plugins to 0.90 #3987

Merged
merged 26 commits into from
Apr 16, 2018
Merged

Upgrade Calf plugins to 0.90 #3987

merged 26 commits into from
Apr 16, 2018

Conversation

tresf
Copy link
Member

@tresf tresf commented Nov 19, 2017

The calf plugins we ship are very outdated (~0.18) yet 0.90 is available. This PR adds the latest.

Download

#3987 (comment)

Or to compile locally...

git checkout -b tresf-veal master
git pull https://github.com/tresf/lmms.git veal
git submodule deinit -f plugins/LadspaEffect/calf/veal
git submodule update --init --recursive plugins/LadspaEffect/calf/veal

Background

Calf has removed support for LADSPA, however generous work from @JohannesLorenz, now LADSPA support on 0.90 is finally possible.

The efforts are currently living in tresf/veal on a branch called veal_with_0.90. These changes won't ever show in this PR, but will instead be in a separate PR against lmms/veal once ready (then we update the submodule here, then we merge), but since few people will read that, I'm posting the high-level changes here.

What's Changed?

Below is a list of what's removed and what's added in Calf 0.90. Note, a removed plugin may be due to a name change. We'll know more after a proper investigation.

  • WONTFIX - Input gains MIN: 0 changed to MIN: 0.01625
Plugin
(new in bold)
Sound Tested
(new premarked)
Notes
Calf Analyzer ☑️
Calf Bass Enhancer
Calf Compensation Delay Line ☑️
Calf Compressor New "Mix" knob
Calf Crusher ☑️
Calf Deesser
Calf Emphasis ☑️
Calf Equalizer 12 Band Display issues (fixed)
Calf Equalizer 30 Band ☑️
Calf Equalizer 5 Band Same display issues as 12 band (fixed)
Calf Equalizer 8 Band Same display issues as 12 band (fixed)
Calf Exciter
Calf Filter New "Bypass" checkbox, "Input Gain" and "Output Gain" knobs
Calf Filterclavier New "Bypass" checkbox, "Input Gain" and "Output Gain" knobs
Calf Flanger Sound Ok. Defaults changed! New "Active", "LFO" checkboxes, "Input Gain" and "Output Gain" knobs
Calf Gate
Calf Haas Stereo Enhancer ☑️
Calf Limiter ☑️ Segfaults LMMS (fixed)
Calf Mono Compressor ☑️
Calf MultiChorus Sound Ok. Defaults changed! New "Active", "LFO" checkboxes, "Input Gain" and "Output Gain" knobs
Calf Multi Spread ☑️
Calf Multiband Compressor S's & Q's removed (wontfix)
Calf Multiband Enhancer ☑️
Calf Multiband Gate S's & Q's removed (wontfix), similar UI changes as Calf Multiband Compressor (fixed)
Calf Multiband Limiter S's & Q's removed (wontfix)
Calf Phaser New "Active", "LFO" checkboxes, "Input Gain" and "Output Gain" knobs
Calf Pulsator More knobs, L&R was split, needs remapping
Calf Reverb More knobs, but they map properly.
Calf Reverse Delay ☑️
Calf Ring Modulator ☑️
Calf Rotary Speaker ☑️ Output Gain is 0 by default (fixed)
Calf Saturator Two new LEDs, Active Pre, Active Post
Calf Sidechain Compressor ⚠️ "S/C-Route" switched from knob to LED. New "Mix" knob. L/R sidechaining is no longer possible.
Calf Sidechain Gate ⚠️ "S/C-Route" switched from knob to LED. L/R sidechaining is no longer possible.
Calf Stereo Tools ⚠️ New knobs "S/C Level", "Stereo Phase". "Widener" renamed "Stereo Base" and allows negatives now. M-Level and S-Level knobs won't upgrade. See #3987 (comment).
Calf Tape Simulator ☑️
Calf Transient Designer ☑️
Calf Vintage Delay More knobs, needs remapping

@qnebra
Copy link

qnebra commented Nov 25, 2017

I hate adding @tresf repository in Gitkraken, because this cause some errors and troubles with infinite tries of define repository version and Gitkraken had infite loop of open repository. This bug is in program itself, because when I am doing add remote repository and merge commits via git command line everything works perfect.

These changes looks very good for me, I think we should move to latest standards in lmms.

@tresf
Copy link
Member Author

tresf commented Nov 25, 2017

I think we should move to latest standards in lmms [... because ... ] Gitkraken

I'm not sure how this is relevant. We will merge this once we get help porting 0.4 to 0.9. Complaints about 3rd party tools should not be an influence nor relevant in the decision to merge. Submodules suck, especially when dealing with non-default branches. Master has a cmake helper script to deal with this, which is what people should be using/reporting complaints against.

@Umcaruje
Copy link
Member

- Calf Sidechain Compressor

Huh, so how do we sidechain now?

@qnebra
Copy link

qnebra commented Nov 26, 2017

My previous answer has a two completly separated topics, without any joints between them.

@tresf
Copy link
Member Author

tresf commented Nov 26, 2017

@Umcaruje the codebase still contains it by name so I'm not sure if it was removed or if we just no longer have a way to load in in 0.90. @JohannesLorenz would be the person to spearhead that investigation. I would also recommend looking for it in the LADSPA Browser's incompatible plugins listing.

@JohannesLorenz
Copy link
Contributor

@tresf You can update your list:

  • MultiChorus -> Multi Chorus
  • Calf Multiband Compressor -> It's still there (typo?)
  • Calf Sidechain Compressor + Gate -> Are still there, but require a small change with the way ports are counted for LMMS to "allow" them. I'll have to check how to solve it.

@tresf
Copy link
Member Author

tresf commented Nov 28, 2017

MultiChorus -> Multi Chorus

It needs to be tested though. Can you confirm it still loads in 0.90 with a project/preset created with 0.40? presets/TripleOscillator/DirtyReece seems to use this.

Calf Multiband Compressor -> It's still there (typo?)

Fixed.

Calf Sidechain Compressor + Gate -> Are still there, but require a small change with the way ports are counted for LMMS to "allow" them. I'll have to check how to solve it.

👍

@tresf
Copy link
Member Author

tresf commented Nov 28, 2017

MultiChorus seems to be used by presets/TripleOscillator/DirtyReece. That should be a valid test.

@JohannesLorenz
Copy link
Contributor

@tresf Here are some updates:

  • MultiChorus: No Bug, No Fix (Only the displayed name changed, the internal is unchanged)
  • Sidechain effects: Are now available with d2943d34

More TODOs:

  • Rename calf to veal in the XML savefiles (I have prepared a patch for it), or rename veal.so to calf.so

Optional:

  • Calf has a vocoder, but it has 4 non-optional input ports. We could make it a mono vocoder, if there's interest in that.
    • Contra: It would increase the merge complexity to original calf
    • Contra: We already have the swh adapted vocoder
    • Pro: It might sound good

@tresf
Copy link
Member Author

tresf commented Dec 2, 2017

More TODOs:

Rename calf to veal in the XML savefiles (I have prepared a patch for it), or rename veal.so to calf.so

This has already been done on master via 58d117e#diff-cea4bcf0045758a3134d437ede509c7c

MultiChorus: No Bug, No Fix (Only the displayed name changed, the internal is unchanged)

👍

Sidechain effects: Are now available with d2943d34

Thanks, I'll pull in the latest and update the list.

Calf vocoder

Sure, if it's not too much work and does't change too much of the code.

@JohannesLorenz this is great news, thanks.

@tresf
Copy link
Member Author

tresf commented Dec 2, 2017

@JohannesLorenz, synced in your changes as well as updated against the state of master branch. You can snag it using git reset --hard 2e9f98d. Make sure to back up any changes first.

@tresf
Copy link
Member Author

tresf commented Dec 2, 2017

Testing appreciated, here's an appimage for Linux users: https://github.com/tresf/lmms/releases/download/vmaster/lmms-1.2.0-rc3.319-linux-x86_64.AppImage

@qnebra
Copy link

qnebra commented Dec 3, 2017

Thanks for AppImage.

@JohannesLorenz
Copy link
Contributor

Three more commits, one being a merge from CALF's master
(no further parameter changes), another one fixing a lot of parameters.

There were a few effects where we could not keep compatibility
for all parameters (@tresf: Can you please mark this in the table?):

  • All sidechain effects: L/R sidechaining is not possible anymore.
    • Reason: CALF does not provide code for this anymore.
    • Fix: In one of the next LMMS versions, we will hopefully allow
      side-inputs for effects. Until then, there is no fix. We're really sorry! 😓
  • StereoTools: Multiple knobs, mostly S-Level and M-Level.
    • Reason: Old effect was either buggy or it did behave significantly
      different.
    • Fix: None. 😐

Can we start testing again?

@tresf tresf removed the in progress label Apr 16, 2018
@tresf
Copy link
Member Author

tresf commented Apr 16, 2018

No one seems interested in testing this further than @JohannesLorenz and myself have so it will have to be tested from master. Calf is widely used so minor regressions should be expected. Merging. Thanks @JohannesLorenz terrific work on this one. @JohannesLorenz brought back LADSPAv1 support and wrote some excellent upgrade calls.

@tresf tresf merged commit ae0dd21 into LMMS:master Apr 16, 2018
@tresf tresf deleted the veal branch April 20, 2018 17:26
@karmux
Copy link
Contributor

karmux commented Apr 29, 2018

How to do sidechaining at the moment with Veal?
Previously with Calf I connected the Peak Controller of some channel to the S/C Level knob of SC Compression but S/C Level doesn't change sound at all anymore. I tried with all SC Mode values. Tried with many combinations of other knobs as well.

@JohannesLorenz
Copy link
Contributor

@karmux Unfortunatelly, CALF has given up the support for L/R chaining and now only supports chaining from 2 channels on 2 channels (mode 1). As LMMS does not support more than 2 channels per effect, this is currently not usable. Hopefully, we'll enable sidechaining for effects (i.e. more than 2 input channels) with 1.3.0 aswell. Otherwise, there will be no replacement for this effect in CALF.

You can also use mode 0, meaning that the signal sidechains itself, but this is probably not what you'd like to do.

@tresf
Copy link
Member Author

tresf commented Apr 30, 2018

He's not talking about L/R panning he's talking about the SC knob which should still be fully supported; If not, it needs to be fixed.

@karmux
Copy link
Contributor

karmux commented Apr 30, 2018

Yes I didn't talk about L/R chaining but basic kick and bass sidechaining which is broken at the moment.

@JohannesLorenz
Copy link
Contributor

Many thanks for the info. I'll try to debug it this week.

@karmux
Copy link
Contributor

karmux commented May 13, 2018

Calf Sidechain Gate seems to be working.
Calf Sidechain Limiter crashes LMMS when adding it in most of my projects and if not then when pressing play or when previewing samples (if added to master channel).

@JohannesLorenz
Copy link
Contributor

@karmux Thanks. Sorry, I forgot about your previous comment. I'll take a look at everything this week.

@JohannesLorenz
Copy link
Contributor

@karmux Both issues were fixed in CALF. I merged into master and pushed, and it seems to be working there.

Many thanks also to @boomshop for fixing these issues instantly!

@karmux
Copy link
Contributor

karmux commented May 20, 2018

@JohannesLorenz and @boomshop, many thanks to you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants