diff options
| author | Brian Cully <bjc@spork.org> | 2025-07-29 09:04:02 -0400 |
|---|---|---|
| committer | Brian Cully <bjc@spork.org> | 2025-07-29 09:04:02 -0400 |
| commit | 6b8fdcd31e4df2c8e2321f5e57fa21702837cd77 (patch) | |
| tree | ed607769ddc2cf53ef1ff5e5522fd14597638b82 /main.mjs | |
| parent | 65803b1199f48508ded0b971c61df50ee9e48e8a (diff) | |
| download | chords-6b8fdcd31e4df2c8e2321f5e57fa21702837cd77.tar.gz chords-6b8fdcd31e4df2c8e2321f5e57fa21702837cd77.zip | |
simplify play/stop logic a bit
Diffstat (limited to 'main.mjs')
| -rw-r--r-- | main.mjs | 33 |
1 files changed, 18 insertions, 15 deletions
@@ -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 }) { |
