From cb57d8f497c5c961ddc66b5dc6ca887a53b7dbf8 Mon Sep 17 00:00:00 2001 From: "Jade (Rose) Rowland" Date: Mon, 25 Dec 2023 20:42:20 -0500 Subject: [PATCH] working --- packages/core/cyclist.mjs | 15 +++++++-------- packages/core/zyklus.mjs | 1 + 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/core/cyclist.mjs b/packages/core/cyclist.mjs index 2c14bfcc..c835ca76 100644 --- a/packages/core/cyclist.mjs +++ b/packages/core/cyclist.mjs @@ -11,17 +11,14 @@ export class Cyclist { constructor({ interval, onTrigger, onToggle, onError, getTime, latency = 0.1 }) { this.started = false; this.cps = 1; - - // this.num_ticks_since_cps_change = 0; + this.num_ticks_since_cps_change = 0; this.lastTick = 0; // absolute time when last tick (clock callback) happened this.lastBegin = 0; // query begin of last tick this.lastEnd = 0; // query end of last tick this.getTime = getTime; // get absolute time this.num_cycles_since_last_cps_change = 0; - this.time_last_cps_change = 0; this.onToggle = onToggle; this.latency = latency; // fixed trigger time offset - const round = (x) => Math.round(x * 1000) / 1000; this.clock = createClock( getTime, // called slightly before each cycle @@ -37,12 +34,16 @@ export class Cyclist { const time = getTime(); const begin = this.lastEnd; this.lastBegin = begin; + + //convert ticks to cycles, so you can query the pattern for events const eventLength = duration * this.cps; const end = this.num_cycles_since_last_cps_change + this.num_ticks_since_cps_change * eventLength; - // const end = round(begin + duration * this.cps); this.lastEnd = end; + + // query the pattern for events const haps = this.pattern.queryArc(begin, end); - const tickdeadline = phase - time; // time left till phase tick begins + + const tickdeadline = phase - time; // time left until the phase is a whole number this.lastTick = time + tickdeadline; haps.forEach((hap) => { @@ -69,7 +70,6 @@ export class Cyclist { this.onToggle?.(v); } start() { - // this.time_last_cps_change = 0; this.num_ticks_since_cps_change = 0; this.num_cycles_since_last_cps_change = 0; if (!this.pattern) { @@ -101,7 +101,6 @@ export class Cyclist { return; } this.cps = cps; - // this.time_last_cps_change = this.getTime(); this.num_ticks_since_cps_change = 0; } log(begin, end, haps) { diff --git a/packages/core/zyklus.mjs b/packages/core/zyklus.mjs index 4bcaa8cd..3d25b054 100644 --- a/packages/core/zyklus.mjs +++ b/packages/core/zyklus.mjs @@ -39,6 +39,7 @@ function createClock( const pause = () => clear(); const stop = () => { tick = 0; + phase = 0; clear(); }; const getPhase = () => phase;