Jacob Vosmaer's blog

Yamaha FM pitch ratios

2025-06-04

I keep getting confused about how Yamaha FM synthesizer pitch ratios work and their manuals are not always very clear about this. I'm going to write it down here so I don't forget.

2025-06-06: I've generated a list of the ideal values of the four DX11 / TX81Z pitch ratios. The actual values in the machine are slightly different, as are the numbers displayed in the UI. But it still gives you a starting point to look for specific numbers. The list was generated by this Awk script.

What is a pitch ratio

When you push a key on a Yamaha DX synthesizer, the machine synthesizes a sound based on 6 (DX7) or 4 (DX100, TX81Z) oscillators (also called "operators"). Individual oscillators can be set to fixed frequencies but usually they are multiples of the base pitch determined by what key you pressed.

If you press A2 the base pitch is 440Hz. If the pitch ratio of one of the oscillators is 3 then the final pitch of that oscillator will be 3*440=1320Hz.

The configuration for these pitch ratios is a little weird and I keep forgetting how it works. There is a "coarse" and "fine" setting and I get confused by how they combine. I'm writing this post to finally figure it out.

DX7 pitch ratios

The DX7 "coarse" setting ranges from 0.5, 1, 2, 3 etc up to 31. You might expect it to start from 0 but a pitch ratio of 0 would mean a fixed frequency of 0Hz which the DX7 does not support.

The "fine" setting is a multiplier of 1.00, 1.01, 1.02, 1.03 up to 1.99. So if your coarse setting is 3 the possible final values are 3.00, 3.03, 3.06, 3.09, etc. The highest possible ratio is 31*1.99=61.69.

This kind of makes sense except it is confusing how the ranges overlap. For example, coarse 3 ranges up to 1.99*3=5.96, which overlaps with coarse 4 (range 4.00 to 7.96) and coarse 5 (range 5.00 to 9.95). You can sort of ignore it by picking a coarse value as close to the value you want first, and then moving up by increasing the fine setting.

This scheme does not make sense from a programming perspective because you need 7 bits for the fine setting (0-127) but part of the highest bit is wasted (fine values 100-127 are not allowed). On top of that there is the waste of bits due to overlapping fine ranges. The total number of bits needed to store an oscillator ratio is 12.

DX100 pitch ratios

I've never used a DX100 but it is a precursor to the TX81Z/DX11 and it helps me understand the different system these synths use.

The DX100 and its sibling use a simplified, lower cost FM IC compared to the DX7 (the YM2151). This time they wasted fewer bits. Because the DX100 is a low cost version of FM it only has coarse tuning. There are 64 coarse tuning values, which you can calculate by multiplying a pair of numbers from two sequences. First there is the sequence 0.5, 1, 2, 3, ... up to 15. This uses 4 bits and notice that the number 0 is replaced by 0.5 again. The other series of numbers is 1, √2, π/2 and √3 (4 values so 2 bits). By combining values from each of these series, the frequency ratios you can select are:

And the highest ratio is 15√3=25.98.

The user interface does not show math symbols, you just see decimal fractional approximations. The values are shown mixed in increasing order so as you scroll through them you don't immediately see what series you are in. What is 4.24 a multiple of? (It's 3√2.)

The DX100 needs 6 bits to store a ratio value, while the DX7 needed 12 and wasted some of it. As a computer programmer I approve.

TX81Z pitch ratios

The TX81Z and DX11 use an upgraded version of the FM IC in the DX100: the YM2414. They use the same system for the coarse ratios, but they add back support for fine ratios in between the coarse values.

This time the fine ratio is not a multiplier of the coarse ratio. Instead we need to look at the step size of the sequence the coarse ratio belongs to. The fine ratio subdivides this into 16 steps (except for coarse ratios below 1).

So if we're looking at coarse ratio 2, then we know it belongs to the sequence with step size 1. The fine ratio creates 16 evenly divide steps between 2 and 3: 2.00, 2.06, 2.13, 2.19, 2.25, ..., 2.94. The actual values in the machine are slightly off due to approximation error and the UI choice to use truncation instead of rounding.

For coarse ratio 3√2 we have step size √2 so the fine ratio divides √2 into 16 steps and get we get 4.24, 4.33, 4.42, ..., 5.57.

There is a special case for coarse ratios below 1: here the fine adjustment has only 8 steps. This prevents overlap with the next coarse value. For example, coarse value 0.5 can be adjusted up in 8 fine steps: 0.50, 0.56, 0.63, 0.69, ..., 0.94.

This wastes 1 fine bit in the case of ratios below 1 because those need only 3 bits to store 8 fine steps, while the rest needs 4 bits to store 16 fine steps. But this scheme avoids the confusing overlap of the DX7 and it uses 10 bits instead of 12.

Why these numbers?

I'm going to guess here because I haven't asked the designers.

The presence of integer coarse ratios (0.5, 1, 2, 3, ...) makes sense because the way the math of FM synthesis works. These integer values will cause harmonic sidebands to appear. With a 2-operator stack, the sidebands for carrier frequency x and modulator frequency y appear at x+y, x-y, x+2y, x-2y, x+3y, x-3y, etc. Also see Chowning's original FM paper.

The choice of the fine ratios on the DX7 appears to be made as something "logical" by someone not concerned by the fact that computers use binary arithmetic. I don't know if there are a lot of interesting exact ratios that you can construct with them, but what matters is of course is not whether they are exact but how they sound.

The coarse ratios on the DX100 seem to be chosen to give you a more efficient selection of both harmonic and inharmonic ratios. Inharmonic ratios are nice because they sound metallic. On the DX7 you use the fine values to get inharmonic ratios but the DX100 has no fine values. That is why the coarse values include irrational numbers.

The TX81Z adds finer control to the DX100 and makes it easier to get some exact small fractions like 3/2: this is coarse 1 plus a fine value of 0.5.

Further reading

I got some of this information from a Gearspace discussion which as usual requires some patience to read. I wrote this blog post in part to present the information in an easier to read form.

You can hear the DX11 coarse pitch sequences in this video.

Tags: music dx7 dx11 tx81z yamaha

IndexContact