[Bug 23037] New: What should happen in case of cycles containing a delay node is under-defined

https://www.w3.org/Bugs/Public/show_bug.cgi?id=23037

            Bug ID: 23037
           Summary: What should happen in case of cycles containing a
                    delay node is under-defined
    Classification: Unclassified
           Product: AudioWG
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Web Audio API
          Assignee: crogers@google.com
          Reporter: padenot@mozilla.com
        QA Contact: public-audio@w3.org

Consider the following code:

>  var ctx = new AudioContext();
>  var source = ctx.createBufferSource();
>  // some_loaded_buffer is a valid AudioBuffer
>  source.buffer = some_loaded_buffer;
>
>  var gain = ctx.createGain();
>  var delay = ctx.createDelay();
>  // defaults to zero anyways, just there to be explicit 
>  delay.delayTime = 0.0;

>  source.connect(gain);
>  gain.connect(delay);
>  delay.connect(ctx.destination);
>  // cycle
>  delay.connect(gain);
>
>  source.start(0);


The spec does not describe the case where the |delayTime| parameter of the
|delay| node is zero. In fact, problems would arise if the |delayTime| is lower
than |128/ctx.sampleRate|.

While it is fairly easy to detect something like |delay.delayTime.value = 0.0|
where |delay| is in a cycle (and we could throw), there are be some cases where
we can't easily predict the value of the AudioParam.

I propose that in such hard-to-detect cases, the subgraph containing the cycle
is treated as a silent input, no error being thrown. It could also be of
interest in such case to warn the author in the eventual error console of the
UA.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 21 August 2013 17:06:00 UTC