Otóż mam taki problem z konfiguracją dźwięku w Malince. Może nie tyle samego dźwięku ile jego routowania.
Jest sobie projekt radia internetowego na RPI z obsługą serwisu Pandora przez aplikację pianobar. Chciałbym jednocześnie streamować dalej to, co pianobar gra. W tym celu stoi sobie serwer icecast2 i darkice do kodowania w locie do mp3.
Jednoczesne streamowanie zrealizowane jest przez stworzenie wirtualnego wyjścia dźwięku, które wystawia ten dźwięk równolegle na domyślne wyjście audio i na standardową "kartę" aloop która jest żródłem danych dla darkice.
Jest to zrobione przy pomocy pliku : /home/pi/.asoundrc
pcm.!default {
type asym
playback.pcm "LoopAndReal"
capture.pcm "looprec"
}
pcm.looprec {
type hw
card "Loopback"
device 1
subdevice 0
}
pcm.LoopAndReal {
type plug
slave.pcm mdev
route_policy "duplicate"
}
pcm.mdev {
type multi
slaves.a.pcm pcm.MixReale
slaves.a.channels 2
slaves.b.pcm pcm.MixLoopback
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}
pcm.MixReale {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
rate 44100
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}
pcm.MixLoopback {
type dmix
ipc_key 1025
slave {
pcm "hw:Loopback,0,0"
rate 44100
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}
Plik ten znalazłem w necie, ale już się trochę naumiałem i widzę, że jest w nim co trzeba i jak trzeba.
Definiuje on kartę wirtualną "LoopAndReal" która stanowi połączenie dwóch wyjść Audio: "MixReale" przekierowanego na sprzętową kartę nr 0 i "MixLoopback" przekierowanego na kartę "Loopback" (jest widoczna w liście kart pod numerem 2 ale tu jest po nazwie).
Jednocześnie karta "LoopAndReal" jest ustawiona jako domyślna, choć to mam powielone w pliku: /etc/libao.conf
default_driver=alsa
dev=LoopAndReal
quiet
No i działa to wszystko.... ale pod jednym warunkiem, że jako karta numer 0 występuje moja zewnętrzna karta USB a wewnętrzne audio ma numer 1. Czyli gra prze kartę USB i jednocześnie streamuje/nagrywa - co tylko chcę przez kartę "Loopback" (nr 2).
Jednak jeśli zamienię miejscami kartę USB i wewnętrzne audio. Czyli wewnętrzne audio dostaje numer 0 a karta USB numerek 1, to za chiny nie gra ani nie streamuje, mimo że cała konfiguracja reszty jest identyczna.Może mamy tu kogoś znającego się na konfiguracji alsy ??