diff options
Diffstat (limited to 'client/lib/kalimba.js')
| -rw-r--r-- | client/lib/kalimba.js | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/client/lib/kalimba.js b/client/lib/kalimba.js index 64ace00..53fcb99 100644 --- a/client/lib/kalimba.js +++ b/client/lib/kalimba.js @@ -18,7 +18,7 @@ const samples = [ // { root: 671, fn: 'samples/380732__cabled-mess__sansula-09-e-raw.wav', }, ]; -function load(output) { +function load({ output }) { samples.forEach((sample) => { sample.players = []; sample.index = -1; @@ -45,15 +45,12 @@ function load(output) { ); } -let last = 440; - -function play(freq) { - last = freq; +function play(interval, root) { const sample = choice(samples); sample.index = (sample.index + 1) % sample.players.length; const player = sample.players[sample.index]; - player.playbackRate = freq / sample.root; + player.playbackRate = (interval * root) / sample.root; player.start(); } @@ -63,24 +60,24 @@ function pause() { export default { load, play, pause }; -// for help tuning -function keydown(e) { - // console.log(e.keyCode) - if (e.metaKey && last) { - let step = e.shiftKey ? (e.ctrlKey ? 0.01 : 0.1) : 1; - switch (e.keyCode) { - case 38: // up - e.preventDefault(); - samples[0].root -= step; - play(last); - break; - case 40: // down - e.preventDefault(); - samples[0].root += step; - play(last); - break; - } - console.log(samples[0].root); - } -} +// for help tuning the kalimba samples +// function keydown(e) { +// // console.log(e.keyCode) +// if (e.metaKey && last) { +// let step = e.shiftKey ? (e.ctrlKey ? 0.01 : 0.1) : 1; +// switch (e.keyCode) { +// case 38: // up +// e.preventDefault(); +// samples[0].root -= step; +// play(last); +// break; +// case 40: // down +// e.preventDefault(); +// samples[0].root += step; +// play(last); +// break; +// } +// console.log(samples[0].root); +// } +// } // window.addEventListener("keydown", keydown, true); |
