diff --git a/audioUtils.js b/audioUtils.js index da5073a..f5e4da5 100644 --- a/audioUtils.js +++ b/audioUtils.js @@ -1,3 +1,6 @@ +var LAME_DELAY_START = 2258; +var LAME_DELAY_END = 1000; + // callback is given a populated song object function loadSong(song, callback) { if(song.buffer) { @@ -25,9 +28,9 @@ function loadAudioFile(song, isBuild, callback) { req.response, function(buffer) { if(isBuild) { - song.tmpBuf.build = trimSilence(buffer); + song.tmpBuf.build = trimMP3(buffer); } else { - song.tmpBuf.loop = trimSilence(buffer); + song.tmpBuf.loop = trimMP3(buffer); } onSongLoad(song, callback); }, @@ -58,39 +61,13 @@ function onSongLoad(song, callback) { } // because MP3 is bad -function trimSilence(buffer) { - // how much silence we have - var minSilence = buffer.length; - var maxSilence = 0; - for(var i=0; i= 0 ; j--) { - if(tmp[j] != 0) { - if(j > maxSilence) { - maxSilence = j; - } - break; - } - } - } - // 1152 = one frame, makes the sync better because ID3 tags - // take up that space or some garbage - var ret = audio.context.createBuffer(buffer.numberOfChannels, maxSilence-minSilence-1152, buffer.sampleRate); +function trimMP3(buffer) { + var ret = audio.context.createBuffer(buffer.numberOfChannels, buffer.length - LAME_DELAY_START - LAME_DELAY_END, buffer.sampleRate); for(var i=0; i