diff options
| author | Brian Cully <bjc@spork.org> | 2025-07-28 16:29:50 -0400 |
|---|---|---|
| committer | Brian Cully <bjc@spork.org> | 2025-07-28 16:29:50 -0400 |
| commit | 21e0744d3d21ecae21e61718de4ac353ce19c28a (patch) | |
| tree | ed876f0c4a1f93b5e0f8b2b29b516bbfc489fba9 /main.mjs | |
| parent | 9620d3750c54b21c3da0460cea117b57fbeb9eac (diff) | |
| download | chords-21e0744d3d21ecae21e61718de4ac353ce19c28a.tar.gz chords-21e0744d3d21ecae21e61718de4ac353ce19c28a.zip | |
add realtime note selection
Diffstat (limited to 'main.mjs')
| -rw-r--r-- | main.mjs | 20 |
1 files changed, 13 insertions, 7 deletions
@@ -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 => { |
