Neu

Wie kurz darf eigentlich eine Midi Note sein

rolfdegen

||||||||||||
Hallöchen liebe Synthianer und innen..

Ich frage mich schon seit geraumer Zeit, wie kurz darf eigentlich eine Midi Note sein, damit sie im Synthesizer noch als Ton bzw Knackser hörbar ist.

Die Übertragungszeit einer einzelnen MIDI-Note (Note-On-Befehl) über den Seriellen Midi-Port (runde DIN Buchse) beträgt typischerweise etwa 0,96 Millisekunden. Dies basiert auf einer Übertragungsgeschwindigkeit von 31.250 Bit/s, wobei 3 Bytes (Status, Note, Velocity) mit Start- und Stopp-Bits übertragen werden. USB-Verbindungen arbeiten oft mit einer Abfragezeit (Polling) von 0,125 ms bis zu 1 ms, was in der Praxis zu einer vergleichbaren Latenz führt. Nach dem Eintreffen einer Midi Note wird der Code für die Syntheseberechnung gestartet und das Ergebnis in einem Audio-Buffer geschrieben.
Je nach größe des Audio-Buffers ergeben sich Latenzen zwischen 3 - 10 Millisekunden.

Berechnung: 128 / 44100Hz = 2.9 Millisekunden + 3 ms (Übertragungszeit zum DA-Wandler) = 5.9 ms

Für einen Test habe ich 4 Takte mit einer Notenlänge von 1/64 in Ableton* Live aufgenommen und an einen Synthesizer (Blofeld, DeepMind 6, Jeannie) per USB-Midi übertragen.
Bei der eingestellten 1/64 Notenlänge in Ableton* Live gab es bei allen Synthesizern ab und an Audiofehler. So wurde mal die Noten kürzer oder auch länger gespielt.

Audioausgebe Blofeld
Anhang anzeigen Blofeld.mp3

Audioausgebe DeepMind 6
Anhang anzeigen DeepMind 6.mp3

Audioausgabe Jeannie
Anhang anzeigen Jeannie.mp3

Bei allen Synthesizern habe ich die VCA Envelope Werte wie folgt eingestellt:
Attack : 0
Decay : 0
Sustain : 127
Release : 0


Hier die Ergebnisse:

Blofeld
Blofeld.webp

DeepMind 6
DeepMind 6.webp

Jeannie
Jeannie.webp
 
  • Gute Idee
M.i.a.u.: Moogulator
Die kürzest mögliche Note sollte mit einer Byte-Folge wie dieser erklingen. Running Status:

Code:
90 3C 40 3C 00

Direkt und ohne Pause auf das DIN MIDI Kabel gegeben. Das wären dann genau 0,64 ms. Kürzer geht es nicht. Länger schon.
 
  • Zustimmung
M.i.a.u.: DanReed
"Keine schlechte Frage, aber..."

Ich frage mich schon seit geraumer Zeit, wie kurz darf eigentlich eine Midi Note sein, damit sie im Synthesizer noch als Ton bzw Knackser hörbar ist.

im Grunde genommen könntest Du es einfach mal ausprobieren.

Die Übertragungszeit einer einzelnen MIDI-Note (Note-On-Befehl) über den Seriellen Midi-Port (runde DIN Buchse) beträgt typischerweise etwa 0,96 Millisekunden.

Eher sogar weniger, aber nehmen wir das einfach mal als den real world Durchschnitt an, dann passt es.

Je nach größe des Audio-Buffers ergeben sich Latenzen zwischen 3 - 10 Millisekunden.

Übertragungsgeschwindigkeit und Latenz dürften relativ egal für die Frage sein, wesentlich ist die Frequenz.

Da MIDI seriell ist und keine Prioririsierungen, Threads oder Kanäle kennt, kommt da auch nichts durcheinander, und es sollte daher jederzeit möglich sein, note on und note off zur gleichen logischen Zeit hintereinander abzusenden, also noch unter PPQ oder der physischen Transfer-Frequenz. Mache ich regelmäßg so etwas.

Bei der eingestellten 1/64 Notenlänge in Ableton Live gab es bei allen Synthesizern ab und an Audiofehler.

Was auch immer das verursacht hat, es dürfte nicht an MIDI oder der MIDI Übertragung liegen.

Nach dem Anhören der drei Audiobeispiele, die ja alle 3 das gleiche Stück aufführen mit diesen Hängern, tippe ich auf den Verbrecher, der diese Daten absendet, also Live oder das OS oder das Interface.

Außerdem würde ich dazu raten bei einem erneuten Versuch mal nicht den immer gleichen Notenwert(!) zu triggern und mal zu schauen, was dann passiert.
 
  • Daumen hoch
M.i.a.u.: microbug
Für einen Test habe ich 4 Takte mit einer Notenlänge von 1/64 in Ableton Live aufgenommen und an einen Synthesizer (Blofeld, DeepMind 6, Jeannie) per USB-Midi übertragen.
Hier liegt schon das Grundproblem begraben: Du benutzt USB-MIDI. Denk dran, daß USB ein Blockdevice ist, welches nur sendet, wenn der Block voll ist, während klassisches MIDI jedes Byte sofort sendet - muß ich Dir eigentlich nicht erzählen, Du entwickelst MIDI Sachen schon recht lange (neulich mal den Program Changer für die ST entdeckt, davon wäre eine Neuauflage fein).
Ableton* Live ist zudem auch nicht für sein gutes MIDI Timing bekannt, somit hast Du Dir grad selbst ein Worstcase-Szenario geschaffen.

Bei der eingestellten 1/64 Notenlänge in Ableton Live gab es bei allen Synthesizern ab und an Audiofehler. So wurde mal die Noten kürzer oder auch länger gespielt.
Wundert mich nicht, siehe oben. Du hast hier USB als den Unberechnenbarkeitsfaktor ins Spiel gebracht. Wenn Du sowas wirklich testen willst, dann per Hardwaresequenzer und reinem DIN MIDI.
 
  • Daumen hoch
M.i.a.u.: Miks
dennoch addiert auch USB 2 nichts weiter als 1ms jitter, oder? das ist nicht viel im vergleich zu 1/64 note. Ableton* selbst kann (logisch) bis zu 1 tick, andere DAWs können meistens (logisch) null.
 
Start und Stop Bit werden hier bei der Berechnung gerne außen vor gelassen... daher sind es nicht nur 8 Bit, sondern 10 Bit (Start Bit, 8 Bit Daten, Stop Bit) die mit jedem Daten Paket übertragen werden...
 
Zuletzt bearbeitet:
Mit Bitwig habe ich das auch getestet. Das gleiche Problem. Vielleicht könnt ihr das auch mal testen. Im Anhang das Midi File. Danke
 

Anhänge

Start und Stop Bit werden hier bei der Berechnung gerne außen vor gelassen... daher sind es nicht nur 8 Bit, sondern 10 Bit (Start Bit, 8 Bit Daten, Stop Bit) die mit jedem Daten Paket übertragen werden...
Das ist bekannt und die oben jeweils verwendeten 0.32 ms pro gesendetem Byte sind exakt.
 
Man kann mit Wireshark* auch den USB-Datenverkehr mitschneiden und sich alle MIDI-Events inkl. Zeitsignatur heraus filtern lassen. Interessant wäre dann der direkte Vergleich mit einer Audioaufnahme, die zu den MIDI-Events gehört. Das dürfte viele Fragen beantworten.

*Ich hab's letzte Woche noch für einen Mitschnitt von RTP-MIDI-Events per UDP zwischen Win11 und mioXL benutzt. Funktioniert prima.
 
  • #11
Nee, es geht darum, dass es zu 90% oder 95% klappt, und nur ab und zu Ausreißer drin sind. Das ist ja das Verwunderliche. Wenn das jetzt bei einem einzigen Gerät so wäre, könnte man es auf das jeweilige Gerät schieben. Aber es passiert ja bei drei Testgeräten gleichermaßen
 
  • #12
@rolfdegen Hänge doch mal die drei Geräte in einer Thru-Kette hintereinander (oder über eine Thrubox parallel). Dann müsste man ja mitbekommen, ob alle drei zum gleichen Zeitpunkt den schluckauf haben. Dann wäre die Ursache bei Sender(=Ableton*) zu suchen
 
  • Daumen hoch
M.i.a.u.: qwave und microbug
  • #13
Es gibt in MIDI viele Geräte, die zB Note On und Off unkonventionell verwenden. Ggf. muss man die alle durchprobieren. Wenn es dann immernoch so ist, wäre das interessant. Korrekt wäre on off - on off - aber es gibt lt Info einiger Hersteller und Nerds auch Geräte, die nur auf eine davon warten und verwenden. Weiss nicht, ob es hilfreich ist. Daher lösche ich das andere mal.
Ggf. ist das eine Frage wie es umgesetzt ist?
 
  • #14
Dann wäre die Ursache bei Sender(=Ableton) zu suchen

Es kann aber auch Schrott sein, der auf dem gleichen USB-Datenbus anliegt: Festplatten, Audiointerfaces, Maus mit hoher Polling-Rate (per Maustreiber vom Hersteller: 1000Hz - 8000Hz; der Windows Standard per generischem Maustreiber liegt bei nur 125Hz), Video- /Netzwerkkarten, etc.

Oder es kann der USB-Controller selbst sein, der zum Beispiel USB3 ist und mit USB2-Devices hantieren muss. Ich hab selbst schon schlechte Erfahrungen mit nem M-Audio M-Track EIGHT gemacht, das ich an einen USB3-Port geklemmt hab. Das hat dort regelmäßig die Synchronisation verloren und wirklich hässlichstes Digitalnoise produziert. Das ist deswegen relevant, weil USB-MIDI-Devices konzeptionell zu den Audiogeräten gehören und dementsprechend hohe Abtastraten da mit rein streuen.

Ein fehlender oder falscher Treiber ist natürlich auch noch prinzipiell als Fehlerursache möglich. Bei Roland-Geräten mit USB gibt's unter Windows praktisch immer einen Nicht-Class-Compliant-Treiber, der installiert werden muss, weil sonst irgendwas nicht richtig läuft.
 
  • Zustimmung
M.i.a.u.: microbug und fanwander
  • #15
was passiert denn bei einem virtuellen instrument 1. innerhalb von live oder 2. in einem anderen programm, übers OS?

Auffällig ist ja auch, dass nur die note off verloren gehen.
 
  • #16
Eine 1/64 Note ist ja auch immer von den BPM abhängig, von daher ist eher eine Aussage der Notenlänge in ms interessant.

Bei „half Speed“ sind wir ja schon bei 1/32 der ursprünglichen Länge etc
 
  • #17
Weitere spannende Sache: auch die kurzen Sounds sind immer wieder unterschiedlich lang:
Blofeld
1770032428003.webp

Deepmind:
1770032299188.webp

Jeannie:
1770032335035.webp
 
  • #18
Das schreit ja auch mal nach einem HW-Sequenzer oder Atari Vergleich.

In dem „Versuchsaufbau“ sind halt leider viele Unbekannte: Eigenverhalten Ableton, interne Rechnerverarbeitung, Treiber, was macht USB da genau daraus, „Endgeräte“…
 
  • Zustimmung
M.i.a.u.: microbug
  • #19
Für einen Test werde auf dem DeepMind 6, dem Blofeld und der Jeannie eine kleine Sequenz mit kurzer Notelänge programmieren und das mal gegen testen. Bin gespannt auf das Ergebnis 🤔
 
  • Daumen hoch
M.i.a.u.: micromoog
  • #20
Das schreit ja auch mal nach einem HW-Sequenzer oder Atari Vergleich.
Genau mein Reden, siehe oben.

Ideal für Alesis MMT-8 oder Kawai Q-80 (EX). Hab leider beide nimmer, sonst könnte ich da direkt testen, den Atari aufzubauen bin ich grad zu faul zu :)
 
  • Daumen hoch
M.i.a.u.: micromoog
  • #21
In einer DAW kann man eine MIDI-Note sehr kurz machen. Unabhängig davon kann man in einem Klangerzeuger eine Note per Hüllkurve sehr kurz machen. Und hier kommt es auf den Klangerzeuger an. Entscheidend ist also eher der Klangerzeuger. Denn der muss nicht auf Key-Off warten und kann den Klang per Hüllkurve kurz machen.
 
  • #22
Genau mein Reden, siehe oben.

Ideal für Alesis MMT-8 oder Kawai Q-80 (EX). Hab leider beide nimmer, sonst könnte ich da direkt testen, den Atari aufzubauen bin ich grad zu faul zu :)

Bin die nächsten Tage auch nicht in Reichweite eines Ataris
 
  • #24
MIDI Jitter in Ableton Live ist u.a. auch abhängig von der gewählten Audiobuffergröße. Klingt erst mal komisch, liegt aber daran, daß Audio in Live (vermutlich in den meisten, wenn nicht allen DAWs) vorrangig gegenüber MIDI abgearbeitet wird. Bei Verwendung von Hardwaresynths habe ich immer die niedrigste vertretbare Einstellung benutzt (meist 64 Samples bei 48kHz) und das hat den Jitter merklich reduziert / minimiert.

Für Live kann man auch hier nachlesen:
 
  • #25
Für die Audiobeispiele würde ich auch - soweit beim verwendeten Synth möglich - einen Phasenreset der Oszis einstellen, damit das Audioevent immer an der gleichen definierten Stelle einer Schwingung startet. Das sollte sowohl akustisch als auch optisch eine Bewertung der Audiosignale bzw. des Timings erleichtern.
 
  • Daumen hoch
M.i.a.u.: DanReed
  • #26
Note Off Jitter muß nicht nur am Rechner/Sequencer/DAW liegen, sondern ist auch von der Abtastrate des jeweiligen Hardwaresynths abhängig. Etwa: Wie oft wird intern im Synth auf eingehende MIDIevents abgefragt.
 
  • #27
Ein fehlender oder falscher Treiber ist natürlich auch noch prinzipiell als Fehlerursache möglich.
MIDI Jitter in Ableton Live ist u.a. auch abhängig von der gewählten Audiobuffergröße.

@rolfdegen
Über welches Betriebssystem reden wir hier eigentlich? Windows hat ja durchaus Probleme mit MIDI-Jitter unter DirectSound- oder WASAPI-Audiotreibern. ASIO wäre hier grundsätzlich die beste Lösung.
 
Zuletzt bearbeitet:
  • #29
Note Off Jitter muß nicht nur am Rechner/Sequencer/DAW liegen, sondern ist auch von der Abtastrate des jeweiligen Hardwaresynths abhängig. Etwa: Wie oft wird intern im Synth auf eingehende MIDIevents abgefragt.
Theoretisch ja, aber ich das gilt vielleicht für einen Synth aus den 80ern. Die Prozessoren der Instrumente, mit denen Rolf getestet hat, hätten für das, was Du als Note-Off-Jitter bezeichnest, noch Zeit, aus Langeweile eine Partie Schach durchzurechnen...
 
  • #30
Theoretisch ja, aber ich das gilt vielleicht für einen Synth aus den 80ern. Die Prozessoren der Instrumente, mit denen Rolf getestet hat, hätten für das, was Du als Note-Off-Jitter bezeichnest, noch Zeit, aus Langeweile eine Partie Schach durchzurechnen...
Es ist meine Erfahrung (nach 20+ Jahren Service und Fehlersuche), daß alle möglichen Fehlerquellen betrachtet werden sollten und keine Möglichkeit von vornherein ausgeschlossen werden sollte. Keiner weiß vorher, was ein bestimmter Synth mit einem bestimmten MIDI-Interface / USB-Chipsatz und das wieder in Kombination mit einer bestimmten Software auf einem bestimmten OS für einen "Blödsinn" evtl. anstellt.
 
×
Dir gefällt Sequencer.de? ❤️ Lasse dir unsere neuesten Inhalte in der Google-Suche ganz oben anzeigen!

Neue Beiträge

Zurück
Oben