SynthMaker

Ring Modulator

Archive · 2005 28 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

autodafe ·

Hi it's always me. I am experimenting a bit with the code window

I wanted to create a Simple Ring Modulator

AFAIK a RingMOd takes two inputs (two OSCs) and outputs the sum of the two frequencies and the difference of the two freq..

A -B -->RingMod = (F(A)+F(B)) +(F(A)-F(B)) ---A/B the two OSCs, F Frequency - or somethng similar

i implemented this:

is it correct ? i am pretty sure i did something wrong...

stefan ·

Actually, ring modulation is just multiplication of two signals, like this:

streamin in1; streamin in2; streamout out;

out = in1 * in2;

The result of this a signal containing the difference and the sum of the two signals spectral contents.

If you'd do it in the frequency domain, you'd do it like this: out = (in1+in2) + (in1 - in2);

But it's easier to just multiply the signals in the time domain 🙂

If you want a better explanation, go here: http://www.harmony-central.com/Effects/ ... odulation/

autodafe ·

so i did it in the frequency domain?

what get into the inputs of my moudle if i connect the out of an OSC? a frequency or what?

stefan ·

autodafe wrote: so i did it in the frequency domain?

what get into the inputs of my moudle if i connect the out of an OSC? a frequency or what?

To do it in the frequency domain you'd have to first do an FFT of both inputs, then do the calculations, then an iFFT on the output.

The inputs of the ring modulator should most likely be the outputs from two oscillators. Try hooking two sine oscillators up to in1 and in2, and listen to what comes out from the modulator.

The inputs are the actual _signals_, not frequencies or something like that, but real signals. If you'd connect an oscillator to both in1 and in2, you'd multiply that oscillator with itself, for instance. Which usually isn't all that fun, Amplitude Modulation would probably give you a nicer result if you'd want to do such a thing.

Amplitude Modulation is very similar to Ring Modulation, there's just one difference. You multiply one signal with the Amplitude of another signal, you can do it like this:

streamin carrier; streamin modulator; streamout out; float tmp;

// if modulator < 0, multiply it with -1, otherwise with +1 tmp = modulator * (1 - modulator < 0 & -2); out = carrier * tmp;

autodafe ·

thanks

angstrom ·

I've seen many people get trapped in a world of hard sums by the description of ringmod as 'sum and difference' . 1*1=1 somehow seems like it couldn't possibly be the answer, it's only when you remember the time domain that things make sense. 😉

For an interesting (and simple) cousin of ring mod, try some cross modulation. Cross modulation is where the audio (stream) output of OSC1 modulates the frequency input of OSC2. It's a more brutal method of FM, unlike the phase mod that Yamaha opted for. I was first introduced to xMod via my Korg Mono-poly, where it is combined with oscillator sync in a great way. xMod is a great way to get complex waveforms with minimal overhead, lots of harmonics means more chance of aliasing though - which is something my old mono-poly doesn't do.

DOWNLOAD AN XMOD EXAMPLE

try the 'turn me' knob, which is usually controlled by either a pitch bend, an LFO or and envelope. Obviously the xMod dial is educational too.

stefan ·

angstrom wrote: I've seen many people get trapped in a world of hard sums by the description of ringmod as 'sum and difference' . 1*1=1 somehow seems like it couldn't possibly be the answer, it's only when you remember the time domain that things make sense. 😉

For an interesting (and simple) cousin of ring mod, try some cross modulation. Cross modulation is where the audio (stream) output of OSC1 modulates the frequency input of OSC2. It's a more brutal method of FM, unlike the phase mod that Yamaha opted for. I was first introduced to xMod via my Korg Mono-poly, where it is combined with oscillator sync in a great way. xMod is a great way to get complex waveforms with minimal overhead, lots of harmonics means more chance of aliasing though - which is something my old mono-poly doesn't do.

DOWNLOAD AN XMOD EXAMPLE

try the 'turn me' knob, which is usually controlled by either a pitch bend, an LFO or and envelope. Obviously the xMod dial is educational too.

Hm, that's not cross modulation afaik, just normal frequency modulation. Cross modulation is what you get when osc1 modulates osc2 and osc2 modulates osc1, for instance.

Atleast that's what I've always "known", but I could be wrong ofcourse.

If you do heavy phase modulation, like multiplying osc1 with up to 10 or something before letting it modulate osc2's phase, you get basically the same timbres as with the frequency modulation you have set up.

I took the liberty to modify your example to use what I know as "cross modulation", take a look here.

angstrom ·

It would seem logical from the name that cross modulation (xMod) does what you say, but most applications of it don't actually do that. Sorry I haven't tried the osm, but I think I can guess whats in there.

I think the term 'cross-modulation' refers back to radio , as in 'cross talk' as it relates to intermodulation of harmonics as used in transmitters.

In old style analogue synth application more extreme feedback paths in cross modulation wasnt implemented. The mono-poly for example has two xMod modes 1: osc 1 modulates oscillators 2,3 and 4 2: osc2 modulates osc2, osc 3 modulates osc 4

you can have a look at the service manual if you like http://www.physicsenterprises.andrews.e ... uals/korg/

you can see on the block diagram only the oscillators 1& 3 go into the x-mod as controls, to serve modes 1& 2 http://www.physicsenterprises.andrews.e ... /mp_03.gif

Obviously there's nothing to stop us feeding the paths back like an FM matrix, but my example does serve as an example of a simple xmod setup as would be done on a system 100 or something similar.

stefan ·

But still, your example is just normal FM, so is the two xMod modes the mono-poly has. Usually, when I hear someone talking about crossmodulation between oscillators, they mean what I said above. Maybe the term has changed over the years?

I did some googling and actually found out that cross modulation on hardware synths means frequency modulation. It's just FM. Whereas today, when crossmodulation is being mentioned when speaking of synthesis methods etc, I'm used to that people mean actual _cross_ modulation 🙂

More importantly, every time you use the 'Cross Modulation' function on analogue synths that are lucky enough to have one, the nasty noises you create are determined by this equation -- cross modulation being, of course, just another name for frequency modulation.

http://www.soundonsound.com/sos/may00/a ... /synth.htm

angstrom ·

yes thats correct it is frequency modulation, but it is not FM (!)

To confuse matters even more, FM as used in Yamahas DX range of synths was actually phase modulation, like I used in my FM Example synth. That's what most people refer to as FM ... Phase mod! http://ccrma.stanford.edu/~jos/mdft/Sin ... on_FM.html

But cross modulation is a direct modulation of the pitch, they produce similar but different effects. Obviously phase and pitch are interelated, but they are still different methods of modulation.

dont even get me onto 'phase distortion synthesis' as I enjoyed with my old CZ101 http://en.wikipedia.org/wiki/Phase_distortion_synthesis

stefan ·

angstrom wrote: yes thats correct it is frequency modulation, but it is not FM (!)

To confuse matters even more, FM as used in Yamahas DX range of synths was actually phase modulation, like I used in my FM Example synth. That's what most people refer to as FM ... Phase mod! http://ccrma.stanford.edu/~jos/mdft/Sin ... on_FM.html

But cross modulation is a direct modulation of the pitch, they produce similar but different effects. Obviously phase and pitch are interelated, but they are still different methods of modulation.

dont even get me onto 'phase distortion synthesis' as I enjoyed with my old CZ101 http://en.wikipedia.org/wiki/Phase_distortion_synthesis

Now, frequency modulation (FM) and phase modulation (PM) are two different things. People usually USE PM and call it FM, but that doesn't make FM PM. In what way is "cross modulation" not FM? As far as I can tell, it is a direct frequency modulation using an oscillator as the modulator and another oscillator as the carrier. Unless it actually is _cross_ modulation, which doesn't really say anything about what kind of modulation you're doing, just how you're doing it 🙂

PD is quite cool, I made some simple tests quite a while back: Phase Distortion Oscillators?

autodafe ·

stefan wrote: If you'd do it in the frequency domain, you'd do it like this: out = (in1+in2) + (in1 - in2);

thanks guys...

i come from a doepfer modular... i have a book (mostly based on doepfer modular) where RingMod is explained as "the sum plus the difference of two frequencies..."

so my question now come spontaneously... what's the difference between FREQUENCY domain and TIME Domain???

(please don't kill me!!! 😉 )

stefan ·

autodafe wrote: stefan wrote: If you'd do it in the frequency domain, you'd do it like this: out = (in1+in2) + (in1 - in2);

thanks guys...

i come from a doepfer modular... i have a book (mostly based on doepfer modular) where RingMod is explained as "the sum plus the difference of two frequencies..."

so my question now come spontaneously... what's the difference between FREQUENCY domain and TIME Domain???

(please don't kill me!!! 😉 )

I found a decent explanation over at wikipedia: http://en.wikipedia.org/wiki/Frequency_domain

AngularMomentum ·

stefan wrote: Actually, ring modulation is just multiplication of two signals, like this:

streamin in1; streamin in2; streamout out;

out = in1 * in2;

The result of this a signal containing the difference and the sum of the two signals spectral contents.

If you'd do it in the frequency domain, you'd do it like this: out = (in1+in2) + (in1 - in2);

But it's easier to just multiply the signals in the time domain 🙂

If you want a better explanation, go here: http://www.harmony-central.com/Effects/ ... odulation/

Thanks for that, it works great on the XT version of Wavedraw I am building. First time I implemented Amplitude Modulation in a synth, it's a treat to the ears. Kudos to you!

stefan ·

So... Are you using Amplitude or Ring Modulation? 🙂

AngularMomentum ·

Amplitude Modulation, my friend!

stefan ·

AngularMomentum wrote: Amplitude Modulation, my friend!

Ah ok 🙂 Got confused since you quoted me talking about ring modulation 🙂 Amplitude Modulation usually sounds nicer, imho. But they both have their uses. Ring Modulation can be quite useful for percussion synthesis etc.

AngularMomentum ·

It's great for fuzzy, distorted sounds as well, It really is a whole new scala of sonic posibilities, the way I set it up now. Hope to show you soon what I mean! 😉 Again many thanks!

AngularMomentum ·

Here is an example of the wavedraw synth's Amplitude Mod...

stefan ·

Nice!

PaulRiedel ·

Hi!

I've just been reading up on this and I'm wondering how I can create Ring Modulation out of one input?

So far I did:

polyin freq; polyout out; float in1,gen,out;

in1 = freq; gen = freq*(0.75); out = in1*gen;

(Used many values for better overview)

Is this correct at all? Because from what I understood, Ring Mod is just the sum of 2 input frequencies. Now I only have one input frequency, so can I just add another non-harmonic multiplier to this one (I did 0.75*original frequency)?

Or am I misunderstanding?

Thanks guys!

- Paul

AngularMomentum ·

Here is a Ring Mod effect...could be useful for some sounds. Made it like a stock effect. I used this sorta stuff in CV-2SEQ.

philter5 ·

thx a lot AM great to see you here again and greetings to amsterdam 😉

AngularMomentum ·

Hey Philter5! A good day to you.

Yeah, greetings to them too! I should change that as I do not live in Amsterdam any more...I live in the south of the Netherlands now near Germany.

Looks like I am back. 🙂

AngularMomentum ·

I added the ring mod to the wiki.

[old link]

Next incarnation will have tracking and gating.

chupathingy ·

Hell, now this is something I could use.

First I use a bitcrusher as a rough detuner, I wonder what a Ring mod would do to it.

chupathingy ·

Sorry for double posting.

AngularMomentum wrote: Here is a Ring Mod effect...could be useful for some sounds. Made it like a stock effect. I used this sorta stuff in CV-2SEQ.

We love you AM.

AngularMomentum ·

All love is always appreciated! Some love back at ya.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.