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
 
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.
 
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.
 

News

Zurück
Oben