Skip to content

Change Freeboy's tooltips#8045

Open
Gregaras wants to merge 3 commits into
LMMS:masterfrom
Gregaras:master
Open

Change Freeboy's tooltips#8045
Gregaras wants to merge 3 commits into
LMMS:masterfrom
Gregaras:master

Conversation

@Gregaras
Copy link
Copy Markdown
Contributor

@Gregaras Gregaras commented Aug 21, 2025

Fixes #8043

Video after the changes (only the tooltips were changed and not how the instrument works):

video.webm

Video before the changes:

video.webm

What I did was:

  • Removed double tooltips
  • Edited the existing tooltips according to rules:
    • Called each oscillator an oscillator, not a channel. For example: square oscillator instead of square channel
    • Each pair of switches (channel) mutes/unmutes each oscillator. For example: 1st pair of switches or channel is for SO1 (square oscillator 1), not for the left channel of SO2 and right channel of SO1 or whatever.
    • Named the tooltips of switches in a way that suggests that oscillators connect to them (to channels), not the other way. For example: SO1 to Channel 1 (Left) instead of Channel 1 to SO1 (Left)
    • LVol and RVol are instrument volume knobs, so the tooltips say Main volume

I assume the code needs even more changes, like renaming the variables/settings, changing LVol and RVol (Main volume) knob functionality so they actually control the volume of left and right channels, perhaps swaping ch3 and ch4 switch pairs so they are in the same order as the oscillators (bottom oscillator connected to the bottom (fourth) switch pair), maybe even labelling the switch pairs as oscillators instead of channels (SO1, SO2, NO, WPO instead of ch1, ch2, ch3, ch4).

Copy link
Copy Markdown
Contributor Author

@Gregaras Gregaras left a comment

Choose a reason for hiding this comment

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

Forgot to change channel names (left/right) in the tooltips to match the knobs aaf50cd

@bratpeki
Copy link
Copy Markdown
Member

I would love to test this, but I never use Freeboy, so I don't know what those labels are saying, why that's wrong, and why this is the fix. Could you help me with that?

@Gregaras
Copy link
Copy Markdown
Contributor Author

Gregaras commented Aug 24, 2025

I would love to test this, but I never use Freeboy, so I don't know what those labels are saying, why that's wrong, and why this is the fix. Could you help me with that?

Maybe this image could give some explanation:

freeboy

It is how I see the instrument and I think it's correct. SO1 is connected to the first row (ch1) of buttons (eight buttons at the top right corner), SO2 to the second one (ch2), WPO to the third (ch3) and NO to the fourth one (ch4). They do mute/unmute left/right channels of each oscillator. Main controls do control the volume/bass/treble levels of the entire instrument.
Previous tooltips/labels didn't make any sense to me.
In the videos you can see that I hover the mouse over the left/right channel buttons and then over the volume control knob of each oscillator to show the labels. I switch on and off the left/right channel buttons and twist the volume knobs in the first video (after the changes) to show how the instrument works and give some clue why I had to edit the labels.

@messmerd
Copy link
Copy Markdown
Member

messmerd commented Sep 5, 2025

I think calling each oscillator by two different names (i.e. "Wave pattern oscillator (WPO)" and "Channel 4") only creates confusion. Referring to them by channel numbers isn't as helpful, so I'd prefer if we ditched those names.

Correct me if I'm wrong, but the switches just enable/disable the oscillators, right? But the current wording makes it sound like they are routing one thing to something else.

And the names/acronyms used for the oscillators is uncommon compared to other Game Boy audio software:

  • Furnace uses "Pulse 1", "Pulse 2", "Wavetable" and "Noise".
  • Deflemask uses "SQ1", "SQ2", "WAVE", and "NOISE".
  • LSDJ uses "PU1", "PU2", "WAV", and "NOI".

@Gregaras
Copy link
Copy Markdown
Contributor Author

Gregaras commented Sep 5, 2025

I think calling each oscillator by two different names (i.e. "Wave pattern oscillator (WPO)" and "Channel 4") only creates confusion. Referring to them by channel numbers isn't as helpful, so I'd prefer if we ditched those names.

Yeah, that's what I meant when I told:

maybe even labelling the switch pairs as oscillators instead of channels (SO1, SO2, NO, WPO instead of ch1, ch2, ch3, ch4).

Correct me if I'm wrong, but the switches just enable/disable the oscillators, right?

It seems that they do, yeah.

But the current wording makes it sound like they are routing one thing to something else.

Yes, the wording suggests that oscillators are routed to channels (the original wording actually was that channels are routed to oscillators) which are just pairs of buttons to disable left/right channels of oscillators.

- Remove duplicate tooltips
- Custom tooltip text for duty cycle knobs
- Rename "square" to "pulse"
- Other tooltip text improvements
@messmerd
Copy link
Copy Markdown
Member

messmerd commented Apr 19, 2026

I made some more changes to this PR.

Due to what might have been a regression from #8253, there were two separate tooltips displayed when hovering over FreeBoy knobs. That is now fixed here. This seems to be an older regression.

I replaced "square channel" with "pulse channel" and "wave pattern channel" with just "wave channel".
And I also improved the tooltips for the buttons that enable left/right outputs for each of the channels.

And lastly, using the new custom tooltip text feature from #8253, I was able to improve the text for the duty cycle knobs. They no longer display a meaningless integer for the current duty cycle, but now display "12.5%", "25%", "50%", or "75%" which is much better.

@messmerd messmerd added the bug label Apr 20, 2026
@messmerd
Copy link
Copy Markdown
Member

If #8359 is merged first, we could re-add the static tooltips to FreeBoy knobs without it causing doubled tooltips.

This could be beneficial, letting us do something like this:

  • For the static tooltip: "Pulse channel 1 duty cycle" (mentions the Game Boy channel it applies to)
  • For the dynamic tooltip: "Duty cycle: 25%" (short, concise)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FreeBoy's stereo channels are a mess

4 participants