diff options
| author | julian laplace <julescarbon@gmail.com> | 2025-06-30 23:35:13 +0200 |
|---|---|---|
| committer | julian laplace <julescarbon@gmail.com> | 2025-06-30 23:35:13 +0200 |
| commit | e5ec8893d18aa21f771ab56fc5ded42602125f94 (patch) | |
| tree | f9b95619cfa86ff6ea72302defbee5367f2d3307 /client/lib/kalimba.js | |
| parent | dfcdf790e3879678d8b3a9b729cca03174b32d55 (diff) | |
fixes
Diffstat (limited to 'client/lib/kalimba.js')
| -rw-r--r-- | client/lib/kalimba.js | 90 |
1 files changed, 44 insertions, 46 deletions
diff --git a/client/lib/kalimba.js b/client/lib/kalimba.js index ec224c0..e79e5f7 100644 --- a/client/lib/kalimba.js +++ b/client/lib/kalimba.js @@ -1,57 +1,55 @@ -import Tone from 'tone' -import { choice } from './util' -import output from './output' +import Tone from "tone"; +import { choice } from "./util"; +import { getOutput } from "./output"; -const player_count = 4 +const player_count = 4; const samples = [ - { root: 226, fn: 'samples/380737__cabled-mess__sansula-01-a-raw.wav', }, - { root: 267, fn: 'samples/380736__cabled-mess__sansula-02-c-raw.wav', }, - { root: 340, fn: 'samples/380735__cabled-mess__sansula-03-e-raw.wav', }, - { root: 452, fn: 'samples/380733__cabled-mess__sansula-06-a-02-raw.wav', }, -// { root: 507, fn: 'samples/380734__cabled-mess__sansula-07-b-h-raw.wav', }, -// { root: 535, fn: 'samples/380731__cabled-mess__sansula-08-c-raw.wav', }, -// { root: 671, fn: 'samples/380732__cabled-mess__sansula-09-e-raw.wav', }, -] + { root: 226, fn: "samples/380737__cabled-mess__sansula-01-a-raw.wav" }, + // { root: 267, fn: "samples/380736__cabled-mess__sansula-02-c-raw.wav" }, + // { root: 340, fn: "samples/380735__cabled-mess__sansula-03-e-raw.wav" }, + // { root: 452, fn: "samples/380733__cabled-mess__sansula-06-a-02-raw.wav" }, + // { root: 226, fn: "samples/380737__cabled-mess__sansula-01-a-raw.wav" }, + // { root: 267, fn: "samples/380736__cabled-mess__sansula-02-c-raw.wav" }, + // { root: 340, fn: "samples/380735__cabled-mess__sansula-03-e-raw.wav" }, + // { root: 452, fn: "samples/380733__cabled-mess__sansula-06-a-02-raw.wav" }, + // { root: 507, fn: 'samples/380734__cabled-mess__sansula-07-b-h-raw.wav', }, + // { root: 535, fn: 'samples/380731__cabled-mess__sansula-08-c-raw.wav', }, + // { root: 671, fn: 'samples/380732__cabled-mess__sansula-09-e-raw.wav', }, +]; -samples.forEach((sample) => { - sample.players = [] - sample.index = -1 - for (let i = 0; i < player_count; i++) { - let fn = sample.fn - if (window.location.href.match(/asdf.us/)) { - fn = '//asdf.us/kalimba/' + fn.replace('wav','mp3') +function load() { + const output = getOutput(); + samples.forEach((sample) => { + sample.players = []; + sample.index = -1; + for (let i = 0; i < player_count; i++) { + let fn = sample.fn; + if (window.location.href.match(/asdf.us/)) { + fn = "//asdf.us/kalimba/" + fn.replace("wav", "mp3"); + } + let player = new Tone.Player({ + url: fn, + retrigger: true, + playbackRate: 1, + }); + player.connect(output); + sample.players.push(player); } - let player = new Tone.Player({ - url: fn, - retrigger: true, - playbackRate: 1, - }) - player.connect(output) - sample.players.push(player) - } -}) + }); +} + +function play(freq) { + const best = choice(samples); + best.index = (best.index + 1) % player_count; -function play (freq) { -/* - while (freq < 440) { - freq *= 2 - } - while (freq > 880) { - freq /= 2 - } - freq /= 2 -*/ - const best = { sample: choice(samples) } - best.sample.index = (best.sample.index + 1) % player_count + const player = best.players[best.index]; + player.playbackRate = freq / best.root; - const player = best.sample.players[ best.sample.index ] - player.playbackRate = freq / best.sample.root - player.start() + player.start(); } -function pause () { +function pause() { // no-op } -export default { play, pause } - +export default { load, play, pause }; |
