Route bpm change from TransportProcessor

This commit is contained in:
2023-10-27 15:48:02 +03:00
parent 7ac784bc0e
commit 6f40e8afd2
3 changed files with 5 additions and 2 deletions

View File

@ -137,7 +137,6 @@ export class Clock {
set bpm(bpm: number) { set bpm(bpm: number) {
if (bpm > 0 && this._bpm !== bpm) { if (bpm > 0 && this._bpm !== bpm) {
this._bpm = bpm;
this.transportNode?.setBPM(bpm); this.transportNode?.setBPM(bpm);
} }
} }
@ -223,7 +222,8 @@ export class Clock {
* @remark also sends a MIDI message if a port is declared * @remark also sends a MIDI message if a port is declared
*/ */
this.app.clock.tick = 0; this.app.clock.tick = 0;
this.logicalTime = 0 this.logicalTime = 0;
this.elapsed = 0;
this.time_position = { bar: 0, beat: 0, pulse: 0 }; this.time_position = { bar: 0, beat: 0, pulse: 0 };
this.app.api.MidiConnection.sendStopMessage(); this.app.api.MidiConnection.sendStopMessage();
this.transportNode?.stop(); this.transportNode?.stop();

View File

@ -30,6 +30,8 @@ export class TransportNode extends AudioWorkletNode {
} else { } else {
tryEvaluate(this.app, this.app.global_buffer); tryEvaluate(this.app, this.app.global_buffer);
} }
} else if (message.data.type === "bpm") {
this.app.clock.bpm = message.data.value;
} }
} }
}; };

View File

@ -36,6 +36,7 @@ class TransportProcessor extends AudioWorkletProcessor {
} else if (message.data.type === 'bpm') { } else if (message.data.type === 'bpm') {
this.bpm = message.data.value; this.bpm = message.data.value;
this.currentPulsePosition = 0; this.currentPulsePosition = 0;
this.port.postMessage({ type: "bpm", value: this.bpm });
} else if (message.data.type === 'ppqn') { } else if (message.data.type === 'ppqn') {
this.ppqn = message.data.value; this.ppqn = message.data.value;
this.currentPulsePosition = 0; this.currentPulsePosition = 0;