Stereo mit zwei Bluetooth-Lautsprechern als L/R-Paar per Pulseaudio

  • Wie hier (Bluetooth JBL FLIP 4 Stereo Problem) schon mal beschrieben, hatte ich meine liebe Not zwei JBL-Flip mittels MPD über Bluetooth anzusteuern und zwar dann, wenn der zweite Flip per "Connect+" mit dem ersten verbunden war. Die Sound brach ab, wenn der Stream gestoppt und neugestartet wurde.

    Jeder Flip alleine lief hingegen prima. Aber so hat man ja kein Stereo.


    Unter Alsa hatte ich es geschafft, beide Flips mit getrennten Verbindungen über den internen Bluetooth vom Rpi3 anzusprechen. Dabei hatte ich allerdings übelsten asynchronen Sound.

    Ein Adapter alleine scheint es nicht zu schaffen.


    Mein Lösungsansatz läuft mit folgenden Zutaten:

    - Pulseaudio

    - zwei externe USB-BT-Adapter


    Folgende Pakete werden zwingen benötigt:

    Code
    ii  libbluetooth3:armhf                  5.43-2+rpt2+deb9u2                armhf        Library to use the BlueZ Linux Bluetooth stack
    ii  pi-bluetooth                         0.1.10                            all          Raspberry Pi 3 bluetooth
    ii  gstreamer1.0-pulseaudio:armhf        1.10.4-1                          armhf        GStreamer plugin for PulseAudio
    ii  libpulse0:armhf                      10.0-1+deb9u1                     armhf        PulseAudio client libraries
    ii  libpulsedsp:armhf                    10.0-1+deb9u1                     armhf        PulseAudio OSS pre-load library
    ii  pulseaudio                           10.0-1+deb9u1                     armhf        PulseAudio sound server
    ii  pulseaudio-module-bluetooth          10.0-1+deb9u1                     armhf        Bluetooth module for PulseAudio sound server
    ii  pulseaudio-utils                     10.0-1+deb9u1                     armhf        Command line tools for the PulseAudio sound server

    Die Datei /etc/bluetooth/main.conf muss folgendes enthalten:

    Code
    [General]
    Enable=Source,Sink,Media,Socket


    Anschließend wird über bluetoothctl jeder Flip mit einem Adapter gepairt, getrustet und connected.

    Das kann man z.B. hier nachlesen: https://pi-buch.info/bluetooth…uration-mit-bluetoothctl/

    Den Adapter-Wechsel nimmt man mit dem Kommando select <MAC> vor.


    Damit ist die Bluetooth-Sache schon mal abgeschlossen.


    Beim Pulseaudio müssen folgende Einstellungen vorgenommen werden.

    Ich verwende die systemweite Konfiguration mittels der Datei /etc/pulse/default.pa.

    Hier wird das load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 entsprechend aktiviert.


    Was ich nicht geschafft habe ist, dass beim Start von Pulseaudio alles von Pulse eingerichtet wird, also auch die BT-Verbindung zu den Flips.

    Daher mache ich es, wie hier zu sehen, über ein Skript:


    Die Sleeps waren nötig, weil sich das Verbindung-Aufbauen manchmal verhaspelte.


    Wer MPD verwendet sollte nun noch dafür sorgen, dass der so definierte Pulseaudio-Sink verwendet wird, anzupassen in /etc/mpd.conf.

    Code
    audio_output {
        type        "pulse"
        name        "My Combined Pulse Output"
        server        "127.0.0.1"        # optional
    
    }


    Wer lieber mplayer verwendet kommt so zum ersten Test:

    mplayer -ao pulse 08.\ ZZ\ Top\ -\ Sleeping\ Bag.flac

    Der Song ist prädestiniert, um Latenzen zu entdecken. 8)


    Kommentare:

    - Bei Verwendung nur eines BT-Adapters: Entweder keine Verbindung zu beiden Flips oder übelste Asynchronität

    - Adapter-Kombination aus Raspi-BT und USB-BT: Hier glaube ich auch Asynchronität vernommen zu haben; wenn auch nur gering.

    - Den Raspi-BT habe ich in der /boot/config.txt abgeschaltet: dtoverlay=pi3-disable-bt

    - Das Skript muss nach jedem erneuten Einschalten der Flips ausgeführt werden. Ein automatisches Verbinden und nutzen der Konfiguration klappte leider nicht.

    Edited once, last by presskopf: Korrektur ().

  • presskopf

    Changed the title of the thread from “Stereo mit zwei Bluetooth-Lautsprechern als L/R-Paar” to “Stereo mit zwei Bluetooth-Lautsprechern als L/R-Paar per Pulseaudio”.
  • Hallo,

    Model: RPi 3B+

    Display: Waveshare 3.2 LCD(B)

    onboard-Bluetooth disabled#

    Bluetooth-USB-Stick: 2x Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

    keine SD-Karte, bootet von System-USB-Stick

    Musik: Musik-USB-Stick

    Internet: WLAN 5GHz-Band

    Speaker: 2x TWNT-BT023


    OS: 2019-07-10-raspbian-buster.img (booting to CLI)

    Edit4: OS: 2020-08-20-raspios-buster-armhf-lite.zip

    NewTron-Radio (display, newtron und usbmount) installiert, Dank veloci

    Edit5: Edit2: in Datei /boot/config.txt diese Zeile: dtoverlay=waveshare32b geändert in dtoverlay=waveshare32b:rotate=270, Anleitung: 3.2" Waveshare Touchscreen installieren,

    danach Kalibrieren mit sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate


    Edit: sudo apt-get purge bluealsadann Deinem Beitrag #1 gefolgt


    Edit3: der mpd.service darf während das pulseaudio-Skript ausgeführt wird nicht laufen,

    also vorher stoppen und nachher wieder starten; und wenn pi in group bluetooth ist, braucht man kein sudo für

    bluetoothctl


    ich habe es mit dem aktuellen raspbian-buster und dem newtron-radio-setup-v.3.0.sh und 2 gleichen Bluetooth-Lautsprechern versucht und bin zuerst gescheitert.


    Mit eine Suchmaschinen-Suche nach

    Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected

    fand ich, man solle die BT-Lautsprecher removen und neu pairen und trusten.


    und was soll ich sagen: danach gings, großes Dankeschön presskopf


    Schönen Gruß, kle

    Edited 3 times, last by kle: 23.10.2020: mpd service stoppen, pulseaudio-skript ausführen, mpd service starten. Neue Anleitung für Waveshare 3.2" Touchscreen ().

  • Ich muss hier mal einen Nachtrag bringen.


    Oberes Setup läuft bisher gut. Nun wollte ich eine Raspi-Cam anschließen und diese mittels motion in meinem LAN bereitstellen; so 2 - 5 Bilder pro Sekunde sollen gestreamt werden. Das funktioniert, aber es beeinträchtigt in erheblichem Maße die Bluetooth-Verbindung. Und zwar so stark, dass der Bluetooth-Funk periodisch zusammenbricht und der Musikgenuss komplett dahin ist.

    Bisheriges Fazit: Das geht zusammen nicht. Vor der Musik deaktiviere ich manuell (per Button) den motion-Dienst und die Musik löppt.


    Ich habe bisher keine Recherchen unternommen, ob das überhaupt funktionieren kann. Im Prinzip bin ich mit der Lösung zufrieden.

    Sollte jemand eine Idee haben, wie Bluetooth-Musik nach obigem Setup zusammen mit Motion oder Raspi-Cam im allgemeinen funktioniert, dann nur raus mit der Sprache.

  • presskopf

    • hast Du versucht, den Kamera-Stream über WLAN zu streamen?
    • kannst Du Deinen Beitrag #4 präzisieren (s.u.)?

    --- schnipp-schnapp --->

    Hardware:

    • Model RPi 3B
    • Audio: Stereo mit 2 BT-Lautsprechern (JBL Flip 4)
    • USB: 2 Bluetooth-USB-Sticks
    • Interner Bluetooth-Controller: deaktiviert
    • Display: ---
    • Kamera: ??? welche (??? am Kamera-Stecker)
    • Internet: ??? LAN-Kabel oder WLAN (für Kamera-Stream)


    Software:

    • OS: <datum> Raspbian Buster (Lite oder Desktop?)
    • Sound: pulseaudio
    • Player: mpd
    • Kamera-Stream: ???motion


    (Info: die Bluetooth-Lautsprecher werden über pulseaudio modul pulseaudio-module-bluetooth angesteuert, also nicht über bluealsa)

    <--- schnipp-schnapp ---


    hyle der interne Bluetooth-Controller ist deaktiviert, dafür gibt es 2 Bluetooth-USB-Sticks. Da vermute ich, daß beim RPi 3B die interne Anbindung des LAN-Ports über USB der Flaschenhals ist.
    Spannend wäre, ob es besser ist, die Kamera über WLAN zu streamen?

    Schönen Gruß, kle

  • Hallo zusammen,


    war den ganzen Tag unterwegs, aber nun:

    Klar, der Raspi hängt am LAN-Kabel und holt sich dort den Stream aus dem Internet.

    Bei der Gelegenheit könnte ich nochmal checken, wie sich mp3s auf der SD-Card verhalten.


    • Model RPi 3B, Linux raspi-3 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
    • Raspberry Pi reference 2018-06-27
    • Audio: Stereo mit 2 BT-Lautsprechern (JBL Flip 4)
    • USB: 2 Bluetooth-USB-Sticks
    • Interner Bluetooth-Controller: deaktiviert
    • Display: Ja, dürfte aber nicht relevant sein: ein Arudino Mega mit Firmata und daran ein 20x4 per I2C
    • Kamera: am Stecker, Raspberry Cam (glaube V2 mit 1024x768)
    • Internet: LAN-Kabel
    • Netzteil: goobay Netzteile beträgt 5,1 bzw 5,25V, mit 3,1 A und 2,1 A


    Software:

    • OS: Linux raspi-3 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux, Raspbian Stretch (Lite, no Desktop)
    • Sound: pulseaudio
    • Player: mpd
    • Kamera-Stream: motion (Dienst stellt Einzelbilder im Webserver bereit)

    Edited 3 times, last by presskopf ().

  • super Deine Info :thumbup:


    Zwei Ideen:

    • hast Du zufällig einen RPi 4B, der hat eine bessere Anbindung des LAN-Ports.
    • kannst Du mal testen, mit dem RPi 3B die Kamera über WLAN zu streamen

    STF hat den Datendurchsatz von SBCs (STF nennt sie "adipöse Kreditkarten") untersucht.

    Demnach erwarte ich für den Kamerastream beim RPi 3B über WLAN: 4,24 MB/s = ca. 34 MBit/s

    Schönen Gruß, kle

    Edited 2 times, last by kle ().

  • presskopf

    Audio geht via pulseaudio über die 2 Bluetooth-USB-Controller.

    vtl. der Kamera-Stream via motion über [W]LAN.

    ich habe kein motion, kann sein, daß es allein (ohne Kamera-Stream) ein CPU-Killer ist.

    Das siehst Du mit top oder htop.


    --- schnipp-schnapp --->

    Erledigt, ist eingefügt.

    nee, Model und OS (2 teilig) sollen so aussehen in Beitrag #8

    <--- schnipp-schnapp ---

    Edited 5 times, last by kle ().

  • Netzteil bitte auch im Beitrag #8 einfügen, danke.

    done


    Hmmm, eigentlich sollten es ja >2.5 A sein. Bin ich eventuell doch tatsächlich auf den Netzteilfehler reingefallen?

    Das werde ich checken. Irgendwo habe ich noch welche mit 2,5 oder 3 A. Muss nur mal suchen...


    Ich hatte mir auch schon mal überlegt, einen Stützkondensator an die Pinleiste zu stecken.

    Muss nur mal gucken, wie ich das hinkriege, die ist nämlich mit einem Flachbandkabel belegt.

  • Schon gecheckt mit einem 3.1 A Netzteil: kein Einfluss

    Ferner habe ich mal an den Prozess-Prios geschraubt: mpd und pulseaudio hoch und motion runter - leider auch kein Einfluss

    Irgendwo wird wohl ein Cache volllaufen.

  • von der Spannung des Netzteils schreibst Du nichts.


    Die offiziellen Netzteile der "Raspberry Pi Foundation" haben 5.1V/2.5A.

    Bei Strömen bis 2.5A bleibt die Spannung konstant 5.1V.


    Als Stützkondensator kannst Du nicht irgendwas nehmen.


    Im Forum wird immer das offizielle Netzteil (5.1V/2.5A) empfohlen.


    Schönen Gruß, kle