Raspberry sind ja bekannt für die dürftige Audioqualität. Wer HiFi Sound aus dem Ding rausholen will, muss nachhelfen - mit separaten Digital-Analog-Konvertern (DAC). HifiBerry sind bekannte Vertreter dieses Genres; ich hab mir den DAC pHAT von Pimoroni geleistet. Einer so gut wie der andere, dacht ich mir. Außerdem kommt der DAC pHAT mit dem gleichen Formfaktor wie der Raspberry Zero daher. Wen man also will, kann man das Ding später noch in einen Mini Audioplayer verwerten.

Mein Ziel ist ein anderes - eine Stompbox, also so ein Ding, wo man mit den Füßen drauftritt und Sound rauskommt.

Kostenpunkt des DAC pHAT bei The PiHut: 12 Pfund = 14 Euro.

Löten

Die Mini Platine kommt mit separater Steckleiste daher; entweder man lötet die Anschlüsse direkt auf die Löscher, odder man lötet die Steckleiste fest. Ich hab mich für letzteres entschieden - dann kann ich zum Prototyping Kabel setzen wie ich will - oder es komplett auf den Raspi setzen.

Es ist nicht nötig alle Pins anzulöten, nur die Folgenden werden benutzt:

  • Pin 1 (3.3V)
  • Pin 2 (5V)
  • Pin 12 (GPIO 18)
  • Pin 35 (GPIO 19)
  • Pin 39 (Ground)
  • Pin 40 (GPIO 21)

Installation

Pimoroni macht einem die Installation einfach:

$> curl -sS get.pimoroni.com/phatdac | bash
$> sudo reboot

Pimoroni hat es sich selber aber auch leicht gemacht - es nutzt die HifiBerry Treiber.

speaker-test

Das war es auch schon. Testen kann man die erfolgreiche Installation mit dem Tool speaker-test:

$> speaker-test -l5 -c2 -t wav

speaker-test 1.0.28

Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 16 to 131072
Period size range from 8 to 65536
Using max buffer size 131072
Periods = 4
was set period_size = 32768
was set buffer_size = 131072
 0 - Front Left
 1 - Front Right
Time per period = 0.730304
 0 - Front Left
 1 - Front Right
Time per period = 2.733773
 0 - Front Left
 1 - Front Right
Time per period = 3.408383
 0 - Front Left
 1 - Front Right
Time per period = 2.735468
 0 - Front Left
 1 - Front Right
Time per period = 3.407138

All done!

Wer Probleme, sollte sich die Audio Devices anzeigen lassen. Bei mir sieht das so aus:

pi@raspberrypi:/usr/share/scratch/Media/Sounds $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Audiokonvertierung

Der DAC Chip will die Audiofiles mundgerecht zubereitet haben. Ich will bei meinem Stompbox Projekt kaum Latenz haben und spiele deswegen unkomprimierte WAV Files mit aplay ab.

Der eingebaute Audio-Chip des Raspberry hatte mit den unter /usr/share/scratch/Media/Sounds mitgelieferten Files kein Probleme; der DAC pHAT dagegen mault:

pi@raspberrypi:/usr/share/scratch/Media/Sounds $ aplay ./Instruments/Trumpet1.wav 
Playing WAVE './Instruments/Trumpet1.wav' : Signed 16 bit Little Endian, Rate 11025 Hz, Mono
aplay: set_params:1239: Channels count non available

audio files konverieren mit avconv

Tja, der DAC pHAT will es Stereo und kann selber keine Audio Files konvertieren; das muss man selber machen.

Um die Mono Files, wie sie zb unter /usr/share/scratch/Media/Sounds findet, zu konvertieren kann man das avconv Tool nutzen, das im Paket libav-tools mitgeliefert wird:

$> sudo apt-get install libav-tools
$> avconv -i Instruments/Trumpet1.wav -channel_layout 2 /tmp/out.wav

Ich dachte ja zuerst, dass den Chip die Bitrate stört - aber das ist kein Problem.

Weitere Beiträge zum Thema