[alsa-devel] Get dB value using softvol plugin

Jörg Krause joerg.krause at embedded.rocks
Wed May 4 11:47:03 CEST 2016


Hi,

I configured my softvol plugin with a min_dB value of -6.0. However, if
I store the state with alsactl store, the comment section shows a dbmin
value of 0.

I figured out that the softvol plugin adds the tlv info when it adds
the user ctl and stores the db values in snd_pcm_softvol_t. Why differ
the values of the tlv and the values of snd_pcm_softvol_t?

My goal is to get information of the current dB value used by the
softvol plugin, e.g. -6.0dB for a raw volume value of 255 and -51.0dB
for 0. However, I only get values from +0 to +51dB
using snd_ctl_convert_to_dB(). Do I miss something?

Note, that I started from a clean asound.state.

---

The state produced by alsactl:

	control.1 {
                iface MIXER
                name Master
                value.0 255
                value.1 255
                comment {
                        access 'read write user'
                        type INTEGER
                        count 2
                        range '0 - 255'
                        tlv '00000001000000080000000000000014'
                        dbmin 0
                        dbmax 5100
                        dbvalue.0 5100
                        dbvalue.1 5100
                }
        }

---

The output of aplay -D softvol -v:

    Playing WAVE '/test.wav' : Signed 16 bit Little Endian, Rate 44100
    Hz, Stereo
    Soft volume PCM
    Control: Master
    min_dB: -57
    max_dB: -6
    resolution: 256

---

My asound.conf:

    pcm.!default {
          type plug
          slave.pcm "softvol"
      }

    pcm.softvol {
         type softvol
          slave {
              pcm "hw:0"
          }
          control {
              name "Master"
              card 0
          }
         min_dB -57.0
         max_dB -6.0
    }
    ctl.!default {
            type hw
            card 0
    }
    ctl.softvol {
            type hw
            card 0
    }

---

Best regards
Jörg Krause


More information about the Alsa-devel mailing list