Ich habe große Probleme mit der Konfiguration von ALSA und Loopback auf meinem System [Ubuntu 22.04]. Ich möchte die Kopfhörer- und Loopback-Streams kombinieren, sodass ich beim Abspielen von Audio sowohl den Ton über die Audiobuchse hören als auch zurückschleifen kann, was ich mit einem Programm verwenden kann. [Um das Frequenzmuster zu analysieren]
Ich befolgte die Anweisungen vonhttps://github.com/maximtrp/spectrumLEDund lud einen Loopback-Kernel snd-aloop
aplay -l gibt Folgendes aus;
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
und ich habe versucht, eine asound.conf in /etc wie folgt zu erstellen;
pcm.!default {
type plug
playback.pcm "out"
capture.pcm "loopin"
}
pcm.out {
type plug
slave.pcm {
type multi
slaves {
a { channels 2 pcm "output" }
b { channels 2 pcm "loopout" }
}
bindings {
0 { slave a channel 0 }
1 { slave a channel 1 }
2 { slave b channel 0 }
3 { slave b channel 1 }
}
}
ttable [
[ 1 0 1 0 ] # left -> a.left, b.left
[ 0 1 0 1 ] # right -> a.right, b.right
]
}
pcm.loopout {
type dmix
ipc_key 1025
slave.pcm "hw:1,0,0"
slave {
period_time 0
period_size 1024
buffer_size 8192
channels 2
}
bindings {
0 0
1 1
}
}
pcm.loopin {
type plug
slave.pcm "hw:1,1,0"
}
pcm.output {
type dmix
ipc_key 1024
slave.pcm "hw:0,0"
slave {
period_time 0
period_size 1024
buffer_size 8192
channels 2
}
bindings {
0 0
1 1
}
}
Was auch immer ich mache, der Loopback scheint nicht gleichzeitig mit der Wiedergabe zu funktionieren. Ich kann die Wiedergabe also entweder mit
$ aplay-Datei.wav
[oder]
$ mpv musik.mp3
das nur eine Audioausgabe über die Kopfhörerbuchse bereitstellt und keinen Stream an das Programm sendet, mit dem ich die Frequenz analysieren möchte ...
Die einzige Methode, die zu funktionieren scheint, ist die Verwendung
$ aplay Datei.wav -D hw:1,1
Es wird jedoch keine Ausgabe über die Audiobuchse wiedergegeben.
stimmt etwas mit meiner asound.conf nicht?
Ich habe versucht, das Internet zu durchforsten, konnte aber nichts finden, was funktionierte.
Ich habe eine Basisversion vonhttps://stackoverflow.com/questions/7002423/how-to-mix-multiple-pcm-streams-using-alsa
asound.conf
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:1,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}
ctl.dmixer {
type hw
card 0
}
aber das scheint auch nicht zu funktionieren;
Ich bin auch wirklich verwirrt, warum es zwei Loopbacks gibt;
Kann mir das jemand erklären? Wie funktioniert dieses Dmix- und Multi-Plugin überhaupt? Die Dokumentation scheint so verwirrend