In the electronic music production tool chain, the synthesizer is what actually generates the sound wave forms. Sound is just waves, and the shape of those waves determines the note, volume, and timbre. Very basic synthesizers, like the sound chips in old video game consoles, can’t produce smooth waves. That’s why they have a distinct “digital” sound. Modern synthesizers are capable of producing smooth waves that sound very similar to analog notes. FM (frequency modulation) synthesizers do so by using one or more waves to modulate another wave. René Ceballos has built an open source FM synthesizer built on an FPGA.
The XFM Synthesizer is built on a Mojo V3 development board with a Xilinx Spartan 6 FPGA chip. It’s capable of producing 32 polyphony voices with six operators per voice, and eight wave forms per operator. Those waves can be triangle, square, sine, or S&H (Sample and Hold). It has very low latency (less than 1 millisecond), and can be powered by battery. To use it, any standard MIDI controller can be connected as an input, and the output is either through 24-bit SPDIF digital stereo or 16-bit analog stereo connections.
All of that capability requires that a lot of instructions be calculated very quickly, which is why Ceballos chose to use an FPGA for this synthesizer design. Most microcontrollers don’t have a high enough clock speed for that, and single-board computers have to run too many layers of abstraction before the synthesis program can be run. With the FPGA, Ceballos was able to design a circuit for processing those wave forms efficiently and quickly — essentially creating a custom chip purpose-built for FM synthesis. As you can hear in the video, the results sound fantastic. Even better, the XFM synthesizer is surprisingly affordable to build yourself.