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

Scott Gravenhorst music.maker at gte.net
Mon May 4 19:05:02 CEST 2009


Donald Tillman <don at till.com> wrote:
>   > 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.

I think that would be a great read.

>   > >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.

This was because I wanted to implement C:M ratios that are not integers, I could
think of a way to do that without doing arithmetic on the phase increment value
since my oscillators are simple binary wrapping phase accumulators.

>(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
>patents.

Thanks Don, I will go there and get them.

>   > 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.

There are bigger badder FPGAs that can be used and multipliers are sharable so if
you have enough clocks per sample, you can do a lot with a set of multipliers that
is smaller than the total number of multiply operations required.  I have a dev
board with a Spartan-3A DSP 1800 which contains 84 dedicated hardware multipliers
which can operate at least at 200 MHz.  Plus there are intimate default connections
between multipliers and RAM in this FPGA which can make things like
multiply-and-accumulate operations faster.  This FPGA would be a great starting
place for a nice FM synth I think.

>   > 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.

Well, unemployed I am...


-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.




More information about the Synth-diy mailing list