Linux Audio record play: Difference between revisions

From Variscite Wiki
(Created page with "{{PageHeader|DART-Mx8M - Audio Record/Play}} {{DocImage|category1=Yocto|category2=DART-MX8M}} __toc__ = Get information on the Sound Cards = Installed devices: <pre> root@imx8...")
 
(Update instructions to set L/R inverting mux)
 
(30 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{PageHeader|DART-Mx8M - Audio Record/Play}} {{DocImage|category1=Yocto|category2=DART-MX8M}} __toc__
<!-- Set release according to "release" parameter in URL and use RELEASE_SUMO_V1.0_DART-MX8M as default
--> {{INIT_RELEASE_PARAM|RELEASE_SUMO_V1.0_DART-MX8M}}<!--
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#lst:B2QT_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#lst:Debian_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#vardefine:SUPPORT_WM8904_DRC | <!--
-->    {{#switch:{{#var:HARDWARE_NAME}} | <!--
-->      DART-MX8M-PLUS = {{#ifexpr: {{#var:YOCTO_VERSION}} > 3.2 | yes | no }} | <!--
-->      {{#ifexpr: {{#var:YOCTO_VERSION}} > 3.0 | yes | no }}  <!--
-->    }} <!--
--> }} <!--
 
    # Add ARECORD_EXTRA_ARGS for AM62
    # See: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_06_00_42/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/Audio.html?highlight=arecord#potential-issues
--> {{#switch: {{#var:SOC_SERIES}}
    | am6={{#vardefine: ARECORD_EXTRA_ARGS | -r 48000 --period-size=64}}
    |#default=
    }}<!--
 
--> {{PageHeader|{{#var:HARDWARE_NAME}} Audio Record/Play}} {{DocImage|category1=Yocto|category2={{#var:HARDWARE_NAME}}}} __toc__
= Get information on the Sound Cards =
= Get information on the Sound Cards =
Installed devices:
Installed devices:
<pre>
<pre>
root@imx8m-var-dart:~# cat /proc/asound/cards
# cat /proc/asound/cards
  0 [imxwm8904     ]: imx-wm8904 - imx-wm8904
  0 [wm8904audio     ]: wm8904-audio - wm8904-audio
                       imx-wm8904
                       wm8904-audio
</pre>
</pre>
List device names for playback:
List device names for playback:
<pre>
<pre>
root@imx6ul-var-dart:~# aplay -L
# aplay -L
null
null
     Discard all samples (playback) or generate zero samples (capture)
     Discard all samples (playback) or generate zero samples (capture)
pulse
pulse
     PulseAudio Sound Server
     PulseAudio Sound Server
sysdefault:CARD=imxwm8904
sysdefault:CARD=wm8904audio
     imx-wm8904,  
     wm8904-audio,  
     Default Audio Device
     Default Audio Device
</pre>
</pre>
 
{{#varexists:DEBIAN_NAME|
For the upcoming, the tool amixer is used to control the audio. Please consider stopping the PulseAudio server to avoid conflicts:
# systemctl stop pulseaudio
}}
= Audio Playback =
= Audio Playback =
Set PCM volume (main volume of audio codec), range :0-63
Set PCM volume (main volume of audio codec), range :0-63
<pre>
<pre>
# amixer set Headphone 30
# amixer set Headphone 35
</pre>
Play audio:
Play audio:
<pre>
<pre>
Line 29: Line 52:
Example:
Example:
<pre>
<pre>
root@imx8m-var-dart:~# amixer set set Headphone 30
# amixer set Headphone 35
Simple mixer control 'Headphone',0
Simple mixer control 'Headphone',0
   Capabilities: volume pswitch
   Capabilities: volume pswitch
Line 35: Line 58:
   Capture channels: Front Left - Front Right
   Capture channels: Front Left - Front Right
   Limits: 0 - 63
   Limits: 0 - 63
   Front Left: 30 [48%] [-27.00dB] Playback [on]
   Front Left: 35 [56%] [-22.00dB] Playback [on]
   Front Right: 30 [48%] [-27.00dB] Playback [on]
   Front Right: 35 [56%] [-22.00dB] Playback [on]


root@imx8m-var-dart:~# aplay /usr/share/sounds/alsa/Front_Center.wav
# aplay /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
</pre>
</pre>


= Audio Record and Play, Line-in Jack=
= Audio Record and Play, Line-in Jack=
Set PCM volume (main volume of audio codec), range :0-63
<pre>
# amixer set Headphone 35
</pre>
Set L/R capture inverting mux inputs to IN2
<pre>
# amixer set 'Left Capture Inverting Mux' IN2L
# amixer set 'Right Capture Inverting Mux' IN2R
</pre>
Set capture input source to ADC
<pre>
# amixer set 'Capture Input' ADC
</pre>
Set DMIC Mux to DMIC2
<pre>
# amixer set 'DMIC Mux' DMIC2
</pre>
Record CD quality audio for 10 seconds into file test.wav
# arecord {{#var:ARECORD_EXTRA_ARGS}} -f cd -d 10 test.wav
Play the recorded file
<pre>
<pre>
# amixer set 'Capture' 22
# arecord -f cd -d 10 test.wav
# aplay test.wav  
# aplay test.wav  
</pre>
</pre>
Example:
Example:
# amixer set Headphone 35
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]
# amixer set 'Left Capture Inverting Mux' IN2L
Simple mixer control 'Left Capture Inverting Mux',0
  Capabilities: enum
  Items: 'IN1L' 'IN2L' 'IN3L'
  Item0: 'IN2L'
# amixer set 'Right Capture Inverting Mux' IN2R
Simple mixer control 'Right Capture Inverting Mux',0
  Capabilities: enum
  Items: 'IN1R' 'IN2R' 'IN3R'
  Item0: 'IN2R'
# amixer set 'Capture Input' ADC
Simple mixer control 'Capture Input',0
  Capabilities: enum
  Items: 'ADC' 'DMIC'
  Item0: 'ADC'
# amixer set 'DMIC Mux' DMIC2
Simple mixer control 'DMIC Mux',0
  Capabilities: enum
  Items: 'DMIC1' 'DMIC2'
  Item0: 'DMIC2'
# arecord {{#var:ARECORD_EXTRA_ARGS}} -f cd -d 10 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
# aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
= Audio Record and Play, DMIC =
Set Headphones volume, range :0-63
<pre>
# amixer set Headphone 35
</pre>
Set capture input source to DMIC
<pre>
# amixer set 'Capture Input' DMIC
</pre>
Set DMIC Mux to DMIC1
<pre>
# amixer set 'DMIC Mux' DMIC1
</pre>
Record CD quality audio for 10 seconds into file test.wav
# arecord {{#var:ARECORD_EXTRA_ARGS}} -f cd -d 10 test.wav
Play the recorded file
<pre>
<pre>
root@imx6ul-var-dart:~# arecord -f cd -d 10 test.wav
# aplay test.wav  
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
root@imx6ul-var-dart:~# aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
</pre>
</pre>
Example:
# amixer set Headphone 35
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]
# amixer set 'Capture Input' DMIC
Simple mixer control 'Capture Input',0
  Capabilities: enum
  Items: 'ADC' 'DMIC'
  Item0: 'DMIC'
# amixer set 'DMIC Mux' DMIC1
Simple mixer control 'DMIC Mux',0
  Capabilities: enum
  Items: 'DMIC1' 'DMIC2'
  Item0: 'DMIC1'
# arecord {{#var:ARECORD_EXTRA_ARGS}} -f cd -d 10 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
# aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo


= Advanced Controls =
= Advanced Controls =
Line 60: Line 172:
For example:
For example:
<pre>
<pre>
root@imx6ul-var-dart:~# amixer
# amixer
Simple mixer control 'Master',0
Simple mixer control 'Headphone',0
   Capabilities: pvolume
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]
Simple mixer control 'Headphone ZC',0
   Capabilities: pswitch
   Playback channels: Front Left - Front Right
   Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
   Mono:
   Mono:
   Front Left: Playback 125 [98%] [4.00dB]
   Front Left: Playback [on]
   Front Right: Playback 125 [98%] [4.00dB]
  Front Right: Playback [on]
Simple mixer control 'Master Playback ZC',0
Simple mixer control 'Line Output',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 57 [90%] [0.00dB] Playback [on]
   Front Right: 57 [90%] [0.00dB] Playback [on]
Simple mixer control 'Line Output ZC',0
   Capabilities: pswitch
   Capabilities: pswitch
   Playback channels: Front Left - Front Right
   Playback channels: Front Left - Front Right
   Mono:
   Mono:
   Front Left: Playback [off]
   Front Left: Playback [on]
   Front Right: Playback [off]
   Front Right: Playback [on]
Simple mixer control 'Sidetone',0
  Capabilities: pvolume pvolume-joined
  Playback channels: Mono
  Limits: Playback 0 - 3
  Mono: Playback 3 [100%] [-6.00dB]
Simple mixer control 'Mic',0
  Capabilities: cswitch cswitch-joined
  Capture channels: Mono
  Mono: Capture [off]
Simple mixer control 'Mic Boost',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 1
  Mono: 0 [0%] [0.00dB]
Simple mixer control 'Playback Deemphasis',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Capture',0
Simple mixer control 'Capture',0
   Capabilities: cvolume
   Capabilities: cvolume cswitch
   Capture channels: Front Left - Front Right
   Capture channels: Front Left - Front Right
   Limits: Capture 0 - 31
   Limits: Capture 0 - 31
   Front Left: Capture 31 [100%] [12.00dB]
   Front Left: Capture 24 [77%] [on]
   Front Right: Capture 31 [100%] [12.00dB]
   Front Right: Capture 24 [77%] [on]
Simple mixer control 'ADC High Pass Filter',0
Simple mixer control 'Capture Input',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Input Mux',0
   Capabilities: enum
   Capabilities: enum
   Items: 'Line In' 'Mic'
   Items: 'ADC' 'DMIC'
   Item0: 'Line In'
   Item0: 'DMIC'
Simple mixer control 'Output Mixer HiFi',0
...
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Output Mixer Line Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Output Mixer Mic Sidetone',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Store DC Offset',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
</pre>
</pre>
Options:
Options:
Line 132: Line 219:
For example:
For example:
<pre>
<pre>
root@imx6ul-var-dart:~# amixer sget 'Capture'                                                                                        
# amixer sget 'Capture'
Simple mixer control 'Capture',0
Simple mixer control 'Capture',0
   Capabilities: cvolume
   Capabilities: cvolume cswitch
   Capture channels: Front Left - Front Right
   Capture channels: Front Left - Front Right
   Limits: Capture 0 - 31
   Limits: Capture 0 - 31
   Front Left: Capture 31 [100%] [12.00dB]
   Front Left: Capture 24 [77%] [on]
   Front Right: Capture 31 [100%] [12.00dB]
   Front Right: Capture 24 [77%] [on]
</pre>
# amixer sset 'Capture' 25
HP DAC is a headphones DAC gain currently set to 60%.
The optional values are 0-118 equal to 0%-100%.
<pre>
  root@imx6ul-var-dart:~# amixer sset 'Capture' 25                                                                                    
Simple mixer control 'Capture',0
Simple mixer control 'Capture',0
   Capabilities: cvolume
   Capabilities: cvolume cswitch
   Capture channels: Front Left - Front Right
   Capture channels: Front Left - Front Right
   Limits: Capture 0 - 31
   Limits: Capture 0 - 31
   Front Left: Capture 25 [81%] [3.00dB]
   Front Left: Capture 25 [81%] [on]
   Front Right: Capture 25 [81%] [3.00dB]
   Front Right: Capture 25 [81%] [on]
</pre>
</pre>
Capture  currently now set to 81%.
Capture  currently now set to 81%.


= Save / restore system's audio settings =
{{#ifeq: {{#var:SUPPORT_WM8904_DRC}} | yes |
alsactl store stores all alsamixer settings into a file<br>
== Enabling the Dynamic Rate Controller (DRC) ==
alsctl
 
The codec WM8904 provide a Dynamic Rate Controller that can be used to amplify the DMIC input using an Automatic Gain Control (AGC) configuration.
 
The details of how the DRC works are available in the application note [https://statics.cirrus.com/pubs/appNote/WAN0215.pdf WAN0215].
 
In latest kernels 5.4.x, dedicated patches have been introduced to provide the available parameters shown in the applications section of WAN0215.
 
To enable DRC, run:
 
  amixer set 'DRC' on
 
To select the DRM mode, run:
 
  amixer set 'DRC Mode' 'tradition'
 
The available 'DRC modes' are:
* "default": the default settings upon reset
* "peaklimiter": the signal level is unchanged for amplitudes below the knee, but sharply reduced for amplitudes above the knee. Normally the knee will be at a high amplitude e.g. around -6dB, so that the majority of the dynamic range is unchanged
* "tradition": typical traditional ALC characteristic
* "soft": used in applications where a gentler ALC characteristic is required, for example where both speech and music recording is required without reconfiguring compressor parameters
* "music": uses even gentler compression characteristics and uses a higher knee threshold to limit the gain to around 20dB
 
Additional modes may be added, providing the relevant registers configurations in arch/arm64/boot/dts/freescale/{{#var:DEFAULT_DTB}} under kernel source tree:
<pre>
wm8904: codec@1a {
...
num-drc-cfgs = <5>; /* must match the number of items in the following 2 lists */
drc-cfg-names = "default", "peaklimiter", "tradition", "soft", "music";
drc-cfg-regs =
/* coded default: KNEE_IP = KNEE_OP = 0, HI_COMP = LO_COMP = 1  */
<0x01af 0x3248 0x0000 0x0000>,
/* coded default: KNEE_IP = -24, KNEE_OP = -6, HI_COMP = 1/4, LO_COMP = 1 */
<0x04af 0x324b 0x0010 0x0408>,
/* coded default: KNEE_IP = -42, KNEE_OP = -3, HI_COMP = 0, LO_COMP = 1 */
<0x04af 0x324b 0x0028 0x0704>,
/* coded default: KNEE_IP = -45, KNEE_OP = -9, HI_COMP = 1/8, LO_COMP = 1 */
<0x04af 0x324b 0x0018 0x078c>,
/* coded default: KNEE_IP = -30, KNEE_OP = -10.5, HI_COMP = 1/4, LO_COMP = 1 */
<0x04af 0x324b 0x0010 0x050e>;
...
};
</pre>
| }}
 
= Save/restore system's audio settings =
alsactl store stores all alsamixer settings into a file.<br>
Options:
Options:
<pre>
<pre>

Latest revision as of 15:47, 23 October 2023

Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release RELEASE_SUMO_V1.0_DART-MX8M.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release
DART-MX8M Audio Record/Play

Get information on the Sound Cards

Installed devices:

# cat /proc/asound/cards
 0 [wm8904audio      ]: wm8904-audio - wm8904-audio
                      wm8904-audio

List device names for playback:

# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
sysdefault:CARD=wm8904audio
    wm8904-audio, 
    Default Audio Device

Audio Playback

Set PCM volume (main volume of audio codec), range :0-63

# amixer set Headphone 35

Play audio:

# aplay /usr/share/sounds/alsa/Front_Center.wav

Example:

# amixer set Headphone 35
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]

# aplay /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

Audio Record and Play, Line-in Jack

Set PCM volume (main volume of audio codec), range :0-63

# amixer set Headphone 35

Set L/R capture inverting mux inputs to IN2

# amixer set 'Left Capture Inverting Mux' IN2L
# amixer set 'Right Capture Inverting Mux' IN2R

Set capture input source to ADC

# amixer set 'Capture Input' ADC

Set DMIC Mux to DMIC2

# amixer set 'DMIC Mux' DMIC2

Record CD quality audio for 10 seconds into file test.wav

# arecord  -f cd -d 10 test.wav

Play the recorded file

# aplay test.wav 

Example:

# amixer set Headphone 35
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]
# amixer set 'Left Capture Inverting Mux' IN2L
Simple mixer control 'Left Capture Inverting Mux',0
  Capabilities: enum
  Items: 'IN1L' 'IN2L' 'IN3L'
  Item0: 'IN2L'
# amixer set 'Right Capture Inverting Mux' IN2R
Simple mixer control 'Right Capture Inverting Mux',0
  Capabilities: enum
  Items: 'IN1R' 'IN2R' 'IN3R'
  Item0: 'IN2R'
# amixer set 'Capture Input' ADC
Simple mixer control 'Capture Input',0
  Capabilities: enum
  Items: 'ADC' 'DMIC'
  Item0: 'ADC'
# amixer set 'DMIC Mux' DMIC2
Simple mixer control 'DMIC Mux',0
  Capabilities: enum
  Items: 'DMIC1' 'DMIC2'
  Item0: 'DMIC2'
# arecord  -f cd -d 10 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
# aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

Audio Record and Play, DMIC

Set Headphones volume, range :0-63

# amixer set Headphone 35

Set capture input source to DMIC

# amixer set 'Capture Input' DMIC

Set DMIC Mux to DMIC1

# amixer set 'DMIC Mux' DMIC1

Record CD quality audio for 10 seconds into file test.wav

# arecord  -f cd -d 10 test.wav

Play the recorded file

# aplay test.wav 

Example:

# amixer set Headphone 35
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]
# amixer set 'Capture Input' DMIC
Simple mixer control 'Capture Input',0
  Capabilities: enum
  Items: 'ADC' 'DMIC'
  Item0: 'DMIC'
# amixer set 'DMIC Mux' DMIC1
Simple mixer control 'DMIC Mux',0
  Capabilities: enum
  Items: 'DMIC1' 'DMIC2'
  Item0: 'DMIC1'
# arecord  -f cd -d 10 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
# aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

Advanced Controls

amixer without a parameter will show all available controls. For example:

# amixer
Simple mixer control 'Headphone',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 35 [56%] [-22.00dB] Playback [on]
  Front Right: 35 [56%] [-22.00dB] Playback [on]
Simple mixer control 'Headphone ZC',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]
Simple mixer control 'Line Output',0
  Capabilities: volume pswitch
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 57 [90%] [0.00dB] Playback [on]
  Front Right: 57 [90%] [0.00dB] Playback [on]
Simple mixer control 'Line Output ZC',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 24 [77%] [on]
  Front Right: Capture 24 [77%] [on]
Simple mixer control 'Capture Input',0
  Capabilities: enum
  Items: 'ADC' 'DMIC'
  Item0: 'DMIC'
...

Options:

amixer   sset sID P      set contents for one mixer simple control
amixer   sget sID        get contents for one mixer simple control

For example:

# amixer sget 'Capture'
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 24 [77%] [on]
  Front Right: Capture 24 [77%] [on]
# amixer sset 'Capture' 25
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 25 [81%] [on]
  Front Right: Capture 25 [81%] [on]

Capture currently now set to 81%.


Save/restore system's audio settings

alsactl store stores all alsamixer settings into a file.
Options:

  store     <card>  save current driver setup for one or each soundcards
                      to configuration file
  restore   <card>  load current driver setup for one or each soundcards
                      from configuration file

Example:

# alsactl store -f 123.conf
# alsactl restore -f 123.conf