# HG changeset patch # User Nicholas Jillings # Date 1478698231 0 # Node ID 70a319ff302e40168c2ae17d4ed226482c995e03 # Parent 618603a1b277b61005dd38e993644d2987b0df32 #159: Overlap audio start/stops for crossFade diff -r 618603a1b277 -r 70a319ff302e js/core.js --- a/js/core.js Wed Nov 09 13:28:01 2016 +0100 +++ b/js/core.js Wed Nov 09 13:30:31 2016 +0000 @@ -1584,22 +1584,21 @@ } else { interfaceContext.playhead.setTimePerPixel(this.audioObjects[id]); } + var setTime = audioContext.currentTime; if (this.synchPlayback && this.loopPlayback) { // Traditional looped playback - var setTime = audioContext.currentTime + specification.crossFade; for (var i = 0; i < this.audioObjects.length; i++) { this.audioObjects[i].play(audioContext.currentTime); if (id == i) { this.audioObjects[i].loopStart(setTime); } else { - this.audioObjects[i].loopStop(setTime); + this.audioObjects[i].loopStop(setTime + specification.crossFade); } } } else { - var setTime = audioContext.currentTime + specification.crossFade; for (var i = 0; i < this.audioObjects.length; i++) { if (i != id) { - this.audioObjects[i].stop(setTime); + this.audioObjects[i].stop(setTime + specification.crossFade); } else if (i == id) { this.audioObjects[id].play(setTime); }