Gibt es eine Möglichkeit Ereignisse in C# mit einer Auflösung von wenigen Mikrosekunden zu feuern?Feuerungsereignisse bei Mikrosekunde Auflösung für MIDI-Sequenzer
Ich baue einen MIDI-Sequenzer, und es erfordert ein Ereignis jeden MIDI tick abgefeuert werden, die dann jede Note zu diesem Zeitpunkt registriert werden spielen.
Bei 120 Schlägen pro Minute und bei einer Auflösung von 120 ppqn (Pulse pro Takt/Viertelnote), sollte das Ereignis alle 4,16666 Millisekunden ausgelöst. Moderne Sequenzer haben höhere Auflösungen wie 768ppqn, die erfordern, dass das Ereignis alle 651 Mikrosekunden ausgelöst wird.
Die beste Auflösung für Veranstaltungen kurzzeitige ich gefunden habe, ist von 1 Millisekunde. Wie kann ich darüber hinausgehen?
Dieses Problem muss bereits von einer C# MIDI-Sequenzer oder MIDI-File-Player gelöst wurden. Vielleicht sehe ich das Problem einfach nicht im richtigen Winkel an.
Vielen Dank für Ihre Hilfe.
Ich folge nicht Ihrer Mathematik. Wenn 120ppqn = 41,6666ms, sicherlich 768ppqn! = 651microsec, aber 768ppqn = 1000 * 41.6666 * 120/768 = 6510 microsec? – spender
120 bpm = 1 Takt alle 500 ms, 120 Ticks pro Takt = 500ms/120 = 4.166ms & 768 Ticks pro Takt = 500ms/768 = 0.651ms Es gibt tatsächlich einen Tippfehler in meiner ersten Nummer, ich werde es jetzt korrigieren . Vielen Dank. – Brice
schau dir meine aktualisierte Antwort an – Fredou