diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index b8edac1c..d5c1af66 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -82,7 +82,7 @@ let delays = {}; const maxfeedback = 0.98; let channelMerger, destinationGain; - +//update the output channel configuration to match user's audio device export function initializeAudioOutput() { const audioContext = getAudioContext(); const maxChannelCount = audioContext.destination.maxChannelCount; diff --git a/website/src/repl/panel/AudioDeviceSelector.jsx b/website/src/repl/panel/AudioDeviceSelector.jsx index a90b3dcd..9704f0cd 100644 --- a/website/src/repl/panel/AudioDeviceSelector.jsx +++ b/website/src/repl/panel/AudioDeviceSelector.jsx @@ -3,6 +3,7 @@ import { getAudioContext, initializeAudioOutput } from '@strudel.cycles/webaudio import { SelectInput } from './SelectInput'; const initdevices = new Map(); +// Allows the user to select an audio interface for Strudel to play through export function AudioDeviceSelector({ audioDeviceName, onChange }) { const [devices, setDevices] = useState(initdevices); const devicesInitialized = devices.size > 0; @@ -24,6 +25,7 @@ export function AudioDeviceSelector({ audioDeviceName, onChange }) { return devicesMap; }, []); + // on first load, check if there is a cached audio device name in settings and initialize it useEffect(() => { if (!audioDeviceName.length || devicesInitialized) { return;