[sdiy] Re: FPGA 2-OP FM MIDI Polysynth

Donald Tillman don at till.com
Mon May 4 02:08:26 CEST 2009

   > Date: Sun, 03 May 2009 13:50:34 -0700
   > From: Scott Gravenhorst <music.maker at gte.net>
   > Donald Tillman <don at till.com> wrote:
   > >Are you aware that the DX-7 used no real-time multiplies?  
   > No, I was not aware of that, and that is amazing.

I should really write up an article on FM and the DX-7.  I think it's
a remarkable combination of engineering, math, musical instrument
design and overcoming the limitations of the technology of the day.

   > >Fast multiplies were extremely expensive in 1983.  
   > I'm sure of that much.

Specifically, I think the only chip solution available at the time was
made by Hughes, cost about $300.00, did a 16 by 16 multiply in 200nS,
ate a lot of current, and required a significant amount of support
circuitry.  So there was no way that was going to be used in an
instrument that sold for around $2500.00.

   > Well, obvious it isn't - oh wait, log(sin(x)).  I remember that
   > to do multiplies, logs are added but the sum must be looked up
   > again in antilog tables - can I assume antilog table was also in
   > ROM?

Sorry, I shouldn't have said "obvious".  I kind'a thought you were
into it, since you knew to implement phase modulation instead of
frequency modulation.

(John Chowning calls it FM, but his equations describe PM, but his
Music V diagrams describe FM, but the Yamaha DX-7 uses PM.  Hee-hah!)

John Chowning's orginal article is called, "The Synthesis of Complex
Audio Spectra by Means of Frequency Modulation".  It's available from
the AES, in some published books on synthesis, or pirated on the
interweb if you look around.

John Chowning's original FM Synthesis patent is US patent 4,018,121.
It's basically the same as his article.  As described, it's not very
practical as it uses shift-and-add multiplies.  (Yikes!)

The DX-7 patent is US patent 4,554,857.  It's implemented entirely
with with adds, reads/writes, and table lookups.  Like all patents
it's hard to read, but the diagrams should be useful.

Use http://www.pat2pdf.org to get free printable PDF copies of the

   > The thing is, with this FPGA, the mulpliers are _dedicated_
   > hardware and exist whether you use them or not (well, if you use
   > a block RAM, you can't use the associated multiplier).  

Sure, but for an actual DX-7, with 6 operators and 16-voice polyphony,
you'd need 96 multipliers.  Or be good at multiplexing.

   > I've only _just_ begun to mess with FM.

I would recommend getting an actual DX-7 to play with.  They're not
expensive, and they're mighty interesting.

  -- Don

Don Tillman
Palo Alto, California
don at till.com

More information about the Synth-diy mailing list