Template:ArticleMainWriter Template:ArticleApprovedVersion
1. Article purpose
This article explains how to play audio through the ALSA audio framework in Linux® OS context. The examples below, show how to play audio on the different audio hardware interfaces of the STM32MPU boards.
2. Audio playback overview
The ALSA framework exposes audio devices associated to the board audio hardware interfaces.
The application audio streams are routed by default through the PulseAudio sound server. PulseAudio exposes audio profiles which are mapped on the ALSA sound card audio devices. The PulseAudio server provides a command line interface which allows to list audio profiles and to select a profile, to play on a specific audio interface.
The audio playback examples in following sections are given for ALSA utilities. However, the audio playbacks can be launched by other applications, such as gstreamer multimedia framework.
3. Examples
3.1. Audio playback on headset output
- Playback on ALSA device
Run audio playback on 'playback_codec' ALSA device: Template:Info
Template:Board$ aplay -D playback_codec /usr/share/sounds/alsa/Front_Left.wav
- Playback via PulseAudio
Change the Pulseaudio active profile of the sound card, to 'analog-stereo' profile: Template:Info Template:Info
Template:Board$ pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
Run audio playback:
Template:Board$ aplay /usr/share/sounds/alsa/Front_Left.wav
3.2. Audio playback on HDMI output
- Playback on ALSA device
Run audio playback on 'playback_hdmi' ALSA device: Template:Info
Template:Board$ aplay -D playback_hdmi /usr/share/sounds/alsa/Front_Left.wav
- Playback via PulseAudio
Change the Pulseaudio active profile of the sound card, to 'hdmi-stereo' profile: Template:Info
Template:Board$ pacmd set-card-profile 0 output:hdmi-stereo
Run audio playback:
Template:Board$ aplay /usr/share/sounds/alsa/Front_Left.wav
3.3. Audio playback on S/PDIF output
Template:Warning Template:Info
- Playback on ALSA device
Run audio playback on 'playback_spdif' ALSA device: Template:Info
Template:Board$ speaker-test -D playback_spdif -c 2 -F S32_LE -f 440 -t sine -l 1
- Playback via PulseAudio
Change the sound card active profile, to S/PDIF 'iec958-stereo' profile. Template:Info
Template:Board$ pacmd set-card-profile 0 output:iec958-stereo
Run audio playback:
Template:Board$ speaker-test -c 2 -F S32_LE -f 440 -t sine -l 1