diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-08-11 16:52:21 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-08-11 16:52:21 +0200 |
| commit | 2b4057ef612cac821def7dff666d66e6a8b96c74 (patch) | |
| tree | 3590f63f98a1110bae479c46eac51b6ff2951d4f /bundle.js | |
| parent | 795e1064ed498457dfc122b5ef91f4b2496a62e1 (diff) | |
export pitchbend FWIW
Diffstat (limited to 'bundle.js')
| -rw-r--r-- | bundle.js | 26 |
1 files changed, 22 insertions, 4 deletions
@@ -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); } |
