Super cool function, lezgo

This commit is contained in:
2023-07-31 13:44:40 +02:00
parent 9655312f70
commit 4d5e8d9d63
2 changed files with 22 additions and 7 deletions

View File

@ -65,10 +65,8 @@ export class UserAPI {
this.MidiConnection.switchMidiOutput(outputName) this.MidiConnection.switchMidiOutput(outputName)
} }
public note(note: number, velocity: number, duration: number): void { public note(note: number, channel: number, velocity: number, duration: number): void {
this.MidiConnection.sendMidiNote( this.MidiConnection.sendMidiNote( note, channel, velocity, duration)
note, velocity, duration
)
} }
public midi_clock(): void { public midi_clock(): void {
@ -196,12 +194,26 @@ export class UserAPI {
get beats_since_origin(): number { return this.app.clock.beats_since_origin } get beats_since_origin(): number { return this.app.clock.beats_since_origin }
onbeat(...beat: number[]): boolean { onbeat(...beat: number[]): boolean {
return (
beat.includes(this.app.clock.time_position.beat) let final_pulses: boolean[] = []
&& this.app.clock.time_position.pulse == 1
beat.forEach(b => {
let integral_part = Math.floor(b);
let decimal_part = b - integral_part;
final_pulses.push(
integral_part === this.app.clock.time_position.beat &&
this.app.clock.time_position.pulse === decimal_part * this.app.clock.ppqn
) )
});
return final_pulses.some(p => p == true)
// return (
// beat.includes(this.app.clock.time_position.beat)
// && this.app.clock.time_position.pulse == 1
// )
} }
evry(...n: number[]): boolean { evry(...n: number[]): boolean {
return n.some(n => this.i % n === 0) return n.some(n => this.i % n === 0)
} }

View File

@ -14,6 +14,8 @@ export class TransportNode extends AudioWorkletNode {
this.currentPulse = 0; this.currentPulse = 0;
} }
/** @type {(this: MessagePort, ev: MessageEvent<any>) => any} */ /** @type {(this: MessagePort, ev: MessageEvent<any>) => any} */
handleMessage = (message) => { handleMessage = (message) => {
if (message.data && message.data.type === "bang") { if (message.data && message.data.type === "bang") {
@ -30,6 +32,7 @@ export class TransportNode extends AudioWorkletNode {
tryEvaluate( this.app, this.app.global_buffer ); tryEvaluate( this.app, this.app.global_buffer );
this.hasBeenEvaluated = true; this.hasBeenEvaluated = true;
this.currentPulse = info.ppqn; this.currentPulse = info.ppqn;
this.app.api.midi_clock();
} }
} }
}; };