RasPi Audio

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Der Raspberry Pi als Audio Zuspieler. Dabei habe ich folgendes im Auge:

  • RasPi als Internetradio (Vielleicht sogar Batterie betrieben, mal schauen)
  • PulseAudio CLient
  • Steuerung Aktivlautsprecher

Im Wesentlichen unterscheiden sich die Aufgaben nur in drei zu betrachtenden Teilbereichen.

  • Wie gelangen die (Audio-)Daten in den RasPi?
  • Wie gelangen die Audiodaten zu den Lautsprechern?
  • Wie kann man die beteiligten Audiokomponenten steuern?

Hier sammele ich alles was mir bei meinen Test begegnet ist.

Angefangen hat alles mit alsa-info. Um mir mal einen Überblick zu verschaffen. Und bevor ich mit pulseaudio weitermache, erst mal sicherstellen, dass bei alsa alles in Ordnung ist.

 1 pi@raspi3B:~ $ alsa-info 
 2 ALSA Information Script v 0.4.64
 3 --------------------------------
 4 
 5 This script visits the following commands/files to collect diagnostic
 6 information about your ALSA installation and sound related hardware.
 7 
 8   dmesg
 9   lspci
10   lsmod
11   aplay
12   amixer
13   alsactl
14   /proc/asound/
15   /sys/class/sound/
16   ~/.asoundrc (etc.)
17 
18 See '/usr/sbin/alsa-info --help' for command line options.
19 
20 pcilib: Cannot open /proc/bus/pci
21 lspci: Cannot find any working access method.
22 cat: /tmp/alsa-info.CQsDCvmMsd/acpidevicestatus.tmp: No such file or directory
23 pcilib: Cannot open /proc/bus/pci
24 lspci: Cannot find any working access method.
25 Newer version detected: 0.4.65
26 To view the ChangeLog, please visit http://www.alsa-project.org/alsa-info.sh.changelog
27 ALSA-Info script has been downloaded /tmp/alsa-info.JgSNksB4aP.
28 Please, re-run it from new location.

locate ist schon installiert. Gut.

updatedb
locate .wav
1 /usr/share/sounds/alsa/Front_Center.wav
2 /usr/share/sounds/alsa/Front_Left.wav
3 /usr/share/sounds/alsa/Front_Right.wav
4 /usr/share/sounds/alsa/Noise.wav
5 /usr/share/sounds/alsa/Rear_Center.wav
6 /usr/share/sounds/alsa/Rear_Left.wav
7 /usr/share/sounds/alsa/Rear_Right.wav
8 /usr/share/sounds/alsa/Side_Left.wav
9 /usr/share/sounds/alsa/Side_Right.wav

Files mit deren Hilfe man sich einen Eindruck über die Konfiguration verschaffen kann, von denen aber keine einzige im System angelegt ist.

                       "/etc/alsa/conf.d"
                       "/etc/asound.conf"
                       "~/.asoundrc"

Es gibt nur /usr/share/alsa/alsa.conf.

pi@raspi3B:~ $ cat /proc/asound/cards 
0 [ALSA           ]: bcm2835_alsa - bcm2835 ALSA
                     bcm2835 ALSA
pi@raspi3B:~ $ amixer -c 0 info
Card hw:0 'ALSA'/'bcm2835 ALSA'
 Mixer name    : 'Broadcom Mixer'
 Components    : 
 Controls      : 5
 Simple ctrls  : 1
pi@raspi3B:~ $ amixer -c 0 scontrols
Simple mixer control 'PCM',0
pi@raspi3B:~ $ amixer -c 0 controls
numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
numid=5,iface=PCM,name='IEC958 Playback Con Mask'
numid=4,iface=PCM,name='IEC958 Playback Default'
pi@raspi3B:~ $ amixer -c 0 sget PCM
Simple mixer control 'PCM',0
 Capabilities: pvolume pvolume-joined pswitch pswitch-joined
 Playback channels: Mono
 Limits: Playback -10239 - 400
 Mono: Playback -76 [96%] [-0.76dB] [on]

pi@raspi3B:~ $ amixer -c 0 cget numid=1 numid=1,iface=MIXER,name='PCM Playback Volume'

 ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
 : values=-76
 | dBscale-min=-102.39dB,step=0.01dB,mute=1

pi@raspi3B:~ $ amixer -c 0 cget numid=2 numid=2,iface=MIXER,name='PCM Playback Switch'

 ; type=BOOLEAN,access=rw------,values=1
 : values=on

pi@raspi3B:~ $ amixer -c 0 cget numid=3 numid=3,iface=MIXER,name='PCM Playback Route'

 ; type=INTEGER,access=rw------,values=1,min=0,max=3,step=0
 : values=1

pi@raspi3B:~ $ amixer -c 0 cget numid=4 numid=4,iface=PCM,name='IEC958 Playback Default'

 ; type=IEC958,access=rw------,values=1
 : values=[AES0=0x00 AES1=0x00 AES2=0x00 AES3=0x00]

pi@raspi3B:~ $ amixer -c 0 cget numid=5 numid=5,iface=PCM,name='IEC958 Playback Con Mask'

 ; type=IEC958,access=r-------,values=1
 : values=[AES0=0x02 AES1=0x00 AES2=0x00 AES3=0x00]


Files mit nützlichen Informationen:

  • /proc/asound/version
  • /proc/asound/cards
  • /proc/asound/devices
  • /proc/asound/timers
  • /proc/asound/pcm