From 814ea0c66042309b18ae9011b82d7461fca2a178 Mon Sep 17 00:00:00 2001 From: Miika Alonen Date: Fri, 25 Aug 2023 13:36:23 +0300 Subject: [PATCH] Change from audiocontext currenttime to logicaltime --- src/TransportNode.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/TransportNode.js b/src/TransportNode.js index b9df84b..8ef0c3a 100644 --- a/src/TransportNode.js +++ b/src/TransportNode.js @@ -28,19 +28,20 @@ export class TransportNode extends AudioWorkletNode { /** @type {(this: MessagePort, ev: MessageEvent) => any} */ handleMessage = (message) => { if (message.data && message.data.type === "bang") { - let { futureTimeStamp, timeToNextPulse, nextPulsePosition } = this.convertTimeToNextBarsBeats(message.data.logicalTime); + this.logicalTime = message.data.logicalTime; + let { futureTimeStamp, timeToNextPulse, nextPulsePosition } = this.convertTimeToNextBarsBeats(this.logicalTime); // Evaluate the global buffer only once per ppqn value if (this.nextPulsePosition !== nextPulsePosition) { this.nextPulsePosition = nextPulsePosition; setTimeout(() => { - const now = this.app.audioContext.currentTime; + const now = this.logicalTime; this.app.clock.time_position = futureTimeStamp; - // this.$clock.innerHTML = `[${futureTimeStamp.bar}:${futureTimeStamp.beat}:${zeroPad(futureTimeStamp.pulse, '2')}]`; + //this.$clock.innerHTML = `[${futureTimeStamp.bar}:${futureTimeStamp.beat}:${zeroPad(futureTimeStamp.pulse, '2')}]`; tryEvaluate(this.app, this.app.global_buffer); this.hasBeenEvaluated = true; this.currentPulsePosition = nextPulsePosition; - const then = this.app.audioContext.currentTime; + const then = this.logicalTime; this.lastLatencies[this.indexOfLastLatencies] = then - now; this.indexOfLastLatencies = (this.indexOfLastLatencies + 1) % this.lastLatencies.length; const averageLatency = this.lastLatencies.reduce((a, b) => a + b) / this.lastLatencies.length;