From 21e0744d3d21ecae21e61718de4ac353ce19c28a Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Mon, 28 Jul 2025 16:29:50 -0400 Subject: add realtime note selection --- main.mjs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'main.mjs') diff --git a/main.mjs b/main.mjs index ad45d90..bee25cb 100644 --- a/main.mjs +++ b/main.mjs @@ -16,12 +16,8 @@ function save({ detail }) { }); } -function play({ detail }) { - console.debug('got playEvent', detail.notes); - if (player) { - player.stop(); - } - +function changed({ detail }) { + console.debug('got changedEvent', detail.notes); const played = detail.notes.map((n, i) => { if (n !== 'x') { return [Note.fromString(n), detail.octaves[i]]; @@ -33,7 +29,14 @@ function play({ detail }) { } player = document.querySelector('x-player'); player.getOffsets = getOffsets; - player.isPlaying = true; + player.update(); +} + +function play({ detail }) { + console.debug('got playEvent', detail.notes); + if (player) { + player.isPlaying = true; + } } function stop(e) { @@ -69,8 +72,11 @@ function init() { // todo: maybe just attach the listener to document? document.querySelectorAll(Fretboard.name).forEach(f => { f.addEventListener(f.saveEvent, save); + f.addEventListener(f.changedEvent, changed); f.addEventListener(f.playEvent, play); f.addEventListener(f.stopEvent, stop); + + changed({ detail: f }); }); document.querySelectorAll(KeyPicker.name).forEach(kp => { -- cgit v1.3