I wanted to share an implementation of Julian Parker's digital model
of a Ring Modulator. The paper he wrote from DAFx 2011  was
also used by the BBC Radiophonic Workshop in the "Recreating the
sounds of the BBC Radiophonic Workhop using the Web Audio API" .
I've implemented the ringmodulator as a UDO, available in the attached
CSD and Blue project. To run on the commandline, you can use a
csound -i adc -o dac -b 128 -B 512 ringmod.csd
The Blue project has knobs you can use to adjust the carrier's amp and
frequency. In the generated CSD, you can adjust gk_blue_auto0 for amp
and gk_blue_auto1 for frequency, or just modify the poscil line in
Note, the paper suggests using a high amount of oversampling (32x; 8x
or 16x being reasonable for using sinusoidal carrier). This
implementation does not do oversampling, which I believe the BBC
version does do not as well.
As far as I've checked, the implementation matches the BBC one with
the exception of using a limiter instead of a compressor. Also, I did
one optimization to the wavetable generation to extract out a constant
in the part where v > vl, but this is a minimal optimization as the
wavetable generation is done only once really.
 - http://www.acoustics.hut.fi/publications/papers/dafx11-ringmod/
 - http://recherche.ircam.fr/pub/dafx11/Papers/66_e.pdf
 - http://webaudio.prototyping.bbc.co.uk/ring-modulator/