From 28a2c31239f0cea1a9d6ebf96d146ced052f2668 Mon Sep 17 00:00:00 2001 From: joe Date: Fri, 25 Apr 2025 13:04:02 +0100 Subject: [PATCH] str --- src/render.js | 11 +++++++++-- src/script.js | 14 ++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/render.js b/src/render.js index d75d3ef..7c44fe3 100644 --- a/src/render.js +++ b/src/render.js @@ -9,7 +9,11 @@ export class Renderer { iconCache = []; iconScale = 0.20; - constructor() { + constructor(dataStream, strikeHandler) { + + this.dataStream = dataStream; + this.strikeHandler = strikeHandler; + this.numStaves = 6; this.currStaveNumber = 1; @@ -23,7 +27,10 @@ export class Renderer { this.timeIndicator.addEventListener("animationiteration", () => { this.currStaveNumber++; if (this.currStaveNumber > this.numStaves) { - this.cleanUpAndRestart(); + this.dataStream.removeEventListener("strike", this.strikeHandler); + setTimeout( () =>{this.dataStream.addEventListener("strike", this.strikeHandler); + this.cleanUpAndRestart();}, 60000); + } }); diff --git a/src/script.js b/src/script.js index 152e8ba..f76c756 100644 --- a/src/script.js +++ b/src/script.js @@ -6,17 +6,14 @@ import { Renderer } from "./render.js"; document.addEventListener("DOMContentLoaded", async () => { const midiAccess = await navigator.requestMIDIAccess(); + const dataStream = new DataStream(); const conductor = new Conductor(); await conductor.init(); - const dataStream = new DataStream(); const instruments = await conductor.instruments; let strikes = 0; const strikeEvery = 2; - - const renderer = new Renderer(); - - dataStream.addEventListener("strike", () => { + const strikeHandler = () => { console.log(strikes); //** select instrument */ if (strikes === strikeEvery){ @@ -34,7 +31,12 @@ document.addEventListener("DOMContentLoaded", async () => { strikes = 0; } strikes++; - }); + + }; + + const renderer = new Renderer(dataStream, strikeHandler); + + dataStream.addEventListener("strike", strikeHandler); dataStream.init();