Every time I pick up LMMS, there's something that puts me off it almost instantly. I think I've managed to put my finger on it this time, and I hope that I can make a constructive suggestion from my analysis of it.

I recently tried to make a song in LMMS, and was pleasantly surprised by how feature-rich it is nowadays. However, when it came down to mixing, I could not get a good sound. Things would be too quiet, or very loud-clippy and it was frustratingly hard to pin down. I still haven't gotten it where I want it. It has a lot to do with value labels, software controllers, sensitivity, and order of operations.

In most DAWs, you can see a lot of parallels to real hardware, and this is because while everybody has a different approach to how they mix, master, or engineer a project, they're all doing it with hardware or software that looks and acts very much the same. Anybody experienced enough in a hardware/analogue-based studio can quickly pick up on a DAW and do the same things they would do on hardware because it looks and feels the same in many ways. It would make LMMS a lot easier to start using if it better simulated a few key things:
  • Peak meters on the mixer that more clearly represent the sound being put out. By this, I mean, like a hardware mixer, the "lights" should be green from -infinitydB to about -30 or -25dB, where they begin to change to yellow up to -0dB, and then from yellow to orange/red up to about +2 or +3dB. Having the "currently selected" channel's peak meter somewhere with a more clear label of where the decibel levels are on the peak meter would help, alternately, having each peak meter in the mixer labeled with some milestones for reference (e.g., -20, -10, -5, -0) would also help. Especially the -0dB mark.
  • The mixer sliders should default to "100%" (aka "1.0") and have a "notch" or other mark denoting "100%" at about 75 or 80 percent up the length of the slider (as opposed to halfway,) and the value should probably just show a percentage, as opposed to a decimal number. This applies on more than just the mixer, in most cases a percentage is easier to understand than a decimal number, though in some cases a decimal number might actually make more sense (e.g., "Number of voices" or "Mutiplier value.")
  • Sliders, knobs, and other manipulable software controllers should move at a much lower sensitivity than the mouse, enabling the user to zoom around a project with their normal mouse speed, but easily maintain fine-tuned control of their various sound values. They should also display in a tooltip the current value when manipulating the controller, so that users can more easily determine the values necessary for their project. (this will be on plugin developers to provide in the instances where the code is not supplied in lmms.)
  • Values displayed should have the measurement unit name attached to them where appropriate (e.g., dB, Hz, ms) It is much easier to work in a DAW when you know what you're currently manipulating and how that relates to things associated with it. (again, where the code is not in lmms, it will rely on plugin devs.)
  • The LMMS master volume at the top of the window should be the last volume control that the signal passes through before going out to the speaker/soundout. The "master" channel in the mixer should be the second-to-last step to the hardware and the last step when exporting to a file. Currently, it seems the last volume control when exporting to file is the master on top, and when changed, it affects how your song sounds when exported. If these two sliders are supposed to perform the same function then the sliders themselves should be inextricably linked so that it is clear that when you manipulate the master volume up top, you are also manipulating the master volume on the mixer and vice-versa.
To sum up: the "master" slider on top of the window should control real playback volume, the "master" slider on the mixer should control volume one step before the one on top and should be the last volume control the signal passes through before exporting to a file; software controllers should move at a lower sensitivity, should have a tooltip with the value as it changes, and should display values with appropriate measurements; the mixer sliders should more clearly simulate how mixer hardware looks in real life, including a line or "notch" where 100% is at; peak meters need to be labelled with a bare minimum of four dB measurements.

I would not be opposed to forking/branching the project and write these changes in myself, but seeing as I only recently started using git and don't know c++ yet, it'd be a while. :lol: