alsactl is used to control advanced settings for the ALSA soundcard drivers. It supports multiple soundcards. If your card has features that you can't seem to control from a mixer application, you have come to the right place.
store saves the current driver state for the selected soundcard to the configuration file.
restore loads driver state for the selected soundcard from the configuration file. If restoring fails (eventually partly), the init action is called.
nrestore is like restore, but it notifies also the daemon to do new rescan for available soundcards.
init tries to initialize all devices to a default state. If device is not known, error code 99 is returned.
daemon manages to save periodically the sound state.
rdaemon like daemon but restore the sound state at first.
kill notifies the daemon to do the specified operation (quit, rescan, save_and_quit).
monitor is for monitoring the events received from the given control device.
If no soundcards are specified, setup for all cards will be saved, loaded or monitored.
/var/lib/alsa/asound.state (or whatever file you specify with the -f flag) is used to store current settings for your soundcards. The settings include all the usual soundcard mixer settings. More importantly, alsactl is capable of controlling other card-specific features that mixer apps usually don't know about.
The configuration file is generated automatically by running alsactl store. Editing the configuration file by hand may be necessary for some soundcard features (e.g. enabling/disabling automatic mic gain, digital output, joystick/game ports, some future MIDI routing options, etc).
amixer(1), alsamixer(1), aplay(1), alsactl_init(7)