From 60fd4cf67dfbe3fd223791e77d4e2fe1c67c613f Mon Sep 17 00:00:00 2001 From: julian laplace Date: Sat, 5 Jul 2025 00:25:43 +0200 Subject: sine --- client/index.js | 5 ++++- client/lib/kalimba.js | 4 +--- client/lib/organ.js | 10 +++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'client') diff --git a/client/index.js b/client/index.js index 527d8db..5de7b91 100644 --- a/client/index.js +++ b/client/index.js @@ -4,6 +4,7 @@ import keys from "./lib/keys"; import color from "./lib/color"; import kalimba from "./lib/kalimba"; import organ from "./lib/organ"; +import { getOutput } from "./lib/output"; import { browser, requestAudioContext, choice } from "./lib/util"; import { PRIMES } from "./lib/primes"; // import life from "./lib/life"; @@ -28,7 +29,9 @@ let base_y = 0; let is_split = false; requestAudioContext(() => { - kalimba.load(); + const output = getOutput(); + kalimba.load(output); + organ.load(output); build(); bind(); }); diff --git a/client/lib/kalimba.js b/client/lib/kalimba.js index e79e5f7..7f9121e 100644 --- a/client/lib/kalimba.js +++ b/client/lib/kalimba.js @@ -1,6 +1,5 @@ import Tone from "tone"; import { choice } from "./util"; -import { getOutput } from "./output"; const player_count = 4; @@ -18,8 +17,7 @@ const samples = [ // { root: 671, fn: 'samples/380732__cabled-mess__sansula-09-e-raw.wav', }, ]; -function load() { - const output = getOutput(); +function load(output) { samples.forEach((sample) => { sample.players = []; sample.index = -1; diff --git a/client/lib/organ.js b/client/lib/organ.js index 1e45e68..30972ba 100644 --- a/client/lib/organ.js +++ b/client/lib/organ.js @@ -1,10 +1,17 @@ import Tone from "tone"; -import output from "./output"; const oscillators = {}; +let output; let lastPlayed; + +function load(out) { + output = out; +} function play(freq) { + if (!output) { + return; + } const osc = (oscillators[freq] = oscillators[freq] || {}); if (!osc.el) { osc.el = new Tone.Oscillator(freq, "sine"); @@ -15,6 +22,7 @@ function play(freq) { lastPlayed = osc; return osc; } + function pause(freq) { if (!oscillators[freq]) return; const osc = (oscillators[freq] = oscillators[freq] || {}); -- cgit v1.2.3-70-g09d2