From 1c99944a32ba8b3822a6504c16f6cac180fe0078 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 18 Jan 2024 06:47:44 +0100 Subject: [PATCH] pitch envelope now also works when setting one of the controls (penv not needed) --- packages/soundfonts/fontloader.mjs | 4 +--- packages/superdough/sampler.mjs | 4 +--- packages/superdough/synth.mjs | 5 +---- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/packages/soundfonts/fontloader.mjs b/packages/soundfonts/fontloader.mjs index 4be29fa1..1a3395d5 100644 --- a/packages/soundfonts/fontloader.mjs +++ b/packages/soundfonts/fontloader.mjs @@ -159,9 +159,7 @@ export function registerSoundfonts() { // vibrato let vibratoOscillator = getVibratoOscillator(bufferSource.detune, value, time); // pitch envelope - if (value.penv) { - getPitchEnvelope(bufferSource.detune, value, time, holdEnd); - } + getPitchEnvelope(bufferSource.detune, value, time, holdEnd); bufferSource.stop(envEnd); const stop = (releaseTime) => {}; diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index 67ee06c0..19fec661 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -299,9 +299,7 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { getParamADSR(node.gain, attack, decay, sustain, release, 0, 1, t, holdEnd, 'linear'); // pitch envelope - if (value.penv) { - getPitchEnvelope(bufferSource.detune, value, t, holdEnd); - } + getPitchEnvelope(bufferSource.detune, value, t, holdEnd); const out = ac.createGain(); // we need a separate gain for the cutgroups because firefox... node.connect(out); diff --git a/packages/superdough/synth.mjs b/packages/superdough/synth.mjs index 7bde4d3a..6d646862 100644 --- a/packages/superdough/synth.mjs +++ b/packages/superdough/synth.mjs @@ -182,10 +182,7 @@ export function getOscillator(s, t, value) { let vibratoOscillator = getVibratoOscillator(o.detune, value, t); // pitch envelope - if (value.penv) { - const holdEnd = t + duration; - getPitchEnvelope(o.detune, value, t, holdEnd); - } + getPitchEnvelope(o.detune, value, t, t + duration); let noiseMix; if (noise) {