This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 17403 - (LinearConvolution): Linear convolution effect is defined by Wikipedia
Summary: (LinearConvolution): Linear convolution effect is defined by Wikipedia
Status: CLOSED WONTFIX
Alias: None
Product: AudioWG
Classification: Unclassified
Component: Web Audio API (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: TBD
Assignee: Chris Rogers
QA Contact: This bug has no owner yet - up for the taking
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-05 12:28 UTC by Michael[tm] Smith
Modified: 2014-10-28 17:16 UTC (History)
3 users (show)

See Also:


Attachments

Description Michael[tm] Smith 2012-06-05 12:28:55 UTC
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.
Comment 1 Olivier Thereaux 2012-06-07 08:17:23 UTC
[admin] Assigning items currently being worked on by editor.
Comment 2 Chris Rogers 2012-06-09 00:06:34 UTC
I believe the operation "linear convolution" is a sufficiently well-known and well-defined operation in mathematics that no further explanation is required, anymore than the definition of a cos() function. It is defined in many texts on math/DSP.

I will add an "informative" link to a page which can help guide implementors to practically implement this well-defined mathematical operation. I am happy also to point to working, cross-platform, well-optimized code having a non-restrictive license. I can also point to an alternate implementation "Freeverb":
http://freeverb3.sourceforge.net/

FIXED:
https://dvcs.w3.org/hg/audio/rev/7865f8b76f19
Comment 3 Marcus Geelnard (Opera) 2012-06-12 08:43:52 UTC
I think this mail-comment from the original issue was overlooked:

"
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 [possibly normalized] 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
"
Comment 4 Olivier Thereaux 2014-10-28 17:13:47 UTC
Web Audio API issues have been migrated to Github. 
See https://github.com/WebAudio/web-audio-api/issues
Comment 5 Olivier Thereaux 2014-10-28 17:16:39 UTC
Closing. See https://github.com/WebAudio/web-audio-api/issues for up to date list of issues for the Web Audio API.