2
任務是模擬js中的MIDI播放器工作,但僅用於模擬節拍之間的延遲。存在與節拍時鐘格式節拍開始時間的陣列,例如[960,1280,2200,...],和式我使用計算毫秒時間針對每個節拍蜱:在Javascript中模擬MIDI節拍時鐘
var beatTickTime = 60000/(tempo * 96);
問題在於非常緩慢的實時生成。即使我使用1秒延遲,它仍然非常慢。下面是它是如何實現的:
var tickTimer = setInterval(function() {
...
tickCount += 1;
}, beatTickTime); // or just 1 ms
我應該通過一些意想不到蜱做tickCount += someNumber
?或者有更常見的方法來解決這個問題?另外我不確定96式(PPQ * 4次)在我的公式中。
P. S.拍蜱來自解析的吉他親文件
這是一個很好的嘗試,但很可能無濟於事,因爲日期時間仍然與受諸如調整大小事件和垃圾回收等因素影響的瀏覽器主線程有關,更不用說它只是具有毫秒精度。解決此問題的新方法是使用帶有調度的Web音頻時鐘,如以下詳細描述:http://www.html5rocks.com/en/tutorials/audio/scheduling/ – starmandeluxe