Bug 411563

Summary: Need a way to visualize microphone's current recording volume
Product: [Applications] systemsettings Reporter: Nate Graham <nate>
Component: kcm_pulseaudioAssignee: David Rosca <nowrep>
Severity: wishlist CC: claudius.ellsel, gudvinr+kde, kde, kde, plasma-bugs
Priority: HI Keywords: usability
Version: 5.18.1   
Target Milestone: ---   
Platform: Other   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=428968
Latest Commit: Version Fixed In: 5.21
Attachments: How macOS handles this

Description Nate Graham 2019-09-03 16:25:11 UTC
This comes up every time I do an audio or video call. Because there's currently no way to visualize current recording device's sensitivity level, I can never tell whether my microphone is working right before I join the call. This leads to situations where after I join the call, nobody can hear me because the microphone isn't recording at all, or the sensitivity level is much too high so everyone else on the call gets annoyed. In either case, time is wasted as I adjust my microphone, and I look stupid.

It would be ideal if plasma-pa had a visualizer for the microphone's current input level so you could see in advance whether your normal speech level was being picked up properly by the microphone. This would allow you to adjust the microphone's volume with the visual feedback necessary to actually see when you've done it properly.

This should be in the KCM, and possibly in the applet as well.
Comment 1 Nate Graham 2019-09-03 16:44:19 UTC
Created attachment 122471 [details]
How macOS handles this
Comment 2 Nate Graham 2020-11-11 21:35:35 UTC
This will be implemented with https://invent.kde.org/plasma/plasma-pa/-/merge_requests/21!
Comment 3 David Redondo 2021-01-05 20:43:39 UTC
Git commit 3e80ee13687a4db8f45c8aa63d741e688209bd48 by David Redondo.
Committed on 05/01/2021 at 20:41.
Pushed by davidre into branch 'master'.

Show current Volume in Plasmoid sliders

We draw the background of slider now manually. The length of the highlight
shows the current volume. Minimum is the minimal width of the element,
maximum is highlight up to the handle position and when nothing is playing
no highlight is shown. An animation makes the transitions a bit smoother.
Related: bug 428968

M  +30   -0    applet/contents/ui/ListItemBase.qml

Comment 4 gudvinr+kde 2021-01-09 12:58:07 UTC
I think this looks way too subtle now.

It is really bad for UX when different places have diferent meaning for same UI elements.
Every other place uses accent-filled slider and it is familiar but here you just breaking consistency.
It really should be done as separate bad with washed out filling color next to control slider.
Or at least slider should have some kind of filling and more accented "current output level" over it.
Comment 5 David Edmundson 2021-01-09 17:26:51 UTC
>every other place

Where else do we have this pattern in kde?
Comment 6 David Redondo 2021-01-11 08:05:09 UTC
I initially had that in the first prototype but realized that it is hard because of the way it interacts with plasma themes. Breeze uses HoverColor, some themes use the HighlightColor and some other themes use a not color scheme aware element for slider highlight. I tried playing around with color effects but did not find something that I was happy with. Using a Colorize or ColorOverlay means that it also wouldn't work with software rendering.
Comment 7 Claudius Ellsel 2021-01-16 17:11:44 UTC
The original scope of this issue was to also have this in the KCM. I agree that it would make sense to also have it there, which to my knowledge isn't the case currently. Do we want to reopen this or track that in a new report?
Comment 8 gudvinr+kde 2021-01-23 11:08:08 UTC
(In reply to David Edmundson from comment #5)
> >every other place
> Where else do we have this pattern in kde?

Animation speed, User feedback, Keyboard settings, Mouse sensitivity, Display scale, Display gamma, Night color
Comment 9 David Edmundson 2021-01-23 11:38:44 UTC
> Where else do we have this pattern in kde?

I meant where we have the goal of showing a current value and a maximum value, not just of using a slider.