diff --git a/packages/soundfonts/sfumato.mjs b/packages/soundfonts/sfumato.mjs index 871ee67d..6d60f80d 100644 --- a/packages/soundfonts/sfumato.mjs +++ b/packages/soundfonts/sfumato.mjs @@ -3,11 +3,11 @@ import { getAudioContext, registerSound } from '@strudel/webaudio'; import { loadSoundfont as _loadSoundfont, startPresetNote } from 'sfumato'; Pattern.prototype.soundfont = function (sf, n = 0) { - return this.onTrigger((t, h, ct) => { + return this.onTrigger((time_deprecate, h, ct, cps, targetTime) => { const ctx = getAudioContext(); const note = getPlayableNoteValue(h); const preset = sf.presets[n % sf.presets.length]; - const deadline = ctx.currentTime + t - ct; + const deadline = targetTime; const args = [ctx, preset, noteToMidi(note), deadline]; const stop = startPresetNote(...args); stop(deadline + h.duration); diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index d17cd8f7..fc81f565 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -375,6 +375,7 @@ export function resetGlobalEffects() { } export const superdough = async (value, t, hapDuration) => { + const ac = getAudioContext(); t = typeof t === 'string' && t.startsWith('=') ? Number(t.slice(1)) : ac.currentTime + t; let { stretch } = value; if (stretch != null) { @@ -382,7 +383,6 @@ export const superdough = async (value, t, hapDuration) => { const latency = 0.04; t = t - latency; } - const ac = getAudioContext(); if (typeof value !== 'object') { throw new Error( `expected hap.value to be an object, but got "${value}". Hint: append .note() or .s() to the end`,