Softvol
From the ALSA wiki
This is the page about the softvol plugin, an ALSA plugin that allows the user to add a new volume control and control the sound volume or parts of it by software. This is often necessary if the sound card can't control the volume by hardware. Another usefull thing you can do is control the volume of every application seperatly, even if the application can't do it on its own.
Basic usage
A basic configuration in the ~/.asoundrc
file looks like this:
pcm.newdevice { type softvol slave.pcm "default" control.name "Softmaster" control.card 0 }
This creates a new PCM device called newdevice
whose volume is controlled by a new volume control called Softmaster
. The audio stream with changed volume will be passed to the default
device. As the plugin doesn't change anything but the volume, sample format, sample rate and number of channels of the new device are equivalent to the values of the slave.
It is not possible to redefine a non user defined control! If the name of the new volume control already exists, the new device just copies the stream to its slave without changing anything. Use amixer controls | grep Softmaster
to find out whether the control already exists. However, it is possible to create a control named "Master" to get a proper master volume control if the soundcard does not have one itself. See How to use softvol to control the master volume.
Note: The new volume control won't appear imidiately! Only after the first usage of the newly defined device (e.g. with speaker-test), should amixer sget Softmaster display the new control. Mixers that were already started before the first usage (like KMix) have to be restarted to adopt the changes. If the new control is still not there, try restarting ALSA or your PC.
|
Removing a volume control
This task is not as easy at it seems, if you don't know the trick. If the correspondant part of the configuration file is just deleted and alsactl store
has been executed after the usage of the device in question, the volume control won't disappear. alsactl store
stores the value of all controls (among them the softvol device) in /etc/asound.state
and is most likely executed on every shutdown of your computer.
To make the volume control disappear finally, you have to delete its values in /etc/asound.state
or just the whole file (it will be recreated with default values on next reboot). After that, your computer has to be restarted once without the execution of alsactl store
on shutdown. On Debian, this can be achieved by temporarily renaming /etc/rc6.d/K50alsa-utils
(or similar). Pressing the reset button also works, but should be avoided.
See also
- The .asoundrc file, .asoundrc and Plugin Documentation - General information about setting up PCM devices
- How to use softvol to control the master volume
- Official documentation on the ALSA projects page.
- The route plugin - Another ALSA plugin changing the volume (among other things), but statically