Adding time warping capabilities

This commit is contained in:
2023-09-01 13:02:02 +02:00
parent f82f2735fa
commit f931ea45e6
4 changed files with 91 additions and 18 deletions

View File

@ -18,8 +18,7 @@ export class TransportNode extends AudioWorkletNode {
this.app.clock.tick++
const futureTimeStamp = this.convertTicksToTimeposition(this.app.clock.tick);
//console.log("BANG", this.logicalTime, futureTimeStamp);
const futureTimeStamp = this.app.clock.convertTicksToTimeposition(this.app.clock.tick);
this.app.clock.time_position = futureTimeStamp;
tryEvaluate(this.app, this.app.global_buffer);
@ -27,14 +26,6 @@ export class TransportNode extends AudioWorkletNode {
}
};
convertTicksToTimeposition(ticks) {
const beatsPerBar = this.app.clock.time_signature[0];
const ppqnPosition = (ticks % this.app.clock.ppqn);
const beatNumber = Math.floor(ticks / this.app.clock.ppqn);
const barNumber = Math.floor(beatNumber / beatsPerBar);
const beatWithinBar = Math.floor(beatNumber % beatsPerBar);
return {bar: barNumber, beat: beatWithinBar, pulse: ppqnPosition};
}
start() {
this.port.postMessage("start");