summaryrefslogtreecommitdiff
path: root/bundle.js
diff options
context:
space:
mode:
Diffstat (limited to 'bundle.js')
-rw-r--r--bundle.js26
1 files changed, 22 insertions, 4 deletions
diff --git a/bundle.js b/bundle.js
index 3fae84d..a0b62fd 100644
--- a/bundle.js
+++ b/bundle.js
@@ -26931,6 +26931,13 @@ function midi_ready(err) {
console.log(_webmidi2.default.outputs);
midi = _webmidi2.default.outputs[0];
}
+function ftom(f) {
+ // return (Math.log(f) - Math.log(261.626)) / Math.log(2) + 4.0
+ return 69 + 12 * Math.log2(f / 440);
+}
+function mtof(m) {
+ return 440 * Math.pow(2, (m - 69) / 12);
+}
var loop = new _tone2.default.Sequence(function (time, col) {
var column = grid.matrix[col];
@@ -26939,11 +26946,22 @@ var loop = new _tone2.default.Sequence(function (time, col) {
if (column[i] === 1) {
var index = noteCount - i - baseTone;
var freq = _scales2.default.current().index(index);
- var midi_note = _tone2.default.Frequency.ftom(freq);
- var midi_freq = _tone2.default.Frequency.mtof(midi_note);
- console.log(midi_note, freq, midi_freq, freq - midi_freq);
+ // const midi_note = Tone.Frequency.ftom(freq)
+ // const midi_freq = Tone.Frequency.mtof(midi_note)
+ // console.log(midi_note, freq, midi_freq, freq - midi_freq)
+ var midi_note = ftom(freq);
+ var cents = midi_note % 1;
+ if (cents > 0.5) {
+ midi_note += 1;
+ cents -= 1;
+ }
+ cents *= 2;
+ midi_note = Math.floor(midi_note);
+ // console.log(freq, midi_note, cents.foFixed(1))
if (midi) {
- midi.playNote(_tone2.default.Frequency(midi_note, "midi").toNote(), 3, { duration: 90000 / _tone2.default.Transport.bpm.value });
+ midi.playNote(_tone2.default.Frequency(Math.floor(midi_note), "midi").toNote(), "all", { duration: 90000 / _tone2.default.Transport.bpm.value });
+ // cents
+ midi.sendPitchBend(cents, "all");
} else {
_kalimba2.default.play(freq);
}