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);
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();

View File

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

View File

@ -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/