- From: Robert O'Callahan <robert@ocallahan.org>
- Date: Thu, 31 May 2012 23:28:48 +1200
- To: olivier Thereaux <olivier.thereaux@bbc.co.uk>
- Cc: Audio Working Group <public-audio@w3.org>
- Message-ID: <CAOp6jLah0neYg2Assba=JUKz0x2cvHA-XOhjV2b54EgEiWLoAA@mail.gmail.com>
On Thu, May 31, 2012 at 8:57 AM, olivier Thereaux < olivier.thereaux@bbc.co.uk> wrote: > We started on the basis that a circular graph was OK so long as there was > a delay (through the presence of a DelayNode - there was also talk of the > JavaScriptNode filling that role, too). The participants also rapidly > agreed on the fact that the API would output silence if the delay was > missing or under a defined minimum. We then talked for the rest of the hour > about the whether/how/how much of that minimum delay, and agreed on 128 > samples as a reasonable value. > > Resolution: it is OK to have a circular graph so long as there is a delay. > The minimum delay should be 128 samples. > I think 128 samples is a bit unfortunate for authors since they specify the time in seconds. Couldn't we make this a limit in seconds? I think this resolution is still well short of fully defining the behavior. For example, if a cycle has multiple DelayNodes whose delay adds up to the threshold, does that produce output or not? When the delay does not meet the threshold, what "outputs silence" --- the whole graph, every node in the cycle, or possibly just a subset of nodes in the cycle? A while back, when we discussed using high-latency filters like ducking without losing A/V sync, Chris (on May 1) suggested an implementation strategy "to 'prime' the processing pipeline with an amount of audio equal in duration to the latency", aka "shifting a track forward in time". That's going to cause additional problems in the presence of cycles. Imagine for example the following setup: A: Audio source B: Ducking filter with 1s latency (needs to buffer 1s of its inputs before producing output) C: DelayNode by 0.5s D: GainNode scaling by 0.2 Connect A to B, B to C, C to D, D to B, and C to output. There's plenty of delay in the cycle, but obviously this graph can't "work". Rob -- “You have heard that it was said, ‘Love your neighbor and hate your enemy.’ But I tell you, love your enemies and pray for those who persecute you, that you may be children of your Father in heaven. ... If you love those who love you, what reward will you get? Are not even the tax collectors doing that? And if you greet only your own people, what are you doing more than others?" [Matthew 5:43-47]
Received on Thursday, 31 May 2012 11:29:21 UTC