Audio volume levels
Design exploration for how GNOME handles volume levels.
Relevant art
Android
- Apps don't have volume levels
- 4 system-level volume levels: media, call, ring and notificaion, alarm
- Volume buttons change the volume level for what's being played back. If you're in a call, the call volume will be adjusted. If an alarm is ringing, the alarm volume will be adjusted. (It's unclear exactly how this is determined.)
- Separate setting for mute, vibrate, sound
iOS
- Apps don't have volume levels
- One volume level for all apps
- One volume level for ringer, alerts, and other sound effects
- Volume buttons affect one level or the other, depending on the context
GNOME
- Device volume level, on top of per-app volume levels
- The output device is switched automatically, or can be changed in the sound settings
- App volumes can be accessed in the apps themselves, as well as in the sound settings
- Hot keys affect the device volume level. So does the volume slider in the quick settings.
Windows / Mac
Essentially the same as GNOME: they have a global volume level, and application volume levels.
Discussion
Issues with GNOME's current design:
- Device and app volume are layered:
- Turning up the volume to maximum requires moving it to the top in two locations
- The behaviour can be surprising - maybe you change the device volume, and can't get the effect you want, because you're unaware of the app volume
- No way to silence all apps and keep other system sounds audible
- App volume can only be accessed from the app - no way to quickly adjust it from the system controls, alongside the device volume
Challenges and limitations with "media roles" (volumes grouped by type):
- Cases where someone wants to play audio from multiple sources, and balance the output. Watch a programme with music in the background, play a game while listening to music, ...
Potential alternative approaches
- Split out system volume levels from the global one. You could have one volume level for apps and one for notifications/alerts/alarms. This might require an additional setting to allow silencing everything.
- Group app volumes by type and have a volume level setting for each group.
Edited by Allan Day