summaryrefslogtreecommitdiffstats
path: root/main.mjs
diff options
context:
space:
mode:
authorBrian Cully <bjc@spork.org>2025-07-28 16:29:50 -0400
committerBrian Cully <bjc@spork.org>2025-07-28 16:29:50 -0400
commit21e0744d3d21ecae21e61718de4ac353ce19c28a (patch)
treeed876f0c4a1f93b5e0f8b2b29b516bbfc489fba9 /main.mjs
parent9620d3750c54b21c3da0460cea117b57fbeb9eac (diff)
downloadchords-21e0744d3d21ecae21e61718de4ac353ce19c28a.tar.gz
chords-21e0744d3d21ecae21e61718de4ac353ce19c28a.zip
add realtime note selection
Diffstat (limited to 'main.mjs')
-rw-r--r--main.mjs20
1 files changed, 13 insertions, 7 deletions
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 => {