Clipping behaviour of GainNodes (or any other AudioDestinationNode)


I'm trying to simulate applying a DC signal to an existing signal.
Since the signal is already in [-1, 1] and I'm applying a variable
[-2, 2] value, the output should be quite clipped.

Check demo here -
you'll need web components enabled.

In Firefox, although the analyser reports the signal being shifted
around when the range is changed, there is no audible difference.

In Chrome, the behaviour is weirder--the analyser goes bananas and the
sound doesn't seem to change substantially either.

I can definitely listen to the difference by generating a signal in
Audacity and shifting it manually (you can listen to the attachments
in the bug I opened in Mozilla's Bugzilla)

I wonder if the audio engine is allowing values to go out of range
temporarily and finally clipping by the time sounds reaches
audioContext.destination, but I also wonder if this is a behaviour
that is not explicit in the API (or maybe I oversaw it
accidentally--would anyone be as nice as to point me to where is this
behaviour described in the specification?). In other words: I would
expect the output of each node to be clipped to -1, 1



Received on Tuesday, 7 October 2014 13:29:00 UTC