W3C home > Mailing lists > Public > public-audio@w3.org > April to June 2012

Re: Minutes of Audio WG Teleconference, 2012-05-30

From: Robert O'Callahan <robert@ocallahan.org>
Date: Thu, 31 May 2012 23:28:48 +1200
Message-ID: <CAOp6jLah0neYg2Assba=JUKz0x2cvHA-XOhjV2b54EgEiWLoAA@mail.gmail.com>
To: olivier Thereaux <olivier.thereaux@bbc.co.uk>
Cc: Audio Working Group <public-audio@w3.org>
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".

“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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:03:04 UTC