diff --git a/packages/superdough/helpers.mjs b/packages/superdough/helpers.mjs index 0ca085e3e..584b19673 100644 --- a/packages/superdough/helpers.mjs +++ b/packages/superdough/helpers.mjs @@ -154,9 +154,8 @@ export function getCompressor(ac, threshold, ratio, knee, attack, release) { attack: attack ?? 0.005, release: release ?? 0.05, }; - const now = ac.currentTime; Object.entries(options).forEach(([key, value]) => { - node[key].setValueAtTime(value, now); + node[key].value = value; }); return node; } @@ -242,9 +241,8 @@ export function createFilter(context, start, end, params, cps, cycle) { const factory = () => context.createBiquadFilter(); filter = getNodeFromPool('filter', factory); filter.type = type; - const now = context.currentTime; Object.entries({ Q: q, frequency }).forEach(([key, value]) => { - filter[key].setValueAtTime(value, now); + filter[key].value = value; }); frequencyParam = filter.frequency; } diff --git a/packages/superdough/synth.mjs b/packages/superdough/synth.mjs index 9561ab363..38ad643de 100644 --- a/packages/superdough/synth.mjs +++ b/packages/superdough/synth.mjs @@ -178,11 +178,10 @@ export function registerSynthSounds() { }; const factory = () => new AudioWorkletNode(ac, 'supersaw-oscillator', { outputChannelCount: [2] }); const o = getNodeFromPool('supersaw', factory); - const now = ac.currentTime; Object.entries(params).forEach(([key, value]) => { const param = o.parameters.get(key); const target = value !== undefined ? value : param.defaultValue; - param.setValueAtTime(target, now); + param.value = target; }); o.port.postMessage({ type: 'initialize' }); const gainAdjustment = 1 / Math.sqrt(voices); diff --git a/packages/superdough/wavetable.mjs b/packages/superdough/wavetable.mjs index 1de42f643..6ef1f0ebb 100644 --- a/packages/superdough/wavetable.mjs +++ b/packages/superdough/wavetable.mjs @@ -244,11 +244,10 @@ export async function onTriggerSynth(t, value, onended, tables, cps, frameLen) { }; const factory = () => new AudioWorkletNode(ac, 'wavetable-oscillator-processor', { outputChannelCount: [2] }); const source = getNodeFromPool('wavetable', factory); - const now = ac.currentTime; Object.entries(params).forEach(([key, value]) => { const param = source.parameters.get(key); const target = value !== undefined ? value : param.defaultValue; - param.setValueAtTime(target, now); + param.value = target; }); source.port.postMessage({ type: 'initialize', payload }); if (ac.currentTime > t) {