Play Sound
To play a sound (i.e. test.wav) to the current audio output:
$ aplay test.wav
See options with 'aplay -h'
Record Sound
To record sound from the current audio-input source to test.wav:
$ arecord test.wav
Stop recording by pressing 'CTRL-C'.
See options with 'arecord -h'.
Configure Audio Device
Before using audio you might need to do some configuration; i.e. un-mute audio-output or select the audio input source.
In Linux, this can be done by the Advanced Linux Sound Architecture (ALSA): https://www.alsa-project.org
AlsaMixer
The AlsaMixer utility provides an easy way to modify audio-settings using a graphical interface.
$ alsamixer
Press 'F1' for details on how to use it.
Usually, you will use:
the left and right arrow keys to move between the controls
up and down keys change the volume setting of a control
'm'-key to toggle 'mute' setting or enable/disable a switch setting.
AMixer
AMixer is a command-line utility to view and modify audio settings.
Use
$ amixer help
to view available options.
View Available Controls
To have a look at available controls use:
$ amixer scontrols Simple mixer control 'Headphone',0 Simple mixer control 'Headphone Playback ZC',0 Simple mixer control 'Speaker',0 Simple mixer control 'Speaker Boost',0 Simple mixer control 'Speaker Inversion',0 Simple mixer control 'Speaker Playback ZC',0 Simple mixer control 'Aux Bypass',0 Simple mixer control 'Playback',0 Simple mixer control 'Capture',0 Simple mixer control 'Capture PGA',0 Simple mixer control 'Capture PGA Boost',0 Simple mixer control 'Capture PGA ZC',0 Simple mixer control '3D Depth',0
Get Value of Control
I.e. to get the current headphone volume use:
$ amixer get Headphone Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 63 Mono: Front Left: Playback 37 [59%] [-20.00dB] [off] Front Right: Playback 37 [59%] [-20.00dB] [off]
Set Value of Control
$ amixer set Headphone 10 Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 63 Mono: Front Left: Playback 10 [16%] [-47.00dB] [off] Front Right: Playback 10 [16%] [-47.00dB] [off]
Mute/Unmute Control
Unmute Headphone output:
$ amixer set Headphone unmute Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 63 Mono: Front Left: Playback 10 [16%] [-47.00dB] [on] Front Right: Playback 10 [16%] [-47.00dB] [on]
Mute Headphone output:
$ amixer set Headphone mute Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 63 Mono: Front Left: Playback 10 [16%] [-47.00dB] [off] Front Right: Playback 10 [16%] [-47.00dB] [off]
Setup ALSA
ALSA can be configured through /etc/asound.conf.
Below is an excerpt of the asound.conf of Trizeps VIII Yocto image:
pcm.dmix_48000{ type dmix ipc_key 5678293 ipc_key_add_uid yes slave{ pcm "hw:0,0" period_time 40000 format S16_LE rate 48000 } } pcm.!dsnoop_48000{ type dsnoop ipc_key 5778293 ipc_key_add_uid yes slave{ pcm "hw:0,0" period_time 40000 format S16_LE rate 48000 } } pcm.asymed{ type asym playback.pcm "dmix_48000" capture.pcm "dsnoop_48000" } pcm.!default{ type plug route_policy "average" slave.pcm "asymed" }
'pcm.!default' is the standard entry, which is used by all programs to route their audio-data – unless otherwise told.
'slave.pcm' tells to route audio to pcm.asymed, which will use dmix_48000 configuration for playback and dsnoop_48000 for capture.