Bug 306502

Summary: Bug - KMix / Phonon can only change volume in increments of ~3 %
Product: [Frameworks and Libraries] Phonon Reporter: Andrei ILIE <andrei.ilie>
Component: generalAssignee: Harald Sitter <sitter>
Status: RESOLVED NOT A BUG    
Severity: normal CC: andrei.ilie, martin.sandsmark, myriam, romain.perier
Priority: NOR    
Version: 4.6.0   
Target Milestone: 4.6.1   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description Andrei ILIE 2012-09-09 16:28:35 UTC
In 2004 was filed bug 86065 against KMix, expressing similar complaints... The resolution on that old report was "RESOLVED INVALID" based on the fact that "there are, in fact, only 32 steps (0-31) in the entire volume range for most soundcards. ALSA at least exposes this. [...] KMix cannot be more precise than your hardware".

SOLUTION - Abstraction, baby ! - KMix / Phonon are higher level interfaces, so they should be able to set the volume (for every channel, not just Master) in a range of [0-100%] with an increment of 1% or, preferably, 5%. They should also perform the necessary translations / approximations in order to translate the users wishes to the backend.

Reproducible: Always




$ yum list installed phonon*
phonon.x86_64, v4.6.0-3.fc17
phonon-backend-vlc.x86_64, v0.6.0-1.fc17

$ uname -a
Linux localhost.localdomain 3.5.3-1.fc17.x86_64 #1 SMP Wed Aug 29 18:46:34 UTC 2012
Comment 1 Harald Sitter 2012-09-09 16:37:40 UTC
        /**
         * This is the current volume of the output in decibel.
         *
         * 0 dB means no change in volume, -6dB means an attenuation of the
         * voltage to 50% and an attenuation of the power to 25%, -inf dB means
         * silence.
         *
         * \see volume
         */
        Q_PROPERTY(qreal volumeDecibel READ volumeDecibel WRITE setVolumeDecibel)
Comment 2 Andrei ILIE 2012-09-09 17:55:05 UTC
@Harald: This issue is in fact valid - KMix / Phonon should offer a dB agnostic user experience.

At least, please, mark this issue as a "feature request" because is __not__ invalid.

Thx
Comment 3 Harald Sitter 2012-09-09 18:10:40 UTC
        /**
         * This is the current loudness of the output (it is using Stevens' law
         * to calculate the change in voltage internally).
         *
         * \see volumeDecibel
         */
        Q_PROPERTY(qreal volume READ volume WRITE setVolume NOTIFY volumeChanged)


Also note that kmix and phonon are not the same, they do not share one bit of code.