Skip to content

Fix VolumeKnob and tooltip bugs#8359

Open
messmerd wants to merge 13 commits into
LMMS:masterfrom
messmerd:fix-volume-knob-and-fader-regressions
Open

Fix VolumeKnob and tooltip bugs#8359
messmerd wants to merge 13 commits into
LMMS:masterfrom
messmerd:fix-volume-knob-and-fader-regressions

Conversation

@messmerd
Copy link
Copy Markdown
Member

@messmerd messmerd commented Apr 20, 2026

Bugs fixed by this PR:

  1. Doubled tooltips on some Knobs (see #8358)
  2. No dynamic floating text when dragging a Fader (regression from #8253)
  3. Volume knobs displaying their units as "dBFS%" rather than just "dBFS" (regression from #8253)
  4. Incorrect dBFS value in the dynamic floating text for volume knobs of the Delay and Flanger plugins
  5. Incorrect dBFS values in the "Set value" dialog box for volume knobs of the Delay, Dynamics Processor, Flanger, and Wave Shaper plugins
  6. Missing "%" unit in the context menu for Vibed's volume knobs
  7. Incorrect handling of volume knobs for models that support negative amplitudes (currently only Flanger's feedback amount knob)

For (1), I reworked how static tooltips work in FloatModelEditorBase. Rather than use QWidget's tooltips, it shadows the tooltip methods from QWidget and redirects them to the existing SimpleTextFloat-based system.

Supporting both "static" and "dynamic" tooltips required some improvements to keep better track of user interactions with the Knobs. There was an existing m_buttonPressed boolean, but this was insufficient, so I converted it into a new InteractionType enum for keeping track of the user interaction state.

See the "Expected Behaviour" section of the bug report for an explanation of how it works now from the user's perspective.

Fixes #8358

LOMM, Compressor, FreeBoy and other plugins have Knobs with both normal
static tooltips (set with setToolTip()) which provide a description of
the Knob's function as well as dynamic floating text showing the model's
current value.

There was a regression causing both of these types of tooltips to be
displayed at the same time. This commit fixes it.
@bratpeki bratpeki self-assigned this Apr 20, 2026
Comment thread src/gui/widgets/SimpleTextFloat.cpp
Comment thread src/gui/widgets/FloatModelEditorBase.cpp Outdated
Comment thread src/gui/widgets/FloatModelEditorBase.cpp Outdated
Comment thread src/gui/widgets/FloatModelEditorBase.cpp
Comment thread plugins/Watsyn/Watsyn.cpp Outdated
Comment thread plugins/Delay/DelayControlsDialog.cpp
@bratpeki bratpeki added the needs testing This pull request needs more testing label Apr 24, 2026
Copy link
Copy Markdown
Member

@bratpeki bratpeki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved for code. Still needs testing.

@extern-stat
Copy link
Copy Markdown
Contributor

I tested this PR and it fixes the 3 regressions listed above, but it introduces a new bug in volume knobs where the context menu shows the value as a percentage but with the dbFS unit:
image

For comparison, this is what it looks like on master:
image

@messmerd messmerd added the bug label May 2, 2026
@messmerd
Copy link
Copy Markdown
Member Author

@extern-stat In trying to fix that issue, I realized that parameter value-to-text conversions are reimplemented in multiple places and in inconsistent ways, so a proper fix for that issue (and others) will require both an extensive refactoring and improvements to our VST implementation. I wrote about it here: #8379.

For this PR, I'll try to fix the issue you spotted in a simple yet unsatisfactory way which will get us back to the master branch status quo where volume knobs display their value in dBFS for the tooltip and in a percentage for the context menu. What we really want is for it to display the value in dBFS everywhere, but that's what will require a refactor, so it's best to leave it for a future PR.

- Fix context menu unit regression
- Fix dBFS value displayed by volume knobs in Delay and Flanger plugins
- Fix incorrect dBFS values in the "Set value" dialog box for volume
knobs in the Delay, Dynamics Processor, Flanger, and Wave Shaper plugins
- Fix units in Vibed's volume knob context menus
- Support negative amplitude volume knobs like the one in the Flanger
plugin
- Add sanity checks for issues with VolumeKnob's model
- Add
@messmerd
Copy link
Copy Markdown
Member Author

@extern-stat The regression you found has been fixed in d4f12fd.

While fixing it, I also discovered and fixed several other issues with volume knobs - see the commit message for more information.

@messmerd messmerd changed the title Fix tooltip regressions Fix VolumeKnob and tooltip bugs May 12, 2026
@extern-stat
Copy link
Copy Markdown
Contributor

@messmerd I tested the changes in your latest commit and they work well; the only issue I found was that Vibed's volume knob doesn't show a unit in its context menu:
image

@messmerd
Copy link
Copy Markdown
Member Author

I tested the changes in your latest commit and they work well; the only issue I found was that Vibed's volume knob doesn't show a unit in its context menu

Thanks for testing! You're right, that was an oversight on my part. It should be fixed now.

extern-stat added a commit to extern-stat/lmms that referenced this pull request May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug needs testing This pull request needs more testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Two tooltips are shown for some Knobs

3 participants