level down soundfonts

+ do not load in prebake (breaks static rendering)
+ instead load on import
This commit is contained in:
Felix Roos 2023-03-09 23:19:19 +01:00
parent ac148b2f32
commit ff412f6396
3 changed files with 9 additions and 3 deletions

View File

@ -126,13 +126,18 @@ export function registerSoundfonts() {
const bufferSource = await getFontBufferSource(instrument, note || n, ctx); const bufferSource = await getFontBufferSource(instrument, note || n, ctx);
bufferSource.start(time); bufferSource.start(time);
const stop = (time) => bufferSource.stop(time); const stop = (time) => bufferSource.stop(time);
const g = new GainNode(ctx, { gain: 0.3 });
bufferSource.connect(g);
bufferSource.onended = () => { bufferSource.onended = () => {
bufferSource.disconnect(); bufferSource.disconnect();
g.disconnect();
onended(); onended();
}; };
return { node: bufferSource, stop }; return { node: g, stop };
}, },
{ type: 'soundfont', prebake: true }, { type: 'soundfont', prebake: true },
); );
}); });
} }
registerSoundfonts();

View File

@ -18,6 +18,7 @@ if (typeof window !== 'undefined') {
import('@strudel.cycles/webaudio'), import('@strudel.cycles/webaudio'),
import('@strudel.cycles/osc'), import('@strudel.cycles/osc'),
import('@strudel.cycles/csound'), import('@strudel.cycles/csound'),
import('@strudel.cycles/soundfonts'),
); );
} }

View File

@ -1,12 +1,12 @@
import { Pattern, toMidi, valueToMidi } from '@strudel.cycles/core'; 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'; import { registerSynthSounds, samples } from '@strudel.cycles/webaudio';
export async function prebake() { export async function prebake() {
// https://archive.org/details/SalamanderGrandPianoV3 // https://archive.org/details/SalamanderGrandPianoV3
// License: CC-by http://creativecommons.org/licenses/by/3.0/ Author: Alexander Holm // License: CC-by http://creativecommons.org/licenses/by/3.0/ Author: Alexander Holm
registerSynthSounds(); registerSynthSounds();
registerSoundfonts(); //registerSoundfonts();
await Promise.all([ await Promise.all([
samples(`./piano.json`, `./piano/`, { prebake: true }), samples(`./piano.json`, `./piano/`, { prebake: true }),
// https://github.com/sgossner/VCSL/ // https://github.com/sgossner/VCSL/