if (!this._loop) { if (audio.start) audio.start(0, offset, duration - offset); else if (audio["notoGrainOn"]) audio["noteGrainOn"](0, offset, duration - offset); else audio["noteOn"](0, offset, duration - offset); } else { if (audio.start) audio.start(0); else if (audio["notoGrainOn"]) audio["noteGrainOn"](0); else audio["noteOn"](0); } should update to if (audio.start) audio.start(0, offset); else if (audio["notoGrainOn"]) audio["noteGrainOn"](0, offset); else audio["noteOn"](0, offset);