From 6b8fdcd31e4df2c8e2321f5e57fa21702837cd77 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Tue, 29 Jul 2025 09:04:02 -0400 Subject: simplify play/stop logic a bit --- main.mjs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'main.mjs') diff --git a/main.mjs b/main.mjs index bee25cb..1164c49 100644 --- a/main.mjs +++ b/main.mjs @@ -16,34 +16,37 @@ function save({ detail }) { }); } -function changed({ detail }) { - console.debug('got changedEvent', detail.notes); - const played = detail.notes.map((n, i) => { +function getOffsetsFromFretboard(fretboard) { + const played = fretboard.notes.map((n, i) => { if (n !== 'x') { - return [Note.fromString(n), detail.octaves[i]]; + return [Note.fromString(n), fretboard.octaves[i]]; } }).filter(n => n); - const getOffsets = () => { - return played.map(([n, o]) => toCents([noteA, 4], [n, o])); - } + return () => played.map(([n, o]) => toCents([noteA, 4], [n, o])); +} + +function changed({ detail }) { + console.debug('got changedEvent', detail.notes); player = document.querySelector('x-player'); - player.getOffsets = getOffsets; - player.update(); + player.getOffsets = getOffsetsFromFretboard(detail); + if (player.isPlaying) { + player.update(); + } } function play({ detail }) { console.debug('got playEvent', detail.notes); - if (player) { - player.isPlaying = true; - } + player = document.querySelector('x-player'); + player.isPlaying = true; + player.getOffsets = getOffsetsFromFretboard(detail); + player.update(); } function stop(e) { console.debug('got stopEvent', e); - if (player) { - player.isPlaying = false; - } + player = document.querySelector('x-player'); + player.isPlaying = false; } function noteEnter({ detail }) { -- cgit v1.3