diff --git a/packages/superdough/modulators.mjs b/packages/superdough/modulators.mjs index 32ebae265..96c68d4bf 100644 --- a/packages/superdough/modulators.mjs +++ b/packages/superdough/modulators.mjs @@ -19,7 +19,11 @@ const getNodeParam = (node, name) => { } } // Built-in node case - const p = node?.[name]; + let p = node?.[name]; + if (p === undefined && name === 'frequency') { + // Fallbacks for source nodes without 'frequency' params (e.g. soundfonts) + p = node?.['detune'] ?? node?.['playbackRate']; + } if (p instanceof AudioParam) { return p; } diff --git a/packages/superdough/zzfx.mjs b/packages/superdough/zzfx.mjs index f3dc710b1..3d6b8e9f5 100644 --- a/packages/superdough/zzfx.mjs +++ b/packages/superdough/zzfx.mjs @@ -75,7 +75,6 @@ export const getZZFX = (value, t) => { source.start(t); return { node: source, - nodes: { source: [source] }, }; }; @@ -91,6 +90,7 @@ export function registerZZFXSounds() { }); return { node: o, + nodes: { source: [o] }, stop: () => {}, }; },