From ff412f6396148dbe20cdceb63565e942d00e369a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 9 Mar 2023 23:19:19 +0100 Subject: [PATCH] level down soundfonts + do not load in prebake (breaks static rendering) + instead load on import --- packages/soundfonts/fontloader.mjs | 7 ++++++- website/src/docs/MiniRepl.jsx | 1 + website/src/repl/prebake.mjs | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/soundfonts/fontloader.mjs b/packages/soundfonts/fontloader.mjs index a13eb764..45fae951 100644 --- a/packages/soundfonts/fontloader.mjs +++ b/packages/soundfonts/fontloader.mjs @@ -126,13 +126,18 @@ export function registerSoundfonts() { const bufferSource = await getFontBufferSource(instrument, note || n, ctx); bufferSource.start(time); const stop = (time) => bufferSource.stop(time); + const g = new GainNode(ctx, { gain: 0.3 }); + bufferSource.connect(g); bufferSource.onended = () => { bufferSource.disconnect(); + g.disconnect(); onended(); }; - return { node: bufferSource, stop }; + return { node: g, stop }; }, { type: 'soundfont', prebake: true }, ); }); } + +registerSoundfonts(); diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index 83106a53..cce24623 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -18,6 +18,7 @@ if (typeof window !== 'undefined') { import('@strudel.cycles/webaudio'), import('@strudel.cycles/osc'), import('@strudel.cycles/csound'), + import('@strudel.cycles/soundfonts'), ); } diff --git a/website/src/repl/prebake.mjs b/website/src/repl/prebake.mjs index 5c86dd08..04ec66a7 100644 --- a/website/src/repl/prebake.mjs +++ b/website/src/repl/prebake.mjs @@ -1,12 +1,12 @@ import { Pattern, toMidi, valueToMidi } from '@strudel.cycles/core'; -import { registerSoundfonts } from '@strudel.cycles/soundfonts'; +//import { registerSoundfonts } from '@strudel.cycles/soundfonts'; import { registerSynthSounds, samples } from '@strudel.cycles/webaudio'; export async function prebake() { // https://archive.org/details/SalamanderGrandPianoV3 // License: CC-by http://creativecommons.org/licenses/by/3.0/ Author: Alexander Holm registerSynthSounds(); - registerSoundfonts(); + //registerSoundfonts(); await Promise.all([ samples(`./piano.json`, `./piano/`, { prebake: true }), // https://github.com/sgossner/VCSL/