Ring modulator Effect using Pure Data

This is a ring modulator effect for guitar (or any instrument. Try it with a voice!), loosely inspired by the Moog Ring Modulator pedal. It can be controlled by a square wave or sine LFO, much like the Moog pedal, but in addition it can use randomly generated parameters to get crazy sounds (listen to the sample at the end of this post).

First of all i would like to thank Katja for giving me the idea of making a ring mod patch for guitar!

So what is ring modulation? It is simply achieved by multiplying the main signal (from the guitar in our case) by another signal, generaly simple in form (a sine wave most of the time). Ring modulation has been widely used in sci-fi films starting in the 50’s, mostly (but not only) to make robot voices. I suggest you to read the wikipedia article about ring modulation. In popular music ring modulation has also been used extensively (listen to Chick Corea’s Rhodes in Miles Davis’ band around 69-70, or to Tony Iommy’s solo in Black Sabbath’s Paranoid).

In the following patch, you can get regular ring modulation by selecting the “Manual” option with the green toggle. In manual mode, the guitar’s sound is simply multiplied by a sine wave, which frequency can be adjusted with the slider in the green area. You can also use a LFO (low frequency oscilator) to automatically change the frequency of the ring modulator. The upper and lower frequencies can be adjusted by the sliders in the orange area. You can also choose the waveform of the LFO (square or sine).

Ring Modulator effect for guitar made with Pure Data

Both the manual and the LFO modes can be controlled by a random parameter generator (red and blue toggles). You can’t do this with an expensive Moog Ring Modulator pedal 🙂 .

Incidentaly, please note the use of a “equal power” crossfade abstraction. It’s based on an abstraction by Hans-Christoph Steiner (in the “Pan” library that comes with Pd-extended). You can easily use this abstraction in other patches wherever you need to crossfade between two signals.

Also note the use of messages (in the upper right corner) to create “bandlimited” waveforms in tables. Though I haven’t talked about aliasing before, you could find it interesting to read this page about bandlimited waveforms in the FLOSS manual (especially if you likes synths).

  • You can get the patch here.
  • And here’s a sample (using randomly generated parameters for the LFO, and with both dry and wet signals) :

This entry was posted in Simple effects and tagged , , . Bookmark the permalink.

4 Responses to Ring modulator Effect using Pure Data

  1. roberto says:

    these effects can be used in real time? I’m not very familiar with pd, and I need a voice distorted from a microphone ….
    I’ve been looking for this kind of patches for any distortion in real time

    • Sorry for this late reply…Of course, all these effects can be used in real time provided that your machine is powerful enough, and that your OS allows it.

      • Hi Pierre, thanks for this blog, your work is groovy ; Say : In your *final* guitar effects processor design, do you use still use Jack at all, or directly ALSA?

      • I haven’t used it for a while, but in my last setup I was using a Raspberry Pi 1. JACK wasn’t working well on it, so I used ALSA. This isn’t ideal for low latency.
        I’ll experiment again sometime soon with a RPi2 and newer distros.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s