Enable effect output controllers and sidechaining
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
There are many LADSPA effects that support port types that LMMS currently can not handle:
* audio output
* audio input (i.e. more than 2 audio inputs, e.g. for sidechaining)
* control output
It would be cool if we could enable those. Some thoughts:
* Control output: This is ideal for LMMS controllers. However, users would lose the overview when each effect adds controllers for all its outputs. Only the outputs the user really needs should be controllers. So I'd suggest something like a right click menu for effects where a user can select "add controller -> choice of all controllers an effect offers"
* Audio output: mostly the same as "Control output". Our `Controller` class currently has the option to be sampleexact or not (`isSampleExact`), which would mean we could use this property here.
* Audio inputs: How do we connect inputs to outputs? Currently, we have a right click on knobs which opens a dialogue to connect the knob to controllers. We could make a right click menu for effects that shows the same dialogue for each audio input.
Another question is how to handle stereo. Especially for audio, you may not always want to add two controllers. It might be cool to treat stereo channels as single channels (in the UI). However, this has two issues:
* LADSPA has no reliable way to tell that two audio ports make a stereo channel
* Maybe there are cases where musicians want to extract single audio channels. Does anyone see a justification for this?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing LMMS’s existing LADSPA port handling and the Controller class, especially isSampleExact, which the issue names. Done would require a settled and implemented approach for effect audio outputs, additional audio inputs, control outputs, controller selection, and stereo handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- audio-video-rtc, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100