bisher habe ich über den Thread DSP - Best Practice bei Formatumwandlung und Faltung? leider keine Lösung für mein Problem gefunden. Daher gehe ich jetzt den Weg über diesen dedizierten Thread.
Ich würde gerne mit Sampleratekonvertierung über sox (anstatt der in meinem DAC integrierten) experimentieren. Bisher scheitere ich an der Anbindung über alsa. In meinem jetzigen Setup läuft die Faltung über brutefir mit der fest eingestellten Samplingfrequenz von 44,1 kHz. Dabei gibt brutefir über ein alsa-device an USB-Audio aus, und nimmt Daten über zwei alsa-devices an. Das eine alsa-device ist mit USB-Audio verbunden, das andere ist ein sogenanntes "alsa loopback" device, an das mein Softwareplayer (kodi) angeschlossen ist.
Mein Ziel ist es, brutefir und den USB-DAC mit 96 kHz laufen zu lassen. Für USB-Audio ist dies einfach umsetzbar, da der gesamte USB-Audio Pfad einfach darauf konfiguriert wird. Aber wie wandle ich die von kodi kommenden Daten (typischerweise 44,1 kHz) auf 96 kHz um? Ich hoffe, dass ihr mir hierbei ein wenig Hilfestellung geben könnt. Kann ich die Sampleratenkonvertierung per sox-SRC in eines der vorhandenen alsa-devices einbinden? Oder muss ich ein neues alsa-device definieren und dem loopback device vorschalten?
Als Referenz hier noch die aktuelle alsa Konfiguration mit
- "usbaudio" = USB-Audio in/out
- "aloopp" = alsa loopback playback (kodi gibt hierhin die Daten aus)
- "aloopc" = alsa loopback capture (brutefir holt hier die Daten von kodi ab)
- ""brutefir_44k1_32b" = dmix device, um kodi zu korrekten Auswahlmöglichkeit zu bringen
Code: Alles auswählen
#
# USB audio (DAC)
#
pcm.usbaudio {
type hw
card 2
device 0
format S32_LE
channels 2
}
#
# ALSA loopback (capture/playback)
#
pcm.aloopc {
type hw
card Loopback
device 1
format S32_LE
channels 2
}
pcm.aloopp {
type hw
card Loopback
device 0
}
# KODI needs "dmix" to list both brutefir devices
pcm.brutefir_44k1_32b {
type dmix
ipc_key 1024
slave {
pcm "aloopp"
format S32_LE
rate 44100
period_size 512
buffer_size 8192
}
}
#
# Default (TV HDMI)
#
pcm.!default {
type hw
card 0
device 3
}
ctl.!default {
type hw
card 0
device 3
}
Andree