Lorraine's synthesis pages -- general and specific info about keyboard programming... on this page, the nitty gritty of DX7 programming

Programming a DX7-II

by Lorraine Quirke

Back to main page

Some introductory points:

FM Synthesis Formula
The mathematical formula in which the operators modify one another is Ia*sin((a)+Ib*sin(b)), where a is the value of the first operator, b the value of the second, and Ia is the amplitude of the first, and Ib is the amplitude of the second.

Algorithms
An algorithm is a combination of six operators. They either modify one another in series, using the formula sin(a+sinb), or are heard at the same time, eg. sin(a)+sin(b). Here are some diagrams of operators as they appear on the case of the DX7.

Here is an operator modifying another:
sin(a+sin(b))

Here are two operators sounding at the same time, not modifying one another (additive synthesis)
sin(a)+sin(b)

Here is a full set of six operators sounding at the same time (algorithm 32) sin(a)+sin(b)+sin(c)+sin(d)+sin(e)+sin(f)

Here is algorithm with 2 sets of 3 operators modifying one another in series (algorithm 3) sin(a+sin(b+sin(c)))+sin(d+sin(e+sin(f)))


sin(a) (fundamental)


sin(b) (2nd harmonic)


sin(a)+sin(b) (additive synthesis)


sin(a+sin(b)) (FM synthesis, 2 operators, where a has a frequency of 1:00 and b has a frequency of 1:00)


sin(a+sin(b)) (FM synthesis, 2 operators, where a has a frequency of 1:00 and b has a frequency of 2:00)

Operator Values
Values for operators that you can modify are:
amplitude
frequency
envelope
scaling
amplitude sensitivity (to LFO or velocity sensitivity values)
The amplitude of an operator can be modified over time (with an envelope generator) to create sounds that change over time.
The frequency of an operator cannot change over time. The term "scaling" refers to the capability to have an operator sound over one part of the keyboard, more than another.

Algorithm choice and the resulting sound
Careful algorithm choice will result in much control over the type of sound you want to achieve.
Algorithms with many operators modulating one another will result in a complex waveform, such as a muted horn or distorted guitar sound.
Algorithms with many operators playing unmodulated will result in a less complex, less harsh sound.
A way to illustrate the use of added operators (not modulated) could be to describe using algorithm 32 to simulate a drawbar organ sound. Set each of the six operators to successive values in the harmonic series, and use the six operators' amplitudes the way you would set the drawbars of an organ.
For example:
 OP 1OP 2OP 3OP 4OP 5OP 6
Frequency123456
Volume998065403020

Programming Tips and Suggestions
Here are some suggestions as to how to get started programming new sounds: (Jakub's questions got me started on this)

I found many new sounds by accident. I was looking for a specific type of sound and found something totally different that was still interesting. Don't get frustrated, you will always find something interesting and maybe you will find what you want. Save some of the most interesting sounds, you may find a use for them later.

I found out a lot about programming by modifying other peoples' sounds. It was easier than starting from an initialized sound. You can see how other people programmed it, steal their ideas, and combine parts of their ideas with yours. That is the best way to get the sound you already have in mind, to start with a sound that is similar, then modify it to your tastes. See what the individual operators do by turning them off one at a time, and modify the EG values and anything else you want. That is the best way to find out what every thing does.

Here is some information about the oscillator frequencies, I may move this section later if I find a better way to organize this site.

Oscillator frequencies correspond to the harmonic series, their pitches shown below as music notation values. For example, the 1st harmonic is frequency value 1.00, the 2nd harmonic is 2.00, the 3rd is 3.00, and so on.
harmonic series

An operator set to frequency 1.00 behaves as the fundamental. (1.00 is the 1st harmonic)

The first harmonic/fundamental corresponds to the note's name (a, b, c...), it gives the sound a perceivable pitch.

The second, third, fourth and following harmonics are lower in volume, and they give the sound its colour: they give a sound its timbre, or characteristic sound. They allow you to distinguish a string sound from a human voice, or a xylophone from a piano.
The second and following harmonics are lower in volume than the first, in musical sounds. In a cymbal sound, the harmonics are random (or all the same) volume, which is why it doesn't seem to have a musical note value.

If you use harmonics in parallel (eg. algorithms 31 and 32) then you get a sound like a church organ. You need as many operators as possible with different frequencies to make a complex sound, in that case.
Using operators in sequence (algorithm 1) makes it possible to make a complex sound using 2 operators set to the same frequency. (Using operators in parallel, or additive synthesis, if you use two operators with the same note value, you get a louder fundamental, but when they are in series, using FM synthesis, new partials or harmonics are created.)
I use EG to make one operator come in after the fundamental has started, in order to make some contour in the sound.
For example, if you use an EG of rates 99 99 99 99 (levels 99 99 99 0), on the first operator, then on the one modifying it, use 65 70 99 99 (levels 99 99 99 0) on the second to see the effect the operators can have when you bring them in slowly.

Using LFO and Detuning
LFO stands for Low Frequency Oscillator. The LFO settings that you can use on a DX7 are Square, Sine, Saw Up, Saw Down, and Random (I think). The LFO is an oscillator that can modify the value of an operator or operators. If you use the LFO to modulate the pitch of an operator, you add a vibrato effect, if you use it to modulate the amplitude, it produces a tremolo effect, if you use the sine wave setting. If you use Random to modulate the pitch and amplitude, you get a sound like the computer in a B-movie.

Detuning is a useful way to fatten up a sound. In natural sounds, often its elements are not exactly in tune, at least not as precisely as a digital computer can get it. For example, choirs and brass sections are never exactly in tune. If you detune the oscillators slightly, either by using detune or by adjusting the Fine frequency, you will make the patch sound more warm.

Contact: Lorraine Quirke

Back to main page