From 8674b61c2c506aefedd33191f91fc7101fe46188 Mon Sep 17 00:00:00 2001 From: prezmop Date: Sat, 26 Apr 2025 17:47:54 +0900 Subject: [PATCH] add prepare functionality to webaudio --- packages/webaudio/webaudio.mjs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/webaudio/webaudio.mjs b/packages/webaudio/webaudio.mjs index 44a683480..21a2bc826 100644 --- a/packages/webaudio/webaudio.mjs +++ b/packages/webaudio/webaudio.mjs @@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th */ import * as strudel from '@strudel/core'; -import { superdough, getAudioContext, setLogger, doughTrigger } from 'superdough'; +import { superdough, prepare, getAudioContext, setLogger, doughTrigger } from 'superdough'; const { Pattern, logger, repl } = strudel; setLogger(logger); @@ -20,6 +20,9 @@ export const webaudioOutputTrigger = (t, hap, ct, cps) => superdough(hap2value(h export const webaudioOutput = (hap, deadline, hapDuration, cps, t) => superdough(hap2value(hap), t ? `=${t}` : deadline, hapDuration); +export const webaudioPrepare = (hap) => + prepare(hap2value(hap)); + Pattern.prototype.webaudio = function () { return this.onTrigger(webaudioOutputTrigger); }; @@ -28,6 +31,7 @@ export function webaudioRepl(options = {}) { options = { getTime: () => getAudioContext().currentTime, defaultOutput: webaudioOutput, + defaultPrepare: webaudioPrepare, ...options, }; return repl(options);