Feedback in FM synthesis

Don Tillman don at
Tue Aug 8 04:14:42 CEST 2000

   Date: Tue, 08 Aug 2000 01:23:51 +0200
   From: Magnus Danielson <cfmd at>

	    ln(a)    ln(b)    ln(a) + ln(b)
   a * b = e      * e      = e

   Neither the exp or the ln functions are very cheap thougth. But if
   you allready have them one way or another, well... then it is
   better to reuse the adder than having a separate multiplier block.

   I'm not up to date with cheap expo-blocks in digital
   implementations though.

I should point out that the Cool Thing about the DX7 is that it uses
no realtime multiplies.  Really.  Given the technology of 1983, you
couldn't do a fast, single clock cycle 12x12 or 16x16 multiply for a
reasonable price.  The only multiply chip available at the time was
made by Hughes (if I remember correctly) and cost around $250.  And
building the multiplier out of MSI/SSI TTL wasn't practical.

A digital synth with digital filters would require something like 5
multiplies per filter times 20KHz times 8 voices or so leaving less
than 800 nSec for each multiply.  At best.

But an FM synth has no filters and can be implemented entirely in ROM
lookups and add operations.  And lookups and adds are so fast and
inexpensive that Yamaha had time to do 96 operators worth (16 voices
times 6 operators) for each sample period.  That sort of polyphony was
unheard of at the time.

Pretty damn clever.

  -- Don

Don Tillman
Palo Alto, California, USA
don at

More information about the Synth-diy mailing list