← Back to team overview

ubuntu-phone team mailing list archive

Fixing Volume Controls

 

Hi list,

I'd like to discuss a topic which, as a daily user of the phone drives
me a bit bad and makes me lose countless phone calls: Volume controls.

If you go through launchpad bugs, you'll find lots of bugs related to
volume control [1][2][3][4]. Let me summarize it up here:

The biggest issue is that the volume buttons are completely
unpredictable. They control a different volume level each time you touch
them. For instance, play some game with a background music, press the
volume buttons. It will adjust the game's sound level (maybe, with a bit
of luck). Then start the game "Dinosaur" from the store and try again,
you'll notice that while playing this game the volume buttons don't
affect the sound made by the game any more but instead they'll leave the
game at 100% volume, while silencing your phone call ringtones. This is
the thing that makes me lose phone calls all the time. I play some game
with the phone, and when I'm done my ringtones are silenced without me
even knowing.
Another issue is that currently there's not really way to figure what
volume level your device is set to. The slider in the indicator is quite
meaningless, given it will fool you by displaying some value, but next
time a sound is produced it will jump to some different value before
playing the sound. This also creates the issue that there's no way to
control your sound level *before* you start a game, means you can't
really start a game on Ubuntu Touch in a place where you can't make
noise, because you have no chance to set the volume before it starts
playing.

I've spent some time to figure where the issue is coming from and what a
solution could be. The main reason where this issue is coming from is
that we have a number of different audio roles that applications are
using. The volume buttons, as well as the slider in the indicators try
to be clever in knowing which role they should address whenever you
touch them. This, however, seems to reliably fail in 99% of the cases
you want to use it.

So here's my proposal:

* Let's drop all the audio roles we have except for ringtone (alert) and
multimedia. We don't need more of them, it'll make things unnecessarily
complex.

* Make the hardware buttons always control the multimedia volume, that
is, game sounds, music player etc but don't ever touch ringtone volume
with them.

* Make the volume slider in the indicator always control the multimedia
volume, never touch the ringtone volume.

* Apps should always use the multimedia role, regardless of what they do
(unless thy deal with actual calls or incoming messages).

* Add a second "slider" to the indicators that controls ringtone volume.
That slider could be a bit special tho, i.e. that it works more like a
profile selector. 0 is "vibrate only", 1 is "beep" and all the greater
values adjust volume of the ringtones.

One thing I've not mentioned here yet are alarms. Alarms, again
could/should have their own role. But one never controls that role with
either the buttons or a slider. Instead, each alarm has his own volume
value assigned when the alarm is created, and an alarm is always played
at the volume its config says (except maybe only vibrate when the phone
profile is set to vibrate only - but those are small details we could
work out on the road).

IMO this behaviour would make the volume way more predictable,
especially since one needs to use a slider in the indicators to change
the ringtone volume but at the same time giving the user visual feedback
on what the current volume is.

What do you think? If you're working on anything related to this, please
help to get this issue fixed and improve the Ubuntu Phone experience.

Br,
Michael


[1] https://bugs.launchpad.net/canonical-devices-system-image/+bug/1484463
[2] https://bugs.launchpad.net/canonical-devices-system-image/+bug/1478506
[3] https://bugs.launchpad.net/ubuntu/+source/indicator-sound/+bug/1478075
[4] https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1291458

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups