Кто-нибудь знает формулу?
Я попробовал следующее: 1000 / ((BPM * 24) / 60). Но, похоже, не правильно.
Я не думаю, что мой ответ специфичен для MIDI, но сработает ли это для преобразования ударов в минуту в мс на удар?
ms_per_beat = 1000 * 60 / bpm
Другими словами, я думаю, что вытам есть дополнительные "24".
Это просто:
Time of 1 beat in ms = 1000 * 60 / BPM = 60000 / BPM
Похоже, ваша формула предполагает, что данные поступают из стандартного миди-файла, где темп выражается в виде тиков, где на четвертную ноту приходится 24 тика.Это не дает вам мс за удар, это дает вам мс за такт.
Я написал статью о преобразовании BPM в MS
, и я сделал онлайн-приложение под названием Калькулятор времени задержки , которое делает именно это, в том числе дает вам пунктир итриплет