- From: Chris Lowis <chris.lowis@bbc.co.uk>
- Date: Thu, 22 Mar 2012 18:04:54 +0000
- 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 UTC