Nach einigen Versuchen, Irrungen und Wirrungen liegt nun eine praktikable Lösung vor, das EWI-USB (oder andere Midi Controller mit USB-B-Ausgang) drahtlos per BLE (Bluetooth Low Energy) an einen konventionellen Synthi mit alter Midi-In-Buchse anzuschließen und damit endlich das Kabel zwischen Blasrohr und Synthesizer durchzuchneiden.
Das erste Bild (s.u.) zeigt mein System (ohne Kabel zwischen Synthi und Aktivbox)
Das EWI trägt einen Yamaha UD-BT01 Sender, der seinerseits von einer relativ kleinen Power Bank gespeist wird - irgendwo her muss der Strom ja kommen. Eigentlich ist die Power Bank mit 5,6 Ah viel zu groß dimensioniert; die kleinen 2,6 Ah-Teile mit nur einem Li-Ionen-Standardakku drin würden gut ausreichen. Nach schlechten Erfahrungen mit einem Einzellen-Billigteil habe ich aber zur größeren Ausführung gegriffen und jetzt stressfrei 1-2 Wochen Lade-Ruhe. Das zusätzliche Gewicht von ca. 150 g für alle Anbauteile zusammen ist durchaus erträglich. Ich habe den Akku etwa in der Mitte des EWIs platziert, weil er mir da von der Gewichtsverteilung am besten erschien. Das zunächst befürchtete Übergewicht nach links ist gefühlt nicht eingetreten.
Das UD-BT01 ist ja eigentlich "nur für Apple-Geräte" als Empfangsstationen konzipiert. Aber ein pfiffiger australischer Brieffreund hat die BLE-Anbindung netterweise ans Laufen bekommen und mir die entsprechenden Ansprachedaten zur Verfügung gestellt.
Die Drahtlosverbindung geht per BLE (Bluetooth Low Energy) zum Raspberry Pi 3, der neben dem dicken, hinter dem Metallgitter sitzenden Betriebsakku des Synthis in dem kleinen, schwarzen Kästchen auf dem Synthigehäuse mit Textilklebeband fixiert ist. Der Raspi setzt die empfangenen BLE-Informationen um und gibt sie an einen USB-to-Midi-Konverter billigster Bauart weiter, der (derzeit noch) leider viel zu lange Kabel hat und mit einem dicken DIN-Stecker im Synthi eingestöpselt werden muss. Der Raspi arbeitet "kopflos" (ohne Bildschirm und Tastatur) und stellt nach seinem Einschalten und nach Anschalten des EWIs mit eingestöpseltem UD-BT01 die Verbindung automatisch her. Sollte er sie mal verlieren, wird sie nach ca. 1 sec automatisch wieder hergestellt. Dass alles korrekt gekoppelt ist, erkennt man an der wechselfarbigen Leuchtdiode des UD-BT01: Wenn diese auf konstant-rot wechselt, steht die Verbindung. Man braucht sich also informations- und elektrotechnisch um nichts zu kümmern, wenn man mit dem System spielen will. Durch die Konfiguration des Raspi (Verwendung von RAM-Disks für die systembedingten ständigen Schreibaktionen in Log-Files etc.) wird dafür gesorgt, dass die Mikro-SD-Karte, die das Betriebsystem trägt, nicht irgendwann "kaputtgeschrieben" und beim harten Abschalten des Raspi per Stromentzug keine Schädigung des Dateisystems verursacht wird.
Seinen Strom bekommt der Raspi über einen USB-Port vom Synthi und damit letztlich aus dem Betriebsakku. Die zusätzliche Leistungsaufnahme beträgt jedoch weniger als 1,5 Watt und geht gegenüber dem Leistungsbedarf eines typischen Synthis (bei meinem: ca. 40-44 Watt) gewissermaßen im Rauschen unter.
Die älteren Bluetooth-Standards waren ja bekanntlich zu langsam für interaktive Musikanwendungen. Erst die Bluetooth 4.x Verbindungen versprechen, hinreichend latenzarm zu sein, so dass es auch für musikalische "Echtzeit"-Anwendungen reicht.
Nach einigen vergeblichen Versuchen, den Versatz zwischen Tapps (Finger klatscht vernehmlich auf einen EWI-Sensor und Bumms (der dadurch induzierte Ton, typischerweise ein impulsartiger wie Steel Drum, Cembalo oder Timpani, kommt aus dem Lautsprecher) mittels Oszilloskop zu bestimmen, habe ich schlicht Audacity dazu verwendet, diese akustischen Manifestationen auf dem gleichen Track mitzuschneiden - was ausgesprochen gut funktioniert hat. Man erhält auf diese Weise insbesondere auch die Brutto-Latenz über alles - und das ist letztlich das, was *mich* beim Muckemachen interessiert.
Messungen dazu habe ich gemeinsam mit Ingo Scherzinger (DynaSample) in seiner Musikalienwerkstatt durchgeführt. Hierbei wurde zunächst mal ein EWI-5000 mit sowohl direktem Midi-Out und USB-Out verwendet, um über ein spezielles Programm die reinen Midi-Laufzeitunterschiede zwischen diesen beiden Übertragungskanälen zu ermitteln. Über 11 nacheinander gespielte Noten, die wir so untersucht haben, ergab sich im Schnitt eine Verzögerung von 8,8 ms, wobei die Schwankungsbreite bei 6-12 ms lag.
Mit meiner Tapps-Bumms-Brutto-Technik haben wir dann noch per Audacity die Gesamtlatenz für ein Xylophon ermittelt, wobei es wohl ein (messteschnisch fairer) Trick ist, die Lautstärke des Instruments auf den Maximalwert zu nageln, um nicht unötig im Synthi verlängernde Anklingvorgänge zu induzieren. Als Track sieht das dann aus, wie im zweiten Bild dokumentiert.
(Zur Interpretation: zusätzliche ca. 1-2 ms für Laufzeit Lautsprecher => Mikro + ca. 3 ms für eine zusätzliche, aufbaubedingte Latenz durch eine MidiBeam-Übertragung, macht also in diesem konkreten Beispiel ca. 55-56 reale Ansprechzeitverzögerung - eingegrauter Bereich - zwischen Fingerpatsch auf Sensor und Ertönen des Xylophon-Klangs)
Hierbei ergab sich typisch eine totale Ansprechverzögerung von ca. 57 ms, die sich - durchaus erklärlich - aus verschiedenen Komponenten zusammensetzt:
# ca. 21 ms durch das EWI selber bedingt (bis es das Note-On-Signal an die Schnittstelle gibt - siehe unten.)
# ca. 18 ms durch den Synthesizer (Dynasample Xpression) nach Empfang des Note-on
# ca. 10 ms durch die BLE-Übertragung
... macht zusammen ca. 50 ms. Die restlichen paar ms sind jetzt zwar nicht unmittelbar zuzuordnen, aber werden sich wohl auch noch irgendwie interpretieren lassen, wenn's einen interessiert.
Ingo Scherzinger erläutert die interne Latenz des EWIs:
"Ein Delay von 21 ms (gemessen hier im Nuendo) zwischen dem ersten Breath Controller Wert, der den eingegebenen minimalen Schwellwert übersteigt, und der dann folgenden Note On ist notwendig, um die Anschlagstärke zu ermitteln. Ca. 20 ms entspricht der Zeit, die der Mensch benötigt, den Blasdruck auf die Maximalstärke aufzubauen. Diese Zeit ist gleich, egal ob man Trompete oder Flöte spielt oder auch singt. Danach benutzt das EWI den bis dahin erreichten Wert und gibt ihn als Anschlagdynamikwert aus. Da die Anschlagdynamik ein Teil jeder "Note On" ist, kann vor Ablauf dieser benötigten Messzeit keine Note ausgegeben werden, wenn sie einen korrekten Anschlagsdynamikwert (engl. Velocity) beinhalten soll.
Bei bereits aufgebautem Blasdruck - wie beim Legatospielen - könnte diese Zeit zwar theoretisch weggelassen werden, das würde das Instrument aber unberechenbar machen, da es keine konstante Zeit zwischen Legato- und Nonlegatonoten gäbe. Exaktes Timing wäre - im Gegensatz zu einer vorhandenen konstanten Latenz - kaum möglich. Man stellt also fest, dass der größte Teil der Verzögerung vom EWI selbst kommt. Kommentare wie "ich kann nur spielen, wenn ich mein System-Delay maximal 1,5 ms beträgt. Bei 3-6 ms geht schon nichts mehr" sind Unsinn.
Die Latenz eines Computers oder Soundmodul entspricht in keiner Weise dem eingestellten Wert des Soundkarten-Puffers, da i.d.R. 2-3 Puffer verwendet werden und die Zeit der MIDI-Verarbeitung, der D/A Wandler und die interne Software und Betriebssystem-Latenz addiert werden müssen. Dazu kommt der Jitter, der bei MIDI (jeweils) mindestens 1 ms und beim Audio mindestens eine Puffergröße hat. Auch die Software benötigt Zeit zur Berechnung. Eine Einstellung von 64 Samples (entspricht ca. 1,5 ms) hat also bereits in der Praxis eine Latenz von höchstwahrscheinlich über 10 ms."
Mein Fazit:
# Die Nutzung der BLE-Übertraung ist einfachstmöglich: UD-BT01 und EWI per Powerbank aufpowern, Raspi über eine USB-Schnittstelle des Synthi durch dessen Anschalten mit Strom versorgen, und die Verbindung ist schneller aufgebaut, als der Xpression Synthesizer zum Hochfahren benötigt. Sollte die Verbindung mal abreißen (weil jemand 'ne Metallplatte durch's Bild trägt oder so), wird sie nach Ende der Störung innerhalb ca. zwei Sekunden automatisch wieder aufgebaut.
# Ja - die BLE-Übertragung trägt ihren Anteil zur insgesamt auftretenden Brutto-Latenz bei, aber sie ist nicht so groß, dass es eine wirkliche Rolle spielt oder gar zu einer schlechteren Spielbarkeit führen würde.
# Nach einer weiteren Anpassung der Raspi-Kernelparameter existiert nun noch ein Jitter von typisch ca. +/- 2 ms.
# Die BLE-Technik ist unter Verzicht auf harte Veränderungen der Systemkomponenten so implementiert, dass sämtliche beteiligten Komponenten (EWI, Xpression , Raspberry Pi 3, USB2Midi-Adapter, Yamaha UD-BT01, Power Bank) ohne Modifikationen oder Löten eingesetzt werden können. Damit bleibt bei jeder Komponente (insbesondere Synthi und EWI) die volle Flexibilität erhalten.
Letzteres kann mögilcherweise für Profis eine Rolle spielen: Wenn in Bluetooth-verseuchten Auditorien (durch die ganzen Handys) die Bandbreite möglicherweise knapp wird, kann auch mal kurz auf das gute alte USB-Kabel zurückgegriffen werden, und alles läuft trotzdem noch.
Nachdem ich nun einige Erfahrungen mit meinem "Drahtlossystem" gewonnen habe, fühle ich mich sicher genug, das System als Bausatz anzubieten.
Der Begriff "Bausatz" ist hier nicht so gemeint, dass der Nutzer noch groß etwas zu basteln hätte, sondern dass er lediglich die Komponenten in Verbindung mit den eigenen, schon vorhandenen Musikkomponenten zusammenstecken muss, um ein funktionierendes Etwas daraus zu machen. Das Paket ist so zusammengestellt, dass es eigentlich ein Rundum-Sorglos-Paket ist. Es besteht aus:
Wind-Controller-seitig:
- Bluetooth-Sender Yamaha UD-BT01
- kleine Power-Bank zur Stromversorgung des UD-BT01 und ggf. des angeschossenen Wind Controllers oder sonstigen Midi-Instruments (reicht beim EWI-USB für 10+ h kontinuierliches Spielen) mit aufgeklebtem Stück doppelseitigem Klebeband zur Anbringung am Wind Controller
- kurzes Verbindungskabel USB A-B für die Verbindung des Wind Controller USB-Out (z.B. eines EWI-USB) und dem UD-BT01
Synthesizer-seitig:
- Raspberry Pi 3 in einem quaderförmigen Gehäuse mit 8 GB µSD-Karte als Bluetooth-Empfängermodul
- USB-to-Midi-Konverter mit einer 5-pol DIN Midi-Out-Buchse
- wahlweise ein USB-Netzteil oder ein kurzes USB A-µB Kabel als Stromversorgung für den Raspberry Pi. [Übliche USB-A-Buchsen an entsprechenden Geräten (Stromleistung bis 500 mA) reichen aus, um den Raspberry Pi darüber zu versorgen.]
Software- / installationsseitig:
- Fertig auf den mitgelieferten UD-BT01 abgestimmtes, autostartendes Raspbian-System, als Nur-Lese-System gegen hartes Abschalten abgesichert (geht ja auch nicht anders im Betrieb als Musikkomponente)
- konfiguriert als reines, unidirektionales Midi-System: Es werden ausschließlich Midi-Events ohne jegliche inhaltliche Modifikation vom Wind Controller zur Midi-In-Buchse des angeschlossenen Synthesizers geleitet. Eine Rückleitung von Midi-Informationen (z.B. SysEx-Pakete etc.) ist nicht vorgesehen.
- experimentell (bei individueller Nachfrage): automatische Konvertierung von CC-Events, um unflexible, ältere Synthesizer insbesondere mit CC2-Events (Midi Expression-Werten) ansprechen zu können.
Diese Zusammenstellung ist als AEG-System ausgelegt: Auspacken - Einstöpseln - Geht.
Ich biete es an für insgesamt 200 EUR inkl. Versandkosten und Mwst.
Allerdings sollte man sich über folgende Liefer- und Betriebsrandbedingungen im Klaren sein:
- Da diese angebotene Zusammenstellung kein seriengefertigtes System ist, bin ich auf den Zukauf der erwähnten Einzelteile mit entsprechenden Lieferzeiten angewiesen. Jedes ausgelieferte System ist zuvor von mir einzeln an meiner eigenen Hardware auf Funktionsfähigkeit geprüft worden. Entsprechend kann die Lieferzeit nach Bestellung durchaus zwei Wochen betragen, da ich mir keine genannten Komponenten auf Halde lege.
- Der am UD-BT01 per USB A-Stecker angeschlossene Wind Controller (oder belieber sonstiger Midi-Controller, z.B. auch Keyboard) muss als solcher erkannt werden. Yamaha ist in dieser Hinsicht sehr entspannt, was die Kompatibilität angeht. Die übliche Forderung ist eine "Midi Class Compliance", die wohl für so ziemlich jedes Gerät gilt, das in diesem Jahrtausend (und wohl auch schon davor) gebaut wurde.
- Der auf der Empfängerseite angeschlossene Synthesizer muss mit den transparent durchgeleiteten Midi-Informationen etwas anfangen können. Ggf. ist entweder der Wind Controller oder der Synthesizer (z.B. durch Umstellen des Expression Events CC2 auf CC7 oder CC11) entsprechend einzustellen.
- Ich habe nur ein sehr begrenztes Testumfeld: Beliebige Midi-Controller im Zusammenspiel mit beliebigen Synthesizern kann ich nicht gegentesten!
- Für sämtliche Einstellarbeiten am Wind Controller ist wegen des nicht vorgesehenen Rückkanals das hier angebotene Übertragungssystem nicht zu gebrauchen. Diese sind weiterhin über konventionelle Verbindungen (typischerweise zu einem Computer mit USB-Anschluss) vorzunehmen.
Nachfragen bitte per Mail direkt an roosen@vollmer-roosen.de
Tschüssi,
Petra
Lesezeichen