Linux Audio record play: Difference between revisions
(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...") |
No edit summary |
||
Line 22: | Line 22: | ||
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 | # amixer set Headphone 35 | ||
</pre> | |||
Play audio: | Play audio: | ||
<pre> | <pre> | ||
Line 29: | Line 30: | ||
Example: | Example: | ||
<pre> | <pre> | ||
root@imx8m-var-dart:~# amixer set set Headphone | root@imx8m-var-dart:~# amixer set set Headphone 35 | ||
Simple mixer control 'Headphone',0 | Simple mixer control 'Headphone',0 | ||
Capabilities: volume pswitch | Capabilities: volume pswitch | ||
Line 35: | Line 36: | ||
Capture channels: Front Left - Front Right | Capture channels: Front Left - Front Right | ||
Limits: 0 - 63 | Limits: 0 - 63 | ||
Front Left: | Front Left: 35 [56%] [-22.00dB] Playback [on] | ||
Front Right: | Front Right: 35 [56%] [-22.00dB] Playback [on] | ||
root@imx8m-var-dart:~# aplay /usr/share/sounds/alsa/Front_Center.wav | root@imx8m-var-dart:~# aplay /usr/share/sounds/alsa/Front_Center.wav | ||
Line 43: | Line 44: | ||
= 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 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 | |||
<pre> | |||
# arecord -f cd -d 10 test.wav | |||
</pre> | |||
Play the recorded file | |||
<pre> | |||
# aplay test.wav | |||
</pre> | |||
Example: | |||
<pre> | |||
root@imx8m-var-dart:~# amixer set 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] | |||
root@imx8m-var-dart:~# amixer set 'Capture Input' ADC | |||
Simple mixer control 'Capture Input',0 | |||
Capabilities: enum | |||
Items: 'ADC' 'DMIC' | |||
Item0: 'ADC' | |||
root@imx8m-var-dart:~# amixer set 'DMIC Mux' DMIC2 | |||
Simple mixer control 'DMIC Mux',0 | |||
Capabilities: enum | |||
Items: 'DMIC1' 'DMIC2' | |||
Item0: 'DMIC2' | |||
root@imx6ul-var-dart:~# arecord -f cd -d 10 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> | |||
= 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 | |||
<pre> | <pre> | ||
# arecord -f cd -d 10 test.wav | # arecord -f cd -d 10 test.wav | ||
</pre> | |||
Play the recorded file | |||
<pre> | |||
# aplay test.wav | # aplay test.wav | ||
</pre> | </pre> | ||
Example: | Example: | ||
<pre> | <pre> | ||
root@imx8m-var-dart:~# amixer set 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] | |||
root@imx8m-var-dart:~# amixer set 'Capture Input' DMIC | |||
Simple mixer control 'Capture Input',0 | |||
Capabilities: enum | |||
Items: 'ADC' 'DMIC' | |||
Item0: 'DMIC' | |||
root@imx8m-var-dart:~# amixer set 'DMIC Mux' DMIC1 | |||
Simple mixer control 'DMIC Mux',0 | |||
Capabilities: enum | |||
Items: 'DMIC1' 'DMIC2' | |||
Item0: 'DMIC1' | |||
root@imx6ul-var-dart:~# arecord -f cd -d 10 test.wav | root@imx6ul-var-dart:~# arecord -f cd -d 10 test.wav | ||
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo | Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo | ||
Line 60: | Line 141: | ||
For example: | For example: | ||
<pre> | <pre> | ||
root@ | root@imx8m-var-dart:~# amixer | ||
Simple mixer control ' | Simple mixer control 'Headphone',0 | ||
Capabilities: | Capabilities: volume pswitch | ||
Playback channels: Front Left - Front Right | Playback channels: Front Left - Front Right | ||
Capture channels: Front Left - Front Right | |||
Limits: 0 - 63 | |||
Front Left: | Front Left: 35 [56%] [-22.00dB] Playback [on] | ||
Front Right: | Front Right: 35 [56%] [-22.00dB] Playback [on] | ||
Simple mixer control ' | Simple mixer control 'Headphone ZC',0 | ||
Capabilities: pswitch | Capabilities: pswitch | ||
Playback channels: Front Left - Front Right | Playback channels: Front Left - Front Right | ||
Mono: | Mono: | ||
Front Left: Playback [ | Front Left: Playback [on] | ||
Front Right: Playback [ | Front Right: Playback [on] | ||
Simple mixer control ' | Simple mixer control 'Line Output',0 | ||
Capabilities: volume pswitch | |||
Playback channels: Front Left - Front Right | |||
Capabilities: volume | |||
Playback channels: | |||
Capture channels: Front Left - Front Right | Capture channels: Front Left - Front Right | ||
Limits: | Limits: 0 - 63 | ||
Front Left: | Front Left: 57 [90%] [0.00dB] Playback [on] | ||
Front Right: | Front Right: 57 [90%] [0.00dB] Playback [on] | ||
Simple mixer control ' | Simple mixer control 'Line Output ZC',0 | ||
Capabilities: pswitch | Capabilities: pswitch | ||
Playback channels: Mono | 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 ' | Simple mixer control 'Capture Input',0 | ||
Capabilities: | Capabilities: enum | ||
Items: 'ADC' 'DMIC' | |||
Item0: 'DMIC' | |||
... | |||
Simple mixer control ' | |||
Capabilities: | |||
</pre> | </pre> | ||
Options: | Options: | ||
Line 132: | Line 188: | ||
For example: | For example: | ||
<pre> | <pre> | ||
root@imx8m-var-dart:~# 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 | Front Left: Capture 24 [77%] [on] | ||
Front Right: Capture | Front Right: Capture 24 [77%] [on] | ||
root@imx8m-var-dart:~# amixer sset 'Capture' 25 | |||
root@ | |||
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%] [ | Front Left: Capture 25 [81%] [on] | ||
Front Right: Capture 25 [81%] [ | Front Right: Capture 25 [81%] [on] | ||
</pre> | </pre> | ||
Capture currently now set to 81%. | Capture currently now set to 81%. |
Revision as of 14:57, 9 July 2018
Get information on the Sound Cards
Installed devices:
root@imx8m-var-dart:~# cat /proc/asound/cards 0 [imxwm8904 ]: imx-wm8904 - imx-wm8904 imx-wm8904
List device names for playback:
root@imx6ul-var-dart:~# aplay -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server sysdefault:CARD=imxwm8904 imx-wm8904, 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:
root@imx8m-var-dart:~# amixer set 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] root@imx8m-var-dart:~# 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 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:
root@imx8m-var-dart:~# amixer set 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] root@imx8m-var-dart:~# amixer set 'Capture Input' ADC Simple mixer control 'Capture Input',0 Capabilities: enum Items: 'ADC' 'DMIC' Item0: 'ADC' root@imx8m-var-dart:~# amixer set 'DMIC Mux' DMIC2 Simple mixer control 'DMIC Mux',0 Capabilities: enum Items: 'DMIC1' 'DMIC2' Item0: 'DMIC2' root@imx6ul-var-dart:~# arecord -f cd -d 10 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
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:
root@imx8m-var-dart:~# amixer set 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] root@imx8m-var-dart:~# amixer set 'Capture Input' DMIC Simple mixer control 'Capture Input',0 Capabilities: enum Items: 'ADC' 'DMIC' Item0: 'DMIC' root@imx8m-var-dart:~# amixer set 'DMIC Mux' DMIC1 Simple mixer control 'DMIC Mux',0 Capabilities: enum Items: 'DMIC1' 'DMIC2' Item0: 'DMIC1' root@imx6ul-var-dart:~# arecord -f cd -d 10 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
Advanced Controls
amixer without a parameter will show all available controls. For example:
root@imx8m-var-dart:~# 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:
root@imx8m-var-dart:~# 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] root@imx8m-var-dart:~# 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
alsctl
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