summaryrefslogtreecommitdiff
path: root/client/lib/midi.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/lib/midi.js')
-rw-r--r--client/lib/midi.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/client/lib/midi.js b/client/lib/midi.js
index 338526a..f4b479b 100644
--- a/client/lib/midi.js
+++ b/client/lib/midi.js
@@ -54,7 +54,7 @@ export function midi_init() {
/* play a single note */
-export function play_note(index, duration, channel="all", exporting=false, defer=0){
+export function play_note(index, duration, channel="all", exporting=false, rest=0, defer=0){
// console.log(index)
const scale = scales.current()
const freq = scale.index(index + Math.round(nx.offset.value), nx.octave.value)
@@ -68,6 +68,8 @@ export function play_note(index, duration, channel="all", exporting=false, defer
midi_note = Math.floor(midi_note)
if ((midiDevice || exporting) && midi_note > 127) return 0
const note = Tone.Frequency(Math.floor(midi_note), "midi").toNote()
+ const defer_time = 30000 / Tone.Transport.bpm.value * defer / 128
+ console.log(defer, defer_time)
if (exporting || midiDevice) {
duration = duration || 60000 / Tone.Transport.bpm.value
if (! exporting) {
@@ -79,6 +81,11 @@ export function play_note(index, duration, channel="all", exporting=false, defer
play_midi_note(note, cents, channel, duration)
}
}
+ }
+ else if (defer) {
+ setTimeout(() => {
+ kalimba.play(freq)
+ }, defer_time)
} else {
kalimba.play(freq)
}