From 998cef065e0be5a014204521a7a8d581a4d17d86 Mon Sep 17 00:00:00 2001 From: Simen Graaten Date: Thu, 20 Aug 2015 19:21:21 +0200 Subject: [PATCH] Bugfix: Always add delay to currentTime. Used to set first notes in the past when first noteOn wasn't run straight away after loading MIDI.js --- js/midi/plugin.webaudio.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/js/midi/plugin.webaudio.js b/js/midi/plugin.webaudio.js index 15a6f0a7..e6d23eb9 100644 --- a/js/midi/plugin.webaudio.js +++ b/js/midi/plugin.webaudio.js @@ -70,9 +70,7 @@ } /// convert relative delay to absolute delay - if (delay < ctx.currentTime) { - delay += ctx.currentTime; - } + delay += ctx.currentTime; /// create audio buffer if (useStreamingBuffer) { @@ -128,9 +126,7 @@ var bufferId = instrument + '' + noteId; var buffer = audioBuffers[bufferId]; if (buffer) { - if (delay < ctx.currentTime) { - delay += ctx.currentTime; - } + delay += ctx.currentTime; /// var source = sources[channelId + '' + noteId]; if (source) { @@ -185,9 +181,7 @@ midi.stopAllNotes = function() { for (var sid in sources) { var delay = 0; - if (delay < ctx.currentTime) { - delay += ctx.currentTime; - } + delay += ctx.currentTime; var source = sources[sid]; source.gain.linearRampToValueAtTime(1, delay); source.gain.linearRampToValueAtTime(0, delay + 0.3); @@ -323,4 +317,4 @@ return new (window.AudioContext || window.webkitAudioContext)(); }; })(); -})(MIDI); \ No newline at end of file +})(MIDI);