LMS + lokale Wiedergabe parallel mit einem DAC

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo liebe Pi Community, :helpnew:

    nach langem Suchen und reinlesen brauche ich nun einen Rat. :conf:

    Ich verwende das Max2Play OS um Squeezelite und den LMS Server zu betreiben, soweit so gut.:daumendreh2:

    Ich möchte jedoch, während gerade Musik über den LMS läuft, lokal über ein Skript oder einen Player eine Sounddatei zusätzlich abspielen(Effekte). Ich bekomme jedoch immer folgenden Fehler schon bei einem Speaker-test(während LMS aktiv ist) --> "Playback open error: -16,Device or resource busy" wenn ich Squeezelite beende, ist ein Speaker-Test möglich, d.h. die LMS Geschichte sperrt mir meinen HifiBerry Dac +, es kann also nur eine Quelle abgespielt werden.:wallbash:

    In anderen Projekten habe ich nach bestimmten Events über Pygame einfach ein Soundfile abgespielt, ohne Probleme. Es geht in meinen derzeitigen Projekt um Automatisierung. Die zusätzliche Soundquelle wird per Fernzugriff über SaltStack ausgelöst, dass läuft wie ein lokaler Skriptaufruf nur eben über das Netzwerk. Jetzt arbeite ich mit dem DAC dass erste mal, dazu noch gleich parallele Wiedergabe - soweit der Plan.

    Habt ihr da einen Lösungsansatz, ist es doch leicht möglich? Ich müsste sonst einen zusätzlichen Pi mit Dac kaufen und über das bereits vorhandene Mischpult arbeiten.

    1) Kann ich zwei Soundquellen gleichzeitig über den DAC wiedergeben, wenn ja wie?

    2) Habt ihr für die lokale Wiedergabe empfehlungen für mich, welche Player geeignet wären? (Einfache Wiedergabe, Lautstärke müsste regelbar sein)

    Ich bedanke mich vorab für eure Hilfe,

    Lg:danke_ATDE:

  • Mir fällt spontan ein, einen Softwaremixer zu benutzen. Keine Ahnung, was unter Max2Play werkelt, der Standard in Linux wäre Alsa-Mixer.

    Du müsstest die Signale aus der Squeeze-Box und dem lokalen Player verschiedenen Eingängen des Mixers zuordnen. Dann kannst Du aus beiden Quellen Signale abspielen und diese werden, wie bei einem Musikermischpult, zusammen über die Lautsprecher wiedergegeben. So kannst Du auch die Lautstärke von LMS/Squeezebox und lokalem Player getrennt einstellen. Somit reicht an der Konsole schon aplay oder jeder beliebige Player. Über entsprechende Scripte kannst Du den Mixer sogar nutzen, um beim Abspielen des lokalen Players den andere Eingang automatisch leiser zu machen, ähnlich wie die Hintergrundmusik im Kaufhaus während der Durchsage leiser wird.

    Keine Ahnung, wie das auf deinem System zu integrieren ist, aber ich hoffe, es zeigt Dir eine Suchrichtung.

  • Mir fällt spontan ein, einen Softwaremixer zu benutzen. Keine Ahnung, was unter Max2Play werkelt, der Standard in Linux wäre Alsa-Mixer.

    Du müsstest die Signale aus der Squeeze-Box und dem lokalen Player verschiedenen Eingängen des Mixers zuordnen. Dann kannst Du aus beiden Quellen Signale abspielen und diese werden, wie bei einem Musikermischpult, zusammen über die Lautsprecher wiedergegeben. So kannst Du auch die Lautstärke von LMS/Squeezebox und lokalem Player getrennt einstellen. Somit reicht an der Konsole schon aplay oder jeder beliebige Player. Über entsprechende Scripte kannst Du den Mixer sogar nutzen, um beim Abspielen des lokalen Players den andere Eingang automatisch leiser zu machen, ähnlich wie die Hintergrundmusik im Kaufhaus während der Durchsage leiser wird.

    Keine Ahnung, wie das auf deinem System zu integrieren ist, aber ich hoffe, es zeigt Dir eine Suchrichtung.

    Hallo randar, danke für deine Antwort. Ich habe noch etliche Stunden recherchiert und getestet. Ich bin auf's selbe Ergebnis gekommen, es müsste gehen über die /etc/asound.conf Einstellung indem man dort bestimmte PCM definiert. Ich habe etliche Muster Konfigurationen im Netz probiert, leider alle ohne Erfolg. Auch auf der Hifiberry Seite selbst gibts dazu einen Tipp, jedoch auch hier ohne Erfolg.

    Hifiberry Dac + besitzt selbst keinen Hardwaremixer, über die Software bekomme ich dass auch nicht eingestellt. Auch den Weg über PulseAudio verstehe ich nicht wirklich. Wenn es um die Soundarchitektur geht, findet man nicht wirklich gute Dokumentionen darüber. Es sollte theoretisch möglich sein, aber praktisch hab ich mir da die Zähne bereits einige Stunden ausgebissen. :shy:

    Ich habe bereits umdisponiert und arbeite jetzt mit Mischpulten, bin damit unflexibler aber was soll man machen..? :angel:

    Egal welche Player, es geht um den Hardwarezugriff, dieser ist nur einmal möglich. Selbes Spiel mit VLC Player, zwei Soundfiles über VLC sind ebenso nicht möglich. Device/ Hardware busy Error16

    Verwende jetzt ein Gerät für Musik und eines für Effekte. Wobei ich da schon das nächste Folgeproblem habe, es könnte passieren das zwei Effekte zur selben Zeit durch Events ausgelöst werden. D.h. erster Ton läuft, zweiter nicht. Eventuell ein Process Kill davor setzen aber so richtig sauber ist das auch nicht. :conf::gk1:

    Zitat

    2. Configure /etc/asound.conf (or .asoundrc in your home directory)

    Code
    pcm.hifiberry {   type hw card 0 }
    
    pcm.!default {   type plug   slave.pcm "dmixer" }
    
    pcm.dmixer {   type dmix   ipc_key 1024   slave {     pcm "hifiberry"     channels 2   } }
    
    ctl.dmixer {   type hw   card 0 }

    Add the following line to /boot/config.txt and reboot:

    Code
    dtoverlay=i2s-mmap

    Hifiberry

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!