-
Notifications
You must be signed in to change notification settings - Fork 167
channel count changes in filter nodes with tail time #1719
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
#25 discussed DelayNode, but DynamicsCompressorNode may be similar to DelayNode. Since https://github.com/WebAudio/web-audio-api/pull/1176/files this also |
For a mono signal
if mixing is always performed with the same channelInterpretation. In order to achieve this, the node would need to up-mix the mono signal and |
Graphs with changing channelInterpretation don't need to be a priority IMO, |
+1 to everything you said. I think it's kind of implied in tail-time, but we should be more explicit about it. Chrome currently does this incorrectly, even in the case where we're not processing the tail. If you have a stereo input and a mono input, then take away the stereo input, Chrome's biquad filter suddenly produces mono output, effectively killing off the tail that should be there for the stereo signal. |
Thanks, rtoy. Gecko has the same bug: https://bugzilla.mozilla.org/show_bug.cgi?id=924718 |
TPAC 2018 resolution: the channel count on the output takes into account the tail of the node, as described in this issue. |
I'm trying to determine whether it's better to spec this globally or for each node. It might be enough to state something like:
|
Perhaps you meant |
after is close to appropriate for "Output channel counts remain until the tail time passes" would be close to appropriate for decreases in channel count. For increases in channel count, however, changes in input channel count will need to be applied immediately to output channel count for some nodes such as ConvolverNode. The principal for all filter nodes is that, where a rendering quantum of output is derived from input from multiple rendering quanta, the channel layout in the output is a superset of the input channel layouts for each input quantum. |
I'm thinking maybe something like you last paragraph would be accurate enough. |
…at have a tail time, when the input channel count changes. This fixes WebAudio#1719.
…at have a tail time, when the input channel count changes. This fixes WebAudio#1719.
Consider a graph where a filter node with a tail-time initially has a mono
input, then a stereo input is added, then the stereo input is removed.
In order to avoid glitches in the audio signal, implementations should take
care to up-mix the tail when the stereo input is added, and continue to
produce stereo output for a the tail period after the stereo input is removed.
It may be helpful to mention this in the spec.
The text was updated successfully, but these errors were encountered: