VAR-SOM-MX6 Audio record play

From Variscite Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
VAR-SOM-MX6 - Audio Record/Play

Get information on the Sound Cards

Installed devices:

root@var-som-mx6:~# cat /proc/asound/cards
 0 [tlv320aic3xaudi]: tlv320aic3x-aud - tlv320aic3x-audio
                      tlv320aic3x-audio
 1 [imxhdmisoc     ]: imx-hdmi-soc - imx-hdmi-soc
                      imx-hdmi-soc
Note: imx-hdmi-soc will be listed only if an HDMI cable is connected.

List device names for playback:

root@var-som-mx6:~# aplay -L

null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=tlv320aic3xaudi
    tlv320aic3x-audio, 
    Default Audio Device
sysdefault:CARD=imxhdmisoc
    imx-hdmi-soc, 
    Default Audio Device
surround40:CARD=imxhdmisoc,DEV=0
    imx-hdmi-soc, 
    4.0 Surround output to Front and Rear speakers
surround41:CARD=imxhdmisoc,DEV=0
    imx-hdmi-soc, 
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=imxhdmisoc,DEV=0
    imx-hdmi-soc, 
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=imxhdmisoc,DEV=0
    imx-hdmi-soc, 
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=imxhdmisoc,DEV=0
    imx-hdmi-soc, 
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers

Audio Playback

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

$ amixer set PCM 127

Play audio:

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

Example:

root@var-som-mx6:~# amixer set PCM 125
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 125 [98%] [-1.00dB]
  Front Right: Playback 125 [98%] [-1.00dB]
root@var-som-mx6:~# 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

$ arecord -f cd -d 10 -D hw:0,0 test.wav
$ aplay test.wav 

Example:

root@var-som-mx6:~# arecord -f cd -d 10 -D hw:0,0 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
root@var-som-mx6:~# ^C
root@var-som-mx6:~# 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@var-som-mx6:~# amixer
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 125 [98%] [-1.00dB]
  Front Right: Playback 125 [98%] [-1.00dB]
Simple mixer control 'Line',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]

...

Simple mixer control 'Right PGA Mixer Mic3R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]

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 'HP DAC'
Simple mixer control 'HP DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 118
  Mono:
  Front Left: Playback 71 [60%] [-23.50dB]
  Front Right: Playback 71 [60%] [-23.50dB]

HP DAC is a headphones DAC gain currently set to 60%. The optional values are 0-118 equal to 0%-100%.

$ amixer   sset 'HP DAC' 117 117
Simple mixer control 'HP DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 118
  Mono:
  Front Left: Playback 117 [99%] [-0.50dB]
  Front Right: Playback 117 [99%] [-0.50dB]

Headphones DAC gain currently now set to 99%.

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