LMMS / LMMS/lmms

Enable effect output controllers and sidechaining

Open
#4,337 1 comment 0 reactions 0 assignees View on GitHub
core enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.