Czy istnieje sposób na wywoływanie zdarzeń w języku C# z rozdzielczością kilku mikrosekund?Zdarzenia wyzwalające w rozdzielczości mikrosekund dla sekwensera midi
Buduję sekwencer MIDI i wymaga, aby zdarzenie zostało odpalone przy każdym teście MIDI, który będzie odgrywał każdą nutę zarejestrowaną w tym czasie.
Przy 120 uderzeniach na minutę i przy rozdzielczości 120 ppqn (impulsy na uderzenie/ćwierćnuta), zdarzenie to powinno wystrzelać co 4.16666 milisekund. Nowoczesne sekwencery mają wyższe rozdzielczości, takie jak 768ppqn, co wymagałoby wyrzucania zdarzenia co 651 mikrosekund.
Najlepsza rozdzielczość dla krótkotrwałych zdarzeń, które znalazłem, wynosi 1 milisekundę. Jak mogę wyjść poza to?
Ten problem musiał już zostać rozwiązany przez dowolny sekwencer C# MIDI lub odtwarzacz plików MIDI. Może po prostu nie patrzę na problem pod właściwym kątem.
Dziękuję za pomoc.
Nie podążam za twoją matematyką. Jeśli 120ppqn = 41,6666ms, z pewnością 768ppqn! = 651microsec, ale 768ppqn = 1000 * 41.6666 * 120/768 = 6510 microsec? – spender
120 bpm = 1 uderzenie co 500 ms, 120 taktów na uderzenie = 500ms/120 = 4.166ms i 768 tick na uderzenie = 500ms/768 = 0.651ms Jest rzeczywiście literówka w moim pierwszym numerze, poprawię go teraz . Dziękuję Ci. – Brice
Spójrz na moją zaktualizowaną odpowiedź – Fredou