Connect output-less script processor to destination to allow processing #26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As described in the code comment:
numberOfOutputs: 0
in the optionsonaudioprocess
is only invoked on a ScriptProcessorNode if it is connected to an outputThe use case for input-only processors is performing audio analysis (rather than audio manipulation), e.g. for visualisation.
Tested in iOS Safari 12. Note that for the polyfill to work for me at all on this platform, I also needed PR #25 .
Some things that didn't work:
outputChannels
(as the third constructor argument):process
still wasn't invoked unless the ScriptProcessorNode was connected to the outputprocess()
to be invoked, but the input was always silent (possibly an optimisation because the AudioContext can see the output is muted?)Connecting without going through a zero-gain node would only cause surprising behaviour if someone created a polyfill AudioWorkletNode with
numberOfOutputs: 0
and then tried to output something from the node, which would suggest a programming error in any case.