ALSACTL(1)
π alsactl(1) Β· General Commands Manual π
okay bestie, this is the tea on alsactl π it's the tool for the advanced stuff your soundcard can do that your mixer app just won't show you. let's go β¨
β¨ NAME β¨
alsactl β advanced controls for the ALSA soundcard driver π¦
π SYNOPSIS π
alsactl [options] [store|restore|init] <card # or id or device>
alsactl monitor <card # or id>
alsactl info <card # or id>
alsactl [clean] <card # or id or device> [[control identifiers]]
πΈ DESCRIPTION πΈ
alsactl handles the advanced settings for the ALSA soundcard drivers, and it works with multiple soundcards π₯ if your card has features you can't seem to control from a mixer application, you have come to the right place π
π COMMANDS π
π§ Introduction
The <card> argument is optional. If you don't name any soundcards, setup for all cards gets saved, loaded or monitored β¨
πΎ store <card>
saves the current driver state for the selected soundcard into the configuration file. easy peasy π
π restore <card>
loads the driver state for the selected soundcard from the configuration file. if restoring fails (eventually partly), the init action gets called as a backup plan π«Ά
π nrestore <card>
it's basically restore, but it also tells the daemon to do a fresh rescan for available soundcards. main character energy π
π± init <card>
tries to initialize all devices to a default state. if the device isn't known, you'll get error code 99 back π
π°οΈ daemon
manages to save the sound state periodically β
π rdaemon
same vibe as daemon, but it restores the sound state at first π§
π£ kill <cmd>
notifies the daemon to do the specified operation: quit, rescan, or save_and_quit π₯
π monitor <card>
monitors the events received from the given control device π¦
π info <card>
shows the general information in YAML format, collected from the given control device (sound card) π
π§Ή clean <card> [filter]
cleans up the controls created by applications. the optional element identifiers work as a filter, and one extra argument gets parsed as element identifiers π«§
Example:
alsactl clean 0 "name='PCM'" "name='Mic Phantom'"
π¨οΈ dump-state
dumps the current state (all cards) to stdout πΈ
βοΈ dump-cfg
dumps the current configuration (all cards) to stdout. heads up: the configuration hooks get evaluated first π
ποΈ OPTIONS ποΈ
-h,--helpβ help! shows the available flags and commands π-d,--debugβ debug mode, a bit more chatty π£οΈ-v,--versionβ prints the alsactl version number π·οΈ-f,--fileβ picks the configuration file to use. the default is/var/lib/alsa/asound.stateπ-a,--config-dirβ picks the boot / hotplug ALSA configuration directory. the default is/var/lib/alsaποΈ-l,--lockβ uses file locking so concurrent access to the state file gets serialized (this one's the default for the global state file) π-L,--no-lockβ no file locking for the state file, including the global state file π-O,--lock-state-fileβ picks the state lock file path ποΈ-F,--forceβ used withrestore. tries to restore the matching control elements as much as possible. this is the default now πͺ-g,--ignoreβ used withstore,restoreandinit. doesn't show'No soundcards found'and doesn't set an error exit code when soundcards aren't installed π-P,--pedanticβ used withrestore. doesn't restore mismatching control elements. this was the old default behavior π§-I,--no-init-fallbackβ don't initialize cards if restore fails. since version1.0.18, alsactl tries to initialize the card with the restore operation by default, but that can cause incompatibility with older versions. the caller may expect the state to stay untouched if there's no state file. this option takes the restore behavior back to the older version by suppressing the initialization πΉοΈ-r,--runstateβ saves restore and init state to this file. the file only contains errors, and each one gets appended with the soundcard id at the end of the file π-R,--removeβ removes the runstate file first π§½-E,--env #=#β sets an environment variable. handy for the init action, or you can overrideALSA_CONFIG_PATHto read a different or optimized configuration (useful for "boot" scripts) π-i,--initfileβ the configuration file for init. by default it'sPREFIX/share/alsa/init/00mainπ§-p,--periodβ the store period in seconds for thedaemoncommand β±οΈ-e,--pid-fileβ the pathname to store the process-id file in the HDB UUCP format (ASCII) π-b,--backgroundβ runs the task in the background π-s,--syslogβ uses syslog for messages π-n,--niceβ sets the process priority (see'man nice') π-c,--sched-idleβ sets the process scheduling policy to idle (SCHED_IDLE) π΄-D,--ucm-defaultsβ also executes the'defaults'section from the UCM configuration. the standard behavior is to only execute the'once'section π§©-U,--no-ucmβ skips the UCM init even if it's available. useful for testing the legacy init configuration π§ͺ
π FILES π
/var/lib/alsa/asound.state (or whatever file you pass with the -f flag) stores the current settings for your soundcards. the settings include all the usual soundcard mixer settings. more importantly, alsactl can control other card-specific features that mixer apps usually don't even know about π€―
The configuration file gets generated automatically when you run alsactl store. editing it 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) πΉ
π SEE ALSO π
amixer(1), alsamixer(1), aplay(1), alsactl_init(7) π«Ά
π BUGS π
None known. β
π AUTHOR π
alsactl is by Jaroslav Kysela <perex@perex.cz> and Abramo Bagnara <abramo@alsa-project.org>. This document is by Paul Winkler <zarmzarm@erols.com> π
and that's the whole manual, bestie! π this was the ALSACTL(1) page, dated 07 May 2014, and it's giving full legend status ππ love you, go make your sound card behave β¨π«Ά
π¦ where this page comes from
- alpine 3.22: alsa-utils-doc 1.2.14-r0 Β· GPL-2.0-or-later
- alpine 3.23: alsa-utils-doc 1.2.14-r4 Β· GPL-2.0-or-later
- alpine 3.24: alsa-utils-doc 1.2.15.2-r1 Β· GPL-2.0-or-later
- arch rolling: alsa-utils 1.2.16-1 Β· GPL-2.0-or-later
- centos-stream 10: alsa-utils 1.2.16-1.el10 Β· GPL-2.0-or-later
- centos-stream 9: alsa-utils 1.2.16-1.el9 Β· GPLv2+
- debian trixie: alsa-utils 1.2.14-1 Β· GPL-2.0-only
- fedora 43: alsa-utils 1.2.14-2.fc43 Β· GPL-2.0-or-later
- fedora 43: alsa-utils 1.2.16-1.fc43 Β· GPL-2.0-or-later
- fedora 44: alsa-utils 1.2.15.2-3.fc44 Β· GPL-2.0-or-later
- fedora 44: alsa-utils 1.2.16-1.fc44 Β· GPL-2.0-or-later
- nixos 26.05: alsa-utils 1.2.14
- nixpkgs unstable: alsa-utils 1.2.16
- opensuse-leap 16.0: alsa-utils 1.2.14-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: alsa-utils 1.2.14-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: alsa-utils 1.2.14-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: alsa-utils 1.2.14-160000.2.2 Β· GPL-2.0-or-later
- ubuntu questing: alsa-utils 1.2.14-1ubuntu1
- ubuntu resolute: alsa-utils 1.2.15.2-1ubuntu1 Β· GPL-2.0-only
- ubuntu stonking: alsa-utils 1.2.15.2-1ubuntu2 Β· GPL-2.0-only
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms