W3C home > Mailing lists > Public > public-audio@w3.org > January to March 2012

Re: Advice on the convolver node

From: Chris Lowis <chris.lowis@bbc.co.uk>
Date: Thu, 22 Mar 2012 18:04:54 +0000
Message-ID: <4F6B69C6.9040303@bbc.co.uk>
To: Raymond Toy <rtoy@google.com>, Chris Rogers <crogers@google.com>
CC: public-audio@w3.org
> If your impulse response is a 30Hz sine wave, consider what happens in
> the frequency domain.  You transform the input signal and transform your
> 30Hz sine.  The transform of that is a narrow spike at 30 Hz.  Multiply
> the transforms together and you get a narrow spike at 30Hz.  Inverse
> transform to get the desired signal.  All you get out would be a 30Hz
> sine wave, at most.
>
> One possible way to do your time domain multiplication is to use an
> audio gain node with a setValueCurveAtTime.  Use your 30Hz sine wave as
> the curve and feed your input into the gain node.  This should multiply
> your signal by your 30Hz sine.

Chris and Raymond,

Thank you very much for your replies, and for your patient explanations! 
I'm gradually recalling my university DSP and of course you're right to 
say that the ring modulation is a non-linear effect, so I cannot expect 
to use the convolution node :)

I'd thought about using the javascript processing node to carry out the 
effect in the time domain, but using the gain node is a good idea too, I 
think I'll give that a try.

I've also been researching the circuit designs of the old analogue ring 
modulator effects, and they used a rectifier arrangement of diodes 
between two transformers to carry out the signal multiplication. I've 
found an interesting paper on the digital simulation of such devices[1] 
so I'm thinking of having a go at performing that simulation inside a 
javascript node. I'll let you know how I get on!

Chris - I'd love to see the ability to use generators to control the 
parameters of other nodes, I'm really excited about the asterisks around 
your word *yet* :)

Thanks again for your help and explanations!

Best,

Chris
Received on Thursday, 22 March 2012 18:05:24 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 22 March 2012 18:05:33 GMT