Hallo Felix,
Ich habe dein Problem wie folgt auf dem Banana Pi gelöst. Das soltle sich aber auch auf einem Raspberry Pi so machen lassen:
Ich nutze dazu den Pulseaudio Server.
Installation:
aptitude install pulseaudio pulseaudio-utils
oder auch
apt-get install pulseaudio pulseaudio-utils
Danach in der ALSA-Konfig den Pulseaudio Server als default Device festlegen:
/etc/asound.conf
pcm.pulse { type pulse }
ctl.pulse { type pulse }
pcm.!default { type pulse }
ctl.!default { type pulse }
Wenn Pulseaudio läuft, rufst du eine Liste deiner Devices ab:
> pacmd list-sources | grep -e device.string -e 'name:'
name:
device.string = "0"
name:
device.string = "hw:0"
Aus dieser Liste suchtst du die Soundkarte, deren Line-IN du verwenden willst (den .monitor Eintrag) und setzt diese Karte als Default Input in der Konfiguration vom Pulseaudio-Server ein:
Einfach in /etc/pulse/default.pa am Ende:
set-default-source alsa_output.platform-1c22c00.codec.analog-stereo.monitor
Hinzufügen, oder wie auch immer deine Soundkarte heisst.
Dann mit alsamixer den richtigen Input-Pegel einstellen.
Jetzt kannst du mit mehreren Tasks simultan lesend auf den Input zugreifen, ohne das Device explizit angeben zu müssen.
Zum Testen beispielsweise folgendes eingeben:
arecord -f S16_LE -c1 -r22050 -d 30 test_1.wav & \
arecord -f S16_LE -c1 -r22050 -d 30 test_2.wav
Dann müsste der Pi simultan den Sound vom Input in beide wav-dateien 30 Sekunden lang aufnehmen.
In der Praxis könntest du dann einen Decoder-Task und einen Record-Task parallel laufen lassen oder vom Decoder aus den Record anstossen.
viele Grüße,
Andreas