35. Merkblatt zu Lives MIDI-Engine

Im Zusammenhang mit den Tests der Audio-Engine hat Ableton auch Lives MIDI-Timing analysiert und - wo erforderlich - Verbesserungen vorgenommen. Wir haben dieses Merkblatt geschrieben, um den Anwendern beim VerstÀndnis der Probleme zu helfen, die es beim Einrichten eines zuverlÀssigen und akkuraten Rechner-basieren MIDI-Systems gibt. Gleichzeitig wollen wir erlÀutern, welchen Ansatz Live zum Lösen dieser Probleme verfolgt.

Anmerkung: Die in diesem Merkblatt besprochenen MIDI-Timingprobleme betreffen Anwender mit hochwertiger Audio- und MIDI-Hardware im Allgemeinen nicht. Falls Sie bereits Geld und Zeit in die Optimierung dieser Faktoren Ihres Studios investiert haben und keine Probleme mit MIDI-Timing haben, werden Sie diese Informationen wahrscheinlich nicht benötigen.

35.1 Ideales MIDI-Verhalten

Um zu verstehen, wie MIDI innerhalb einer digitalen Audio-Workstation (DAW) funktioniert, ist es hilfreich, sich einige gebrÀuchliche Begriffe und Konzepte zu vergegenwÀrtigen. Eine DAW muss in der Lage sein, drei verschiedene MIDI-bezogene Szenarien zu bewÀltigen:

  1. 1) Beim Aufnehmen mĂŒssen MIDI-Noten und -Controller-Informationen, die von einem Hardware-GerĂ€t (etwa einer MIDI-Tastatur) gesendet werden, in einer DAW gespeichert werden. Eine ideale Aufnahme-Umgebung wĂŒrde diese empfangenen Informationen mit perfektem Timing in Beziehung zum Zeitlineal des Songs aufzeichnen -- genauso akkurat wie eine Audioaufnahme.
  2. 2) Bei der Wiedergabe hat man es in einer DAW mit zwei verwandten Szenarien zu tun. Das erste bezieht sich auf das Senden der MIDI-Noten und -Controller-Informationen von der DAW zu einem Hardware-GerĂ€t, etwa einem Synthesizer. Das zweite bezieht sich darauf, dass gespeicherte MIDI-Informationen innerhalb des Rechners in Audiodaten umgewandelt werden, die von einem Plug-in-GerĂ€t wie zum Beispiel dem Synthesizer Operator wiedergegeben werden. In beiden FĂ€llen wĂŒrde eine ideale Wiedergabe-Umgebung eine perfekte Reproduktion der gespeicherten Informationen ausgeben.
  3. 3) Beim Spielen in Echtzeit werden die von einem Hardware-GerĂ€t (etwa einer MIDI-Tastatur) gesendeten MIDI-Noten und -Controller-Informationen in die DAW und dann in Echtzeit weiter an einen Hardware-Synthesizer oder an ein Plug-in innerhalb der DAW geleitet. Eine ideale Umgebung fĂŒr das Spielen in Echtzeit wĂŒrde sich genauso akkurat "anfĂŒhlen" und so schnell ansprechen wie ein physikalisches Instrument, etwa ein Klavier.

35.2 MIDI-Timingprobleme

Die Wirklichkeit von Rechner-basiertem MIDI ist komplex und schließt so viele Variablen ein, dass die oben beschriebenen idealen Szenarien unmöglich umzusetzen sind. Es gibt zwei fundamentale Probleme:

  1. 1) Latenz bezeichnet die konstante Verzögerung, die einem System innewohnt. Sie ist in einer DAW ein typisches Problem, da Audiodaten nicht einfach in Echtzeit von oder zu einer Audio-Hardware geleitet werden können, sondern gepuffert werden mĂŒssen. Doch selbst akustische Instrumente besitzen eine gewissen Latenz; bei einem Klavier beispielsweise gibt es eine kleine Verzögerung zwischen dem Anschlagen einer Taste und dem Moment, in dem der Hammer tatsĂ€chlich die Saite in Schwingung versetzt. Im Hinblick auf das Spielen des Instruments ist eine kleine Latenz im Allgemeinen kein Problem, da Musiker ĂŒblicherweise das Timing ihres Spiels so anpassen können, dass die Verzögerung kompensiert wird -- vorausgesetzt sie ist konstant.
  2. 2) Jitter bezeichnet eine nicht konstante oder zufĂ€llige Verzögerung in einem System. In einer DAW kann dies ein heikles Problem sein, da unterschiedliche Funktionen innerhalb des Systems (zum Beispiel MIDI, Audio und die BenutzeroberflĂ€che) separat abgearbeitet werden. Dabei muss oft Information von einem solchen Prozess zu einem anderen ĂŒbertragen werden -- zum Beispiel dann, wenn MIDI-Daten in die Wiedergabe eines Plug-ins umgewandelt werden. Ein Jitter-freies MIDI-Timing erfordert eine akkurate Umwandlung der Takte von verschiedenen Komponenten des Systems -- des MIDI-Interfaces, des Audio-Interfaces und der DAW selbst. Die Genauigkeit dieser Umwandlung hĂ€ngt von verschiedenen Faktoren ab, darunter das Betriebssystem und die verwendete Treiberarchitektur. Jitter erzeugt viel stĂ€rker als Latenz den Eindruck, dass das MIDI-Timing ungenau oder "schlampig" ist.

35.3 Lives LösungsansĂ€tze fĂŒr MIDI

Abletons AnsÀtze hinsichtlich des MIDI-Timings basieren auf zwei entscheidenden Annahmen:

  1. Latenz ist Jitter in jedem Fall vorzuziehen. Da Latenz konstant und vorhersehbar ist, können sowohl Rechner als auch Mensch besser damit umgehen.
  2. Wenn Sie wÀhrend des Spielens in Echtzeit auch aufnehmen, dann werden Sie das aufnehmen wollen, was Sie hören -- auch wenn dies, wegen der Latenz, etwas spÀter eintritt als das, was Sie spielen.

Live geht mit den Problemen beim Aufnehmen, Wiedergeben und Spielen in Echtzeit so um, dass das MIDI-Timing akkurat und die Verzögerungen klein und zuverlĂ€ssig konstant sind. Damit empfangene MIDI-Ereignisse an der korrekten Position des Zeitlineals in einem Live-Set aufgezeichnet werden können, muss Live genau wissen, wann diese Ereignisse von der MIDI-Tastatur empfangen wurden. Live kann diese Ereignisse jedoch nicht direkt empfangen -- sie mĂŒssen zunĂ€chst vom MIDI-Interface-Treiber und vom Betriebssystem verarbeitet werden. Um dieses Problem zu lösen, versieht der MIDI-Interface-Treiber alle MIDI-Ereignisse beim Empfang mit einem Zeitstempel. Diese Zeitstempel werden zusammen mit den Ereignissen an Live ĂŒbermittelt, sodass Live genau weiß, an welcher Stelle des Clips die Ereignisse eingefĂŒgt werden sollten.

Beim Spielen in Echtzeit muss eine DAW stĂ€ndig mit Ereignissen umgehen, die so schnell wie möglich hörbar werden sollen, die aber aufgrund der Latenz und der Verzögerungen im System unvermeidlich in der Vergangenheit aufgetreten sind. Hier muss eine Entscheidung getroffen werden: Sollen die Ereignisse im Moment ihres Empfangs gespielt werden (was zu Jitter fĂŒhren kann, falls das System in diesem Moment gerade stark belastet ist) oder sollen sie verzögert werden (was die Latenz erhöht)? Ableton hat sich fĂŒr eine erhöhte Latenz entschieden, da wir der Meinung sind, dass es fĂŒr die Anwender einfacher ist, sich auf eine konstante Latenz als auf zufĂ€lligen Jitter einzustellen.

Ist das Monitoring wĂ€hrend der Aufnahme aktiviert, fĂŒgt Live den Zeitstempeln der Ereignisse eine zusĂ€tzliche Verzögerung hinzu, die der PuffergrĂ¶ĂŸe Ihrer Audio-Hardware entspricht. Diese hinzugefĂŒgte Latenz macht es möglich, die Ereignisse zu dem Zeitpunkt in den Clip aufzunehmen, in dem Sie sie hören -- und nicht zu dem Zeitpunkt, in dem Sie sie spielen.

Beim Spielen externer Hardware-GerĂ€te erzeugt Live ebenfalls Zeitstempel, die es an den MIDI-Interface-Treiber zu kommunizieren versucht, damit dieser die ausgehenden Ereignisse entsprechend ausgeben kann. MME-Treiber unter Windows können jedoch keine Zeitstempel verarbeiten. FĂŒr GerĂ€te, die diese Treiber verwenden, verwaltet Live die ausgehenden Ereignisse intern.

Live empfÀngt auch dann ankommende MIDI-Ereignisse, wenn die Systemlast so hoch ist, dass es zu Audio-Aussetzern kommt. WÀhrend solchen Audio-Aussetzern kann es beim Spielen in Echtzeit zu Timingfehlern und Verzerrungen kommen, aber Live sollte die MIDI-Ereignisse trotzdem weiterhin korrekt in die Clips aufnehmen. Nachdem sich das System von den Aussetzern erholt hat, sollte die Wiedergabe dieser aufgezeichneten Ereignisse akkurat sein.

35.4 Variablen außerhalb von Lives Kontrolle

Zeitstempel sind im Allgemeinen ein sehr zuverlĂ€ssiger Mechanismus fĂŒr den Umgang mit dem Timing von MIDI-Ereignissen. Allerdings sind Zeitstempel nur auf die Daten innerhalb des Rechners anwendbar. MIDI-Daten außerhalb des Rechners können diese Information nicht nutzen, darum werden von externer Hardware gesendete oder empfangene Daten im Moment des Auftretens von der Hardware verarbeitet und nicht nach Maßgabe von Zeitstempeln. Zudem arbeiten MIDI-Kabel seriell, es wird also immer eine Information nach der anderen ĂŒbertragen. In der Praxis bedeutet dies, dass mehrere gleichzeitig gespielte Noten nicht gleichzeitig, sondern nacheinander durch ein MIDI-Kabel ĂŒbertragen werden. In AbhĂ€ngigkeit der Anzahl von Ereignissen kann dies zu MIDI-Timingproblemen fĂŒhren.

Ein anderes Problem, dass insbesondere bei Synthesizern aus der FrĂŒhzeit von MIDI auftreten kann, ist die vergleichsweise niedrige Scan-Frequenz der GerĂ€te. Die Scan-Frequenz kennzeichnet die HĂ€ufigkeit, mit der der Synthesizer seine eigene Tastatur nach BetĂ€tigungen abfragt. Ist diese AbfragehĂ€ufigkeit zu gering, kann dies zu Jitter fĂŒhren.

NatĂŒrlich können sich solche Timingprobleme im Zusammenhang mit Hardware multiplizieren, falls weitere GerĂ€te zu der Kette hinzugefĂŒgt werden.

In AbhÀngigkeit der MIDI-Hardware-QualitÀt, von Fehlern in der Treiber-Programmierung etc. kann auch innerhalb des Rechners die Genauigkeit von Zeitstempeln stark variieren. Live muss annehmen, dass die Zeitstempel empfangener MIDI-Ereignisse akkurat sind und dass ausgegebene Ereignisse von externer Hardware akkurat verarbeitet werden. Beides kann Live jedoch nicht verifizieren.

Tests und Ergebnisse

Unser Aufbau fĂŒr den Test des Timings von empfangenen MIDI-Ereignissen ist im folgenden Diagramm dargestellt:

Test-Konfiguration fĂŒr den MIDI-Empfang.

Der Ausgang einer MIDI-Quelle (eine Tastatur oder eine andere DAW, die lange Sequenzen zufĂ€lliger MIDI-Noten abspielt) wird in einen latenzfreien MIDI-Splitter geleitet. Ein Ausgang des Splitters wird in einem neuen MIDI-Clip in Live aufgenommen. Der andere Ausgang wird in einen MIDI-zu-Audio Konverter geleitet. Dieses GerĂ€t wandelt das elektrische Signal von der MIDI-Quelle in einfaches Audio-Rauschen um. Da das GerĂ€t die MIDI-Daten nicht interpretiert, fĂŒhrt es diese Umwandlung ohne jede Latenz aus. Der Ausgang des Konverters wird dann in einem neuen Audio-Clip in Live aufgenommen. In einem idealen System mĂŒsste jedes MIDI-Ereignis zeitgleich mit dem entsprechenden Ereignis im Audio-Clip auftreten. Der Zeitunterschied zwischen dem MIDI- und dem Audio-Ereignis kann also gemessen werden, um Lives Genauigkeit zu bestimmen.

Um Lives MIDI-Verhalten unter verschiedenen Bedingungen beurteilen zu können, haben wir alle Tests mit drei verschieden teuren kombinierten Audio/MIDI-Interfaces getestet, alle von bekannten Herstellern. Alle Tests wurden bei einer CPU-Belastung von etwa 50% sowohl auf macOS- als auch auf Windows-Rechnern durchgefĂŒhrt, einmal mit 44.1 und einmal mit 96 kHz Sampling-Rate, jeweils bei drei verschiedenen Audio-PuffergrĂ¶ĂŸen -- insgesamt waren es 36 einzelne Tests.

Windows:

  • Interface A: Der maximale Jitter lag bei +/- 4 mS, der Hauptteil des Jitters bei +/- 1 mS.
  • Interface B: Bei den meisten Tests lag der maximale Jitter bei +/- 3 oder 4 mS. Bei 96 kHz und einer PuffergrĂ¶ĂŸe von 1024 Sample gab es eine geringe Anzahl von Ereignissen mit einem Jitter von +/- 5 mS. Bei 44.1 kHz und einer PuffergrĂ¶ĂŸe von 512 gab es gelegentlich Ereignisse mit +/- 6 mS Jitter. In allen FĂ€llen lag der Hauptteil des Jitters bei +/- 1 mS.
  • Interface C: Bei den meisten Tests lag der maximale Jitter bei +/- 5 mS. Bei 96 kHz und einer PuffergrĂ¶ĂŸe von 512 Sample gab es eine geringe Anzahl von Ereignissen mit einem Jitter von +/- 6 und 8 mS. Bei 44.1 kHz und einer PuffergrĂ¶ĂŸe von 1024 gab es gelegentlich Ereignisse mit +/- 10 mS Jitter. In allen FĂ€llen lag der Hauptteil des Jitters bei +/- 1 mS.

macOS:

  • Interface A: Bei 44.1 kHz und einer PuffergrĂ¶ĂŸe von 512 Samples war der Jitter ziemlich gleichmĂ€ĂŸig zwischen +/- 4 und 11 mS verteilt. Bei allen anderen Tests lag der maximale Jitter bei +/- 5 mS. In allen FĂ€llen lag der Hauptteil des Jitters bei +/- 1 mS.
  • Interface B: Bei den meisten Tests lag der maximale Jitter bei +/- 4 oder 5 mS. Bei 44.1 kHz und einer PuffergrĂ¶ĂŸe von 512 Samples war der Jitter ziemlich gleichmĂ€ĂŸig zwischen +/- 2 und 11 mS verteilt. In allen FĂ€llen lag der Hauptteil des Jitters bei +/- 1 mS.
  • Interface C: In allen Tests lag der maximale Jitter bei +/- 1 mS, die meisten Ereignisse traten ohne Jitter auf.

Mit einem Àhnlichen Aufbau haben wir auch das Timing gesendeter MIDI-Ereignisse getestet. Der Aufbau ist im Diagramm dargestellt:

Test-Konfiguration fĂŒr die MIDI-Ausgabe

In allen FÀllen erbrachten die MIDI-Ausgabe-Tests Àhnliche Ergebnisse wie die Empfangs-Tests.

35.5 Tipps fĂŒr ein optimales MIDI-Timing

Um Ihnen beim Erreichen eines optimalen MIDI-Timings mit Live zu helfen, haben wir eine Liste mit empfehlenswerten Vorgehensweisen und Programmeinstellungen zusammengestellt.

  • Verwenden Sie die kleinstmögliche PuffergrĂ¶ĂŸe fĂŒr Ihre Audio-Hardware, um die Latenz so gering wie möglich zu halten. Die Einstellmöglichkeiten fĂŒr den Audio-Puffer sind auf der Audio-Seite von Lives Voreinstellungen zu finden und hĂ€ngen vom Typ der verwendeten Hardware ab. Mehr Information hierzu finden Sie im Kurs "Einrichten der Audio Ein/Ausgabe."
  • Verwenden Sie ein hochwertiges MIDI-Interface mit den aktuellsten Treibern, um zu gewĂ€hrleisten, dass Zeitstempel so akkurat wie möglich erzeugt und verarbeitet werden.
  • Aktivieren Sie das Monitoring der Spur nicht, falls Sie MIDI aufnehmen und das externe GerĂ€t, etwa einen Synthesizer, dabei direkt abhören (im Gegensatz dazu, sein Audiosignal ĂŒber ein External-Instrument-GerĂ€t durch Live abzuhören). Lassen Sie das Monitoring der Spur auch dann aus, wenn Sie MIDI-Daten aufnehmen, die von einem anderen MIDI-GerĂ€t erzeugt werden (zum Beispiel von einem Drumcomputer). Wenn das Monitoring aktiv ist, fĂŒgt Live etwas Latenz hinzu, um den Jitter beim Spielen durch den Rechner zu kompensieren. Darum ist es wichtig, das Monitoring nur dann zu aktivieren, wenn tatsĂ€chlich etwas in Echtzeit durch den Rechner gespielt wird.

35.6 Zusammenfassung und Schluss

Ableton hat dieses Merkblatt verfasst, um Anwendern beim VerstÀndnis verschiedener verwandter Punkte zu helfen:

  • den inherenten Problemen Rechner-basierter MIDI-Systeme;
  • unserem Ansatz zum Lösen dieser Probleme in Live;
  • den weiteren Variablen, an denen wir nichts Ă€ndern können.

Wie bereits erwĂ€hnt, können Sie MIDI-Timingprobleme in Ihrem Studio am besten dadurch vermeiden, dass Sie so hochwertige Hardware-Komponenten wie möglich einsetzen. Mit solchen Komponenten werden alle Software-MIDI-Systeme ohne wahrnehmbare Probleme arbeiten. Anwendern nicht-optimaler Hardware bietet Live trotzdem ein zusĂ€tzliches Maß an Genauigkeit durch das Vermeiden von Jitter, wenn auch um den Preis einer geringfĂŒgig erhöhten Latenz.

Wir ermuntern Sie in diesem Merkblatt nachzuschlagen, falls Sie Fragen zu Lives Umgang mit MIDI-Timing haben, aber wir freuen uns auch ĂŒber eine Kontaktaufnahme (siehe https://www.ableton.com/help/), falls Sie Fragen oder Sorgen haben, die hier nicht angesprochen wurden.