Replace Amplifier (Mono) and Amplifier (Stereo) with native Amplifier
- 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