vibrato for soundfonts

+ add getVibratoOscillator helper
This commit is contained in:
Felix Roos 2024-01-16 00:07:56 +01:00
parent 32456d6966
commit 3506de8d1a
4 changed files with 24 additions and 28 deletions

View file

@ -157,3 +157,19 @@ export function getPitchEnvelope(param, value, t, holdEnd) {
getParamADSR(param, pattack, pdecay, psustain, prelease, 0, cents, t, holdEnd, 'linear');
}
}
export function getVibratoOscillator(param, value, t) {
const { vibmod = 0.5, vib } = value;
let vibratoOscillator;
if (vib > 0) {
vibratoOscillator = getAudioContext().createOscillator();
vibratoOscillator.frequency.value = vib;
const gain = getAudioContext().createGain();
// Vibmod is the amount of vibrato, in semitones
gain.gain.value = vibmod * 100;
vibratoOscillator.connect(gain);
gain.connect(param);
vibratoOscillator.start(t);
return vibratoOscillator;
}
}