Freitag, 5. Februar 2021

Tatsächlich online miteinander Singen (Followup)

Low-Latency Streaming Solutions

Eine Übersicht für Einsteiger.

 Seit meinem ersten Artikel sind sieben Pandemie-Monate vergangen. Die MVP Webversion von Digital Stage ist im internen Test. Aktuell beschäftigt die Integration der OV Box die Entwicklung. Dieser Artikel berichtet über die Tests mit der Box. 

Viele Chöre haben sich in der Pandemie mit den gängigen Sprachkonferenz Anbietern auseinandergesetzt, Zoom, GoogleMeet, Jitsy, Skype, Dischord, Teams und machen Proben damit in einem Stummfilm-Modus. Chorleiter singt, alle anderen sind stummgeschaltet, jeder singt zu den Tönen des Chorleiters für sich aber weder der Chorleiter kann die Sänger hören, um zu korrigieren, noch hören sich die Sänger untereinander. Die Verzögerung/Latenz zwischen den Teilnehmern ist oft im Sekundenbereich, Damit kann man nicht zusammen singen. Vielleicht gibt es noch Call/Response Techniken - besser als nichts.

Die Audioqualität ist, was Musik betrifft bestenfalls grausam, sobald Sprachcodecs die Frequenzen auf den Sprachbereich optimieren. Am tödlichsten für die Musik ist die sogenannte Pegelwaage, die fast immer zur Verbesserung der Kommunikation in Sprachkonferenzen eingesetzt wird. Vereinfacht ausgedrückt ist es eine programmatische Implementation des Rechts des Lautesten. Alles was weniger laut ist, unterhalb eines bestimmten Lautstärkepegels, wird als Nebengeräusch ausgefiltert. Die leisen Stellen gehören aber zur Musik - das Ausfiltern macht die Musik kaputt.

Von diesen zugänglichen Sprachkonferenzlösungen oder wie man damit doch irgendetwas Probenartiges tun kann, ist in diesem Artikel nicht die Rede.

Hier geht es um Anwendungen, die Musik vollständig und qualitativ hochwertig übermitteln und dann noch in einem so engen Zeit-Fenster der Verzögerung (35-40ms), dass man sich synchronisieren und gemeinsam musizieren kann.



Derzeit bekannte Lösungen:

  • digital-stage.org
    Open Source, gemeinnützige gGmbH,
    finanziert durch Partner-Verbände, frei für Mitglieder dieser
    digital-stage-web,  beta seit 12/2020
    digital-stage-box und digital-stage-pc basieren auf  ov-box von Giso Grim
    3D Audio
    github: https://github.com/digital-stage
  • JackTrip Virtual Studio
    Kommerzieller Dienst betrieben von JackTrip, LLC
    Kosten: beginnend bei $1 pro Musiker/Stunde flat + $1 pro weiterem Musiker/Stunde
    gemanagte Server nur in den USA/Canada
    kein Webclient
    Box: $149/$200 mit Audio Equipment oder DIY 
    kein 3D-Audio
    github: https://github.com/jackaudio/jack2/ https://ccrma.stanford.edu/software/jacktrip/
  • Jamulus
    Open Source
    keine Box, kein Webclient, kein 3D Audio
    Public Server oder Server auf eigenem PC
    github: http://github.com/corrados/jamulus
  • Sagora
    free, nicht open source
    Fork von Jamulus
    keine Box, kein Webclient, kein 3D Audio
    Server in USA, Brasilien, Columbien, Argentinien
    github: https://github.com/sagora-repositorios/jamulus/tree/sagora1.1
  • Aloha by Elkaudio
    Schweden
    nur Newsletter aktuell
  • Soundjack
    free, closed source
    keine Box, kein Webclient, kein 3D Audio
    Dropbox – Installationsanleitung SoundJack – Machen Sie sich das Leben leichter
  • Jamkazam
    Kommerziell
    Applikation
    keine Box, kein Webclient, kein 3D Audio
    Kosten: Freetier Session max 1h, 4h/Monat Spielzeit, max 4 Personen,
    danach danach $4,99 $9,99 monatlich
  • Lola
    Spezielle Hardware wie Kameras, Thunderbolt-Audio etc benötigt,
    Vorschlag Invest 12k€ ,
    Software nur für Bildungseinrichtungen gratis
  • LIPS
    BMWi-projekt Music-remote-live Forschungsprojekt
    (1) improving the immersive audio/visual experience for connected users,
    (2) developing the technological background for connecting and merging various devices and locations into one production network.
    Ergebnis Whitepaper: http://lips-project.de/documents/LIPS_whitepaper.pdf
  • artsmesh
    donationsware
    not much activity since 2015
  • NinJam, JamTaba
    Opensource
    Application, Video
    keine Box, kein Webclient, kein 3D Audio
    2 Server in Deutschland
  • Ultragrid
    Komponente für Entwickler
  • MusicBridge
    Jamulus based
    Kommerziell:
    musicBridge device - The device costs £100 (VAT included)
    musicBridge Connect subscription example prices:
    Quartet - £18/month, Small Choir (15 singers) - £60/month, Chorus (30 singers) - £112.50/month
    Support chat/mail 
    kein 3D Audio
In diesem Artikel beleuchte ich den Bau der OV Box von Giso Grimm, die auch dann für Digital Stage verwendet werden kann.

Box? - ich hab doch einen PC...

Für das Musizieren ist eine möglichst geringe Verzögerung für Audio zentrale Vorrausetzung. So eine Box basierend auf einem RaspberryPi beschäftigt sich nur mit der Übermittlung des Audiodatenstroms. Ein PC oder Mac tut das im Allgemeinen nicht. Es kann eine Vielzahl von Programmen installiert sein,  im Hintergrund Dienste ausgeführt werden, die die Performance stören. Eine RaspberryPi basierte Box spielt deshalb in vielen der bekannten Lösungen eine Rolle und macht den Ansatz zu einer Plug- and Play Lösung

Welche Rolle spielt der Internetanschluss?

Liest man die Angebote der Provider, entsteht der Eindruck es ginge ausschließlich um den Download  (Daten aus dem Internet) in MBps (Megabit pro Sekunde) und nur nebenbei um den Upload. Tatsächlich spielen für den Anwendungsfall des gemeinsam Musizierens noch zwei weitere Größen eine Rolle: der Paketverlust und der Jitter (Varianz der Laufzeit).

Schaut man einen Film über Netflix, werden viele Daten downstream (aus dem Internet zum Nutzer) übertragen, upstream (vom Nutzer zum Internet) nur eine kleine Menge: das Betätigen den Play Knopfes, vielleicht eine Bewertungs-Klick oder ein Kommentar - Kleinkram. Deshalb lauten Tarifangebote z.B. 100/10 - im Langtext 100 Mbps Download, 10 Mbps Upload. Spielt man selber Musik und Bilder wird der Upload Kanal weit mehr belastet. Wer hier also erwartet ,das seine Musik in guter Qualität übertragen wird muss mindestens 10/2 in seinem Tarif gebucht haben, je nach Anwendungsfall auch eher mehr.

Wann Netflix denn die Datenpakete losgeschickt hat, spielt für das Ansehen eines Films keine Rolle. Musiziert man zusammen, spielt es die zentrale Rolle. Die Latenz oder Pingwert gibt Auskunft darüber wie schnell die Datenpakete ins Internet und zurück übertragen werden und damit wie schnell der gespielte oder gesungene Ton an die anderen Musiker übertragen wird, um darauf zu reagieren. Die magische Grenze, die man noch als Gleichzeitigkeit empfinden und kompensieren kann sind 50ms End-to-End, was etwa 15m Bühnenabstand entspricht. Entspannt musiziert es sich mit etwa 35ms. Auch zu Bedenken ist, dass dabei nicht nur die Zeit durch das Internet zu berechnen ist, sondern auch die interne Zeit-Verzögerung, durch die Verarbeitung des gesungenen/gespielten Tons, der das Mikrofone erreicht bis es durch das Audiodevice in Daten gewandelt wurde (Daumenwert: 10ms). Den Ping-Wert kann man durch einen Speedtest feststellen, aber in den meisten Consumer-Verträgen nicht einfordern.

Gleiches gilt für den Jitter, die Varianz der Geschwindigkeit mit der die einzelnen Datenpakete eintreffen. Wie auf der Autobahn, kommen die Datenpakete nicht alle in der selben Reihenfolge an, wie sie losgefahren sind. Da wird überholt, Nebenstecken und Umleitungen genommen, oder es gibt auch mal kleine Staus oder es gibt Unfälle und Pakete kommen gar nicht an. Sehen Sie eine Webseite an, ist das irrelevant. Das Netzwerkprotokoll TCP stellt sicher, das die Daten vollständig angelangt sind, zählt sie durch und fehlt eines in einer Sequenz, schickt es eine Nachricht an den Sender, das verlorene Paket doch nochmal zu übermitteln. Erst wenn alle Pakete da sind, wird der Teil der Webseite angezeigt. Beim Streamen nimmt man den Verlust von Paketen in Kauf, für den Gewinn an Geschwindigkeit. Das Protokoll ist hier UDP, und kümmert sich nicht um Vollständigkeit. Alle Datenpakete eines Zeitfensters von 10ms etwa werden gesammelt, in einem Jitterbuffer in die richtige Reihenfolge gebracht, dann angezeigt/abgespielt. Was zu spät kommt wird verworfen. Es macht für die Musik auch keinen Sinn, das ein Ton noch ein paar Sekunden später "nachgeliefert wird, unser Gehirn kann solche kleinen Löcher problemlos kompensieren, nachgelieferte Töne würden bestenfalls Verwirrung stiften. 

Wenn Sie überlegen, das nach diesem Artikel auszuprobieren, sollten Sie als erstes die Qualität ihres Internetzgangs prüfen: z.B. mit DSL SpeedTest - speedmeter - www.geschwindigkeit.de
Prüfen sie es vor allem zu den Tageszeiten, die als Probenzeit angestrebt werden.

Der Ping sollte sich um 20ms bewegen, ist er größer als 50ms, wird es wahrscheinlich nicht funktionieren mit anderen synchron zu musizieren. Der Download sollte mindestens 10Mbit/s, der Upload mindestens 2Mbit/s betragen.

Nicht nur gelegentlich stellt sich heraus, das die Messwerte nicht dem entsprechen, was man als Tarif bei seinem Provider bezahlt. Bei mir etwas fand ich nur 1/4 des zugesagtem Down- und Uploads. 
Hier finden sich Informationen der Bundesnetzagentur bzgl. wie man sowas stichhaltig nachweisen kann: Bundesnetzagentur - Breitband - Mitteilung zu Abweichungen bei Breitbandgeschwindigkeiten im Festnetz. Unter Breitbandmessung kann man Tools herunterladen und mit einer Messkampagne Protokolle erstellen, die man dann an einen Beschwerdebrief an seinen Provider anheften kann. Nachdem ich mit diesen Protokollen auf der Hotline meines Providers gewedelt hatte, sah der Agent eine Fehlersituation meines Kabelrouters in seinen Tools, und keine 5h später hatte ich einen Techniker im Haus, der einen Verstärker austauschte und seitdem habe ich tatsächlich die bezahlte Leistung. Eine Geschwindigkeit der Reaktion, die ich meinem Provider mit dem roten Hochkomma gar nicht zugetraut hätte.

Ist der Test positiv kann zur Tat geschritten werden.

Boxbau DIY Anleitung für die OV Box von Giso Grimm, die später auch für Digital Stage eingesetzt werden kann

Partliste

(siehe auch https://forum.digital-stage.org/t/parts-for-digital-stage-box)
Die Teile können selbstverständlich von vielen anderen Elektronikversendern erworben werden. Es lohnt sich auch die Preise zu vergleichen, da diese durchaus Schwankungen unterliegen. Ich erhalte hier für diese Links keine Benefits.

raspberry-pi-4-computer-modell-b-2gb-ram

Es gibt billigere Gehäuse - aber: diese Gehäuse sind unterschiedlich gut dabei die Wärme abzuführen und damit Überhitzung zu Vermeiden. Diese Überhitzung führt dazu das Prozessor selbstständig heruntergetaktet wird (throttled), was zu mehr Aussetzern in der Musik führt Das original Plastik Raspberry Gehäuse ist z.B. besonders schlecht. Es gibt welche mit so einem Ventilator drin, die aber dann in der Nähe eine Mikros zu unerwünschten Surr-Geräuschen führen. Deshalb wollen wir unseren Zweck passiv kühlende Gehäuse aus Metall haben, die aufgrund des höheren Wärmeleitkoeffizienten des Metalls die Wärme schneller abführen.

  • A: RaspberryPi Platine
  • B: ArgonNeo Unterteil
  • C: ArgonNeo Oberteil (mit ausgepackten Schrauben und Pads
  • D: ArgonNeo Mittelteil
  • E: Zubehör Tütchen

 Schritt 1:


Graues Thermal Pad aus dem Zubehör Tütchen fischen und Folie entfernen

Auf die Prozessoren Kleben

Zweite Folie abziehen

 

 

 

 

 

Schritt 2:

 


Mittelteil auf die Platine aufsetzen und umdrehen

 

 

 

 

 

 

 Schritt 3:


Unterteil aufsetzen

 

 

 

 

 

 

 Schritt 4:


4 Schrauben einsetzen und festsetzen

 

 

 

 

 

 

 Schritt 5:


Vier Klebepads aus dem Zubehör-Tütchen abziehen und in die Mulden aufkleben













Welches Audio Device/Headset?

Szenario Chorsänger - einfach nur singen

An dieser Box betrieben werden können (theoretisch) alle sogenannten class compliant USB Headsets, da das Pi Betriebssystem selbst einen Treiber findet. Faktisch tun es leider nicht alle. Auch haben teurere Varianten, die auf einem Chip eine Rauschunterdrückung (Noise Canceling) mitbringen sich als schlechtere Wahl herausgestellt. Besser ein Gerät ohne wählen. Eine Liste von mir getesteter Geräte findet sich hier: https://forum.digital-stage.org/t/usb-audio-headsets-working-with-box

Szenario Chorleiter - singen und Klavier spielen.

Hier ist ein USB Audio Interface nötig, an das man eine zusätzliche Gerät anschließen kann. Ein E-Piano zumeist mit einen Klinkenkabel. Für analoge Instrumente ein weiteres Instrumenten Mikrofon/Tonabnehmer. 

Ich selber habe dieses Bundle im Einsatz: Behringer U-Phoria Studio – Musikhaus Thomann
Weitere getestete Geräte finden sich hier: Soundcards · gisogrimm/ovbox Wiki · GitHub

OV Box installieren

Hierzu benötigt man einen Kartenleser für Micro-SD Karten - einige Computer haben eingebaute, ansonsten bekommt man für ein paar EUR welche, die man per USB anschließen kann.
 

Die md5sum des gepackten Files ist: 285be98f18c65853010640d43ad67dff 

Eine SD Karte, z.B. sandisk-high-endurance-microsdhc-uhs-i-u3-speicherkarte-43-adapter-32gb in den SD Kartenleser stecken, bzw. ein Lesegerät für Micro-SD Karten verwenden.

Den Pi Imager von https://www.raspberrypi.org/software/ herunterladen und installieren und starten.
 
Unter OS "use custom" wählen und anschließend das vorher heruntergeladene Image auswählen:


Unter SD Karte den Leser auswählen
Write und abwarten bis Fertigmeldung und Aufforderung SD Karte aus dem Leser zu ziehen
Anschließend die SD Karte in Pi stecken

Account erstellen auf https://stage.orlandoviols.com/

Registrieren Sie einen User auf https://stage.orlandoviols.com und Klicken Sie auf "register"

Anschließend die Mail unter Berücksichtigung des SPAM Folders finden und den Aktivierungslink klicken. Nach dem Einloggen sollte es so aussehen:

Dieses Fenster bitte offenlassen, während nun die Box angeschlossen wird.

OVBox anschliessen - Szenario "Chorsänger - einfach nur singen"

Verbinden Sie den die OV Box mit einem Netzwerkabel mit Ihrem Router.
Grundsätzlich können RaspberryPis WLAN, es ist aber nicht aktiviert.

WLAN besonders von älteren Consumer Routern kann hier eine zusätzliche Verzögerung einbringe
n.

Ist ein gut ausgeleuchtetes 5GHz Band verfügbar, und sie wissen was sie tun: siehe hier: RaspberryPiWiFi · gisogrimm/ovbox Wiki · GitHub 


























Verbinden sie das USB Headset . Verwenden sie dabei die blauen USB3 Buchsen.

Für das Szenario "Chorleiter" mit einem USB Audio Device finden sich hier bebilderte Anleitungen:
Home · gisogrimm/ovbox Wiki · GitHub


Das Micro das in dem oben vorgeschlagenen Bundle enthalten ist, ist ein Großmembran Micro und benötigt Phantomspeisung (zusätzlichen Strom für Vorverstärker). Dazu gibt es einen Schieberegler auf der Rückseite der auf on gestellt werden muss bei dem Behringer UM2.
























Schließen Sie nun erst das Netzteil an die USB-C Buchse der Box an und stecken dieses in die Steckdose.



Nun heißt es Geduld haben. Mindestens 10 Minuten  geduldig abwarten bis das Device auf https://stage.orlandoviols.com/ aktiv wird.

Die MAC Adresse der Box finden

Kennen Sie sich mit Ihrem Router aus, können Sie die Zeit nutzen um die MAC Adresse, die einzigartige Identifikations ID ihres Pi herauszufinden. Die meisten Router zeigen eine Liste der angeschlossenen Geräte:
Notieren Sie diese Adresse, am besten mit einem Aufkleber auf der Box. Dies ist die Adresse mit der die Box angezeigt wird sobald sie fertiginstalliert hat und sich beim Server meldet als "unclaimed Device", als noch nicht beanspruchtes Gerät.

Wechseln Sie auf https://stage.orlandoviols.com/ zurück und warten Sie bis das Gerät dort als "unclaimed" angezeigt wird und klicken Sie darauf, wenn sie die MAC abgeglichen haben. Dieses Beanspruchen muss in den ersten 10 Minuten nach dem aktiv werden der Box passieren, sonst muss der Pi ausgeschaltet und neu gestartet werden

Wenn die Box aktiv wird auf der Seite von OrlandoViols, hören sie auf dem Kopfhörer bereits eine computergenerierte Stimme, die das auf Englisch ansagt. 

Nach dem Beanspruchen des Geräts sollte das in etwa so aussehen.

Achtung: Dieser Vorgang ist einmalig für jede Box durchzuführen. Bei neuerlichen Starts landet man sofort hier

Eine leere Bühne finden

Unter dem Device werden diverse Bühnen angezeigt. Dies ist eine leere Bühne.

Dabei haben diese Bühnen unterschiedliche Einstellungen. Der virtuelle Raum in dem die Teilnehmer angeordnet werden kann unterschiedlich groß sein, und unterschiedlich viel Hall und Jitter haben, manche sind öffentlich (public), manche nicht. Sie können eine Bühne über den Link "enter" betreten.

Am besten verabreden Sie sich mit jemanden.


To be continued...

Ein weiterer Artikel wird sich mit Einstellungen, Tricks und Tips befassen.


In eigener Sache

Ich suche noch einen ChorleiterIn und Sänger für die Bildung eines kleinen 4-5 stimmigen Ensembles.
Mein Interesse gilt der alten Musik. Es müssen dabei mehre Faktoren zusammenkommen:
  • ein guter Internetzugang
  • etwas IT Affinität um sich auf diese Technologie einzulassen
  • kleine Ensembles erfordern die Fähigkeit autonom, alleine seine Stimme zu singen
  • die Möglichkeit zuhause zu singen
  • Bereitschaft in das Equipment zu investieren
Zum aktuellen Entwicklungsstand gibt es kein Videobild. Aber wenn es eines gibt, wird es langsamer sein als der Ton, den Video erfordert mehr Daten. Das Dirigat wird also immer ein wenig langsamer sein. Wer schon mal versucht hat in einer Zoomkonferenz zu Dirigieren und dabei auf sein Videobild zu schauen das etwa 1-2 Zählzeiten hinterher hängt, weiß das es nur bedingt hilfreich ist. Wie bei blinden Chören kann aber auch durch hörbares Einatmen ein Atemimpuls gegeben werden. 

Wieviel Hall ist optimal? Viele Chorsänger fühlen sich mit einer zu trockenen Studioakustik unwohl. Zuviel Hall lädt zum Schleppen ein. Es gibt Begrenzungen, es gibt Dinge die anders sind, es gibt Dinge die kompensiert werden müssen.