How to get Yamaha DX7 style phase modulation in Reaktor Primary?

iamwill Member Posts: 2 Newcomer
edited September 2022 in Building With Reaktor

I'm trying to get a phase modulation going to use as an effect rather than a synth.

I've made a few things and copied salamander's video on youtube but I couldnt get the right effect. Phase mod is a bit difficult for my head to grasp and wondering if some else has mastered this already and can shed some light on me.

Cheers from Aus




  • Chet Singer
    Chet Singer Member Posts: 64 Advisor

    Hello Will,

    Building Yamaha-style phase modulation in primary is pretty straightforward. To make an "operator" use four modules in a row: a ramp oscillator, an adder, a sine shaper, and a multiplier. You then have three inputs:

    The frequency is the F input of the ramp.

    The phase modulation input is the second input of the adder.

    The output level is the second input of the multiplier.

    That's it, basically. To string them together connect one operator's output to the phase modulation of another.

    There's more going on when you want to add scaling, or feedback. But that's an "operator".

  • mjdbruyn
    mjdbruyn Member Posts: 2 Member

    Back in the days of Reaktor 4, before the Core functionality was added, I worked out a way to create DX7-style Phase Modulation operators with feedback, using the Primary modules. The basic idea is that PM is equivalent to FM by the first derivative of the modulation signal, which can be obtained using the Differentiator module: 

    This FM Operator macro has two outputs: one labelled Out, which is the main audio output, and one labelled Mod, which is the signal to be used to modulate other operators. The two inputs receive Mod signals from other operators. The depth of the modulation can be set by multiplying the Mod signals with a factor between 0 (no effect) and 1 (maximum effect). The feedback depth can be set with a value between 0 and 1 at the FB input. The constants that set the maximum modulation and feedback depth have been chosen by comparing the results to a Yamaha FM synth.

    The frequency in Hz of the note being played is set at the F input, and the harmonic number of the operator (multiple of the basic frequency, e.g. 1 to 128) is set at the H input (this doesn't have to be an integer). The operator can be synced to the gate signal using the G and Ph inputs, enabling you to set the phase offset between different operators at the start of the note, to obtain consistent results.

    The operator behaves exactly like a Yamaha FM operator, and even creates the same chaotic noise when you turn the feedback up too high. You can add an averaging filter in the feedback loop to enable higher feedback levels without this noise, as was mentioned in Yamaha's patent application, but this wasn't actually implemented in the DX7. (If you want to experiment with this, I suggest using a 1-pole LPF instead.)

    Several of these operators can be combined into any algorithm that the DX7 used, or any other combination you can think of, including ones with modulation loops over several operators (e.g. op3 modulates op2, op2 modulates op1, op1 modulates op3).

  • iamwill
    iamwill Member Posts: 2 Newcomer

    Wow thank you. This info is great, I'm going to give it a go ASAP. (Currently, having a baby) I'm looking to use this as an effect rather than modulating a sine wave, so i'll see if I can re-jig it to input stereo.

  • mjdbruyn
    mjdbruyn Member Posts: 2 Member

    In basic cases, where you modulate something with a basic waveform, frequency modulation and phase modulation create the same spectrum, and the results sound the same, so I'm not sure whether PM has an advantage over FM in your use case. But there are technical differences which make phase modulation more useful for sound synthesis, and why it was used in the DX7. 

    For FM, the neutral modulation signal is a constant zero signal; for PM, the neutral modulation signal is any constant signal, not necessarily zero. This means that an asymmetrical modulation signal, with an average value different from zero, will cause the pitch of the carrier signal to drift when using FM, but not when using PM. This allows modulation between more than two operators, and oscillator feedback, while retaining stable pitch.  

  • colB
    colB Member Posts: 857 Guru

    Yes, was going to post a much less detailed explanation :)

    Phase is the derivative of frequency. The problem of DC offset causing pitch shifting with FM goes away when you take the derivative of the modulation signal because those static DC offsets are removed. That's the main advantage of PM.

Back To Top