Задача состоит в том, чтобы эмулировать работу MIDI-плеера в js, но только для эмуляции задержек между ударами.Существует массив с временем начала импульса в формате тактовых импульсов, например [960, 1280, 2200, ...], и формула, которую я использую для расчета времени в миллисекундах для каждого такта импульса:
var beatTickTime = 60000 / (tempo * 96);
Проблема в очень медленной генерации тиков в реальном времени.Даже если я использую задержку в 1 секунду, она все еще очень медленная.Вот как это было реализовано:
var tickTimer = setInterval(function() {
...
tickCount += 1;
}, beatTickTime); // or just 1 ms
Должен ли я пропустить несколько тактов, делая tickCount += someNumber
?Или есть более распространенный способ решения этой проблемы?Кроме того, я не уверен насчет 96 (PPQ * 4 раза) в моей формуле.
PS такты битов получены из проанализированного файла гитары pro file