LMMS / LMMS/lmms

Replace Amplifier (Mono) and Amplifier (Stereo) with native Amplifier

Open
#5,597 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

There's no good reason to have four separate amplifier effects built into LMMS. It's confusing to new users, contributes to our un-browseable number of effects plugins, and takes time to pick the specific amplifier that you want.

From what I can tell:
- Amplifier (Mono) is equivalent to turning the volume knob in our native amplifier, with the exception that it ranges [0, 10] instead of [0%, 200%]
- Amplifier (Stereo) is equivalent to turning the left and right knobs in our native amplifier, once again with the exception of range
- Simple Amplifier has left and right channel knobs that can be linked (or not), but it's amplification is selected in dB rather than a percentage/multiplier. I think this should eventually be merged into the native plugin as well, but it might take more work than the above two?

So the solution I propose is:
- Increase the native amplifier's range in some manner
- Increase knob ranges to [0%, %1000] or
- Add a "multiply" knob ranging [0, 10]
- Upgrade native amplifier instances in projects
- Divide knob positions by 5 (excepting pan) or
- Make multiply knob default to 1
- Replace Amplifier (Mono) instances with Amplifier instances with an adjusted volume knob
- Replace Amplifier (Stereo) instances with Amplifier instances with adjusted left and right knobs
- Remove Amplifier (Mono) and Amplifier (Stereo) from the effects list

One potential downside to this is that the Amplifier (Stereo) may be better suited to >2 channels than the native Amplifier is. However, since LMMS lacks support for >2 channels at the moment (AFAIK), I don't think this is a big deal. I would assume that making the native Amplifier support more channels is a negligible task compared to other work required for surround support.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue does not name files, tests, or entry points. Begin by locating the native Amplifier, Amplifier (Mono), and Amplifier (Stereo) implementations and the project-upgrade path; done means preserving existing project behavior, consolidating the effects, and removing the redundant plugins from the effects list.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.