- From: Chris Lowis <chris.lowis@bbc.co.uk>
- Date: Thu, 22 Mar 2012 10:18:06 +0000
- To: Raymond Toy <rtoy@google.com>
- CC: public-audio@w3.org
On 20/03/2012 17:18, Raymond Toy wrote:
> My question - is it possible to set the convolver buffer from a
> regular javascript array? For example to generate the impulse
> response using Math.sin()?
>
>
> Yes, you can do this. Something like the following should work:
Hi Raymond,
Thank you for your advice! I've been trying to get to grips with the
convolver node by reading the source in Webkit, but I'm having a little
trouble understanding whether I can do what I want with it.
I'm attempting to create a "ring modulation" effect. In the time domain
I'd like to multiply the input signal (an audio buffer node) with a 30Hz
sine wave. I thought I could achieve the same in the frequency domain
using a convolution.
I have something like
convolver = context.createConvolver()
loadImpulseResponse('sine_30hz.wav', convolver, context);
source.connect(convolver)
convolver.connect(context.destination)
Where sine_30hz.wav is a single-channel, 30Hz sine wave of 5 seconds in
duration. The source is a audio buffer node. I've reverted to loading
the "impulse response" using an XMLHttpRequest to make sure I'm not
doing something stupid.
When I load the "echo-chamber.wav" impulse response from the demos
repository I get the expected result. When I use my 30Hz Sine wav, just
silence.
Am I missing something here? The documentation of the Convolution node
suggests that it is operating as a FIR filter, I'm not quite sure
whether it is possible to do a straight convolution with this node.
Thank you again for your help!
Cheers,
Chris
Received on Thursday, 22 March 2012 10:18:49 UTC