1x Stereo => 2x Mono Soundcard (ALSA)

  • Hi zusammen,

    ich versuche gerade aus einer Stereo Soundcard (Hifiberry HAT) zwei unabhängige ALSA Outputs zu erzeugen. Dies klappt aber nur so semi.


    So sieht meine asound.conf aus:

    Wenn ich nun aber aplay -L | grep HifiBerry ausführe erhalte ich folgendes:

    Meine Frage, woran liegt das? Ich möchte nur zwei Geräte haben (Left und Right) - oder passt das alles so?

    Code
    HifiBerry_Left
        HifiBerry DAC - Left Channel
    HifiBerry_Right
        HifiBerry DAC - Right Channel
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0

    Wenn's brennt 112 hilft weiter!

  • Go to Best Answer
  • Servus raspbastler,

    als allererstes fiel mir auf, dass in Deiner asound.conf bei der Definition von "HifiBerry_Right" das Schlüsselwort hint fehlt.
    Mit Deiner 1:1-Kopie erhalte ich mit aplay -L viele Fehlermeldungen.

    Nach Einfügen von hint zeigt mir Dein Kommando aplay -L | grep HifiBerry folgendes an.

    Code
     HifiBerry_Left
        HifiBerry DAC - Left Channel
    HifiBerry_Right
        HifiBerry DAC - Right Channel

    Das sieht schon mal gut aus...
    Ich werde mal weitertesten.

    EDIT1:
    Ich habe jetzt die beiden folgenden Befehle für links und rechts abgesetzt und meine Soundkarte steuert jeweils nur einen Lautsprecher an:

    Code
    $ aplay -D HifiBerry_Right  /var/lib/mpd/music/Mädal1984/07_Queen__Radio_Ga_Ga.wav # nur rechter Lautsprecher
    $ aplay -D HifiBerry_Left   /var/lib/mpd/music/Mädal1984/07_Queen__Radio_Ga_Ga.wav # nur linker Lautsprecher

    --> das funzt schon mal prinzipiell, ich will jetzt noch mit einem passenden Lied das Stereoverhalten testen...

  • meine asound.conf:

    ich verwende hw:3.0, da ich an meinem Testsystem gerade mehrere Soundkarten dran habe, bei Dir wie gehabt hw:0,0

    Mein Betriebssystem ist ein Raspberry Pi OS bookworm lite 64 bit. Neu laden über Reboot, ich weiß nicht, wie's einfacher geht...
    uname -a:

    Code
    Linux raspberrypi 6.6.74+rpt-rpi-v7 #1 SMP Raspbian 1:6.6.74-1+rpt1 (2025-01-27) armv7l GNU/Linux

    cat /etc/os-release:

    Code
    PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)"
    NAME="Raspbian GNU/Linux"
    VERSION_ID="12"
    VERSION="12 (bookworm)"
    VERSION_CODENAME=bookworm
    ID=raspbian
    ID_LIKE=debian
    HOME_URL="http://www.raspbian.org/"
    SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
    BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
  • Ich teste es jetzt gleich nochmal mit einem 60er-Oldie, bei dem die Stereokanäle sehr unterschiedlich sind, wo man sofort hört, ob nur links und nur rechts oder ein Gemisch rauskommt. Editiere dann hier das Ergebnis nach...

    EDIT:
    Ich habe es mit meinem diesbezüglichen Klassiker "California Dreaming" von den Mamas + Papas getestet.
    Einwandfreie Trennung links+rechts

    Code
    $ aplay -D hw:3,0          /var/lib/mpd/music/01_California_Dreamin.wav  # Audioausgabe an beiden Lautsprechern
    $ aplay -D HifiBerry_Right /var/lib/mpd/music/01_California_Dreamin.wav  # Ausgabe des rechten Kanals am rechten Lautsprecher
    $ aplay -D HifiBerry_Left  /var/lib/mpd/music/01_California_Dreamin.wav  # Ausgabe des linken Kanals am linken Lautsprecher
  • raspbastler Ich meinte den Links Rechts Test. Aber ich hätte da auch etwas auf die Schnelle zum Testen im Anhang, muss nur die Dateiendung weg.

    Die Reihenfolge ist links > rechts > links > beide Kanäle ... Vorsicht Laut! :green_wink:

  • ich habe es bei mir in der benutzerspezifischen ALSA-Konfigurationsdatei /home/pi/.asoundrc eingegeben, aber das ist von der Syntax identisch zur /etc/asound.conf. Es ist vielmehr so, dass die benutzerspezifische .asoundrc die allgemeinere asound.conf überbügelt. Siehe https://www.alsa-project.org/wiki/Asoundrc
    Der Startpunkt für die ALSA-Konfiguration liegt in der Datei /usr/share/alsa/alsa.conf. Dort werden diverse Konfigurationsdateien referenziert:

    Wie gesagt, ich werkle da gerade ein bißchen herum:

    schlizbäda
    January 12, 2025 at 11:25 AM
    schlizbäda
    January 25, 2025 at 5:49 PM


    Also wie bereits oben beschrieben, die verwendete ALSA-Konfigdatei editieren und dann Reboot. Reboot mangels besseren Wissens, wie man ALSA neu startet. Dauert auf meinem RPi3 ca. 20s

  • Soweit ich weiß, bzw. wusste, wird bei einem Lite OS Alsa nativ verwendet, also ohne darüber liegendem Soundserver. Unter Bullseye konnte man PulseAudio auch noch in der Desktop Version einfach deinstallieren und damit war Alsa wieder verantwortlich.

    Ob das mit dem aktuellen OS mit dem neuen Soundserver, dessen Name mir gerade nicht einfällt, weiß ich nicht (deshalb das "wusste" oben).

  • Hi schlizbäda ,

    ich habe soeben deine Asound getestet. Dies brachte das gleiche Ergebnis, wie bei meinen zuvor angestellten Tests:

    Code
    HifiBerry_Left
        HifiBerry DAC - Left Channel
    HifiBerry_Right
        HifiBerry DAC - Right Channel
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0

    Ich habe dabei die Datei in /etc/asound.conf angelegt & neugestarted und dann nochmal in /home/pi/.asoundrc. Gleicher Output. Ich führe aktuell ein dist-upgrade durch. Ich benutze nämlich einen älteren Kernel als du. Ggf. ändert sich dann das verhalten.


    EDIT: Auch nach Kernel Update gleiches verhalten.


    Bonusfrage: Wie bekomme ich es hin, dass ich beide Geräte ansprechen kann (gleichzeitig) - ohne das ein Prozess Device is Busy meldet?


    Code
    Ohne die AlsaConfig sieht der Output so aus: 
    aplay -L | grep HifiBerry
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0
        snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0


    EDIT2: vollständiges aplay -L

    aplay -L

    Wenn's brennt 112 hilft weiter!

    Edited 4 times, last by raspbastler (February 13, 2025 at 1:35 PM).

  • Post by schlizbäda (February 13, 2025 at 2:47 PM).

    This post was deleted by the author themselves (February 13, 2025 at 2:47 PM).
  • Hi raspbastler ,

    ich habe soeben versucht, die beiden Teil-Soundkarten über zwei parallele Aufrufe aus zwei SSH-Fenstern aufzurufen:

    Code
    ssh1$ aplay -D HifiBerry_Right /var/lib/mpd/music/01_California_Dreamin.wav
    ssh2$ aplay -D HifiBerry_Left  /var/lib/mpd/music/01_California_Dreamin.wav

    Eigentlich wie zu erwarten kommt beim zweiten zeitlich späteren Aufruf folgende Fehlermeldung:

    Code
    aplay: main:831: audio open error: Device or resource busy

    Wenn man drüber nachdenkt ganz logisch, denn es kann nur ein Audiostream via I2S zum DAC-Chip PCM5122 gesendet werden. Das habe ich gestern leider nicht mehr ausprobiert. Ich weiß jetzt auch nicht, ob man das über einen ALSA-Mixer bewerkstelligen kann?

    Deshalb nochmal die Frage, was willst Du genau erreichen bzw. was ist der genaue Anwendungsfall für diese Sache?

  • raspbastler,

    jetzt sind gerade etliche Mitglieder inkl. mir im virtuellen Forenstammtisch: https://plauderecke.linus.dev/channel/stammtisch
    Wenn Du Bock hast, dann komm einfach dazu, vielleicht finden wir zusammen eine Lösung?

  • Hi schlizbäda ,

    Deshalb nochmal die Frage, was willst Du genau erreichen bzw. was ist der genaue Anwendungsfall für diese Sache?

    Ich möchte mehrere Instanzen von dieser Software einsetzen und flexibel Routen.

    Ich möchte aus einer Stereo Soundcard zwei Instanzen erzeugen. Damit ich einerseits Stereo Setups bespielen kann oder zwei Zonen erhalte. Hoffe das wird nun etwas klarer.


    Ich will quasi 2x Mono => 1x Stereo Soundcard rausschicken.

    Wenn's brennt 112 hilft weiter!

  • Ich habe mir schon so etwas gedacht.
    Sozusagen die beiden Lautsprecher in verschiedenen Räumen (oder so) unabhängig bespielen. Oder einfach auf jedem Lautsprecher unabhängig vom anderen eine Audioausgabe machen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!