Re: Audio-ISSUE-69 (LinearConvolution): Linear convolution effect is defined by Wikipedia [Web Audio API]

On Fri, 25 May 2012 12:39:38 +0200, olivier Thereaux  
<olivier.thereaux@bbc.co.uk> wrote:

> On 16 May 2012, at 10:56, Audio Working Group Issue Tracker wrote:
>
>> Audio-ISSUE-69 (LinearConvolution): Linear convolution effect is  
>> defined by Wikipedia [Web Audio API]
>>
>> http://www.w3.org/2011/audio/track/issues/69
>>
>> Raised by: Philip Jägenstedt
>> On product: Web Audio API
>>
>> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ConvolverNode
>>
>> links to
>>
>> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#Convolution-section
>>
>> links to
>>
>> http://en.wikipedia.org/wiki/Convolution
>>
>> The definition should be in the specification itself. A problem that is  
>> not addressed at all is how phase/latency depends on the length of the  
>> convolution buffer. In other words, it must be defined exactly how each  
>> sample value is calculated from the the input signal and the impulse  
>> response buffer.
>
> This issue is now pending review, per  
> https://dvcs.w3.org/hg/audio/rev/7865f8b76f19

The new document [1] contains valuable information, but isn't what this  
issue was about. If linear convolution need not be defined, then the issue  
should be closed as invalid.

Not everyone reading the spec will have a background in signal processing,  
e.g. we want our QA to be able to write tests with little effort. We  
suggest to define the output y in terms of the input x and the impulse  
response g as a summation formula or pseudo-code such as:

y[n] = 0
for i in 0...N-1:
   y[n] += x[n-i] * g[i]

This leaves no room for ambiguity about the phase of the output signal.

ISSUE-70 will need to be resolved for the above formula to make sense,  
though, as the input and impulse response may have different numbers of  
channels.

[1] https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/convolution.html

-- 
Philip Jägenstedt
Core Developer
Opera Software

Received on Friday, 1 June 2012 12:37:41 UTC