SynprezFM
Android FM emulator project
What is SynprezFM?
SynprezFM II is a Yamaha DX7 emulator (or should I say "tribute"?) that was initially developed under Linux, then optimized for Android. It is freely available on Google Play in English, French and Spanish, with no advertisements
It offers 1024 patches of different types of sounds, and includes a patch editor since version 2.0.1. The most interesting part lies within the sound engine, that reproduces with quite a decent accuracy the sound of the original DX7, given the same patches. It is able to generate 16 channels on machines of average power, and supports the 6 operators across the 32 algorithms. On large screens, it can even display 2 independent keyboards.
It is also possible to import 32 patch sysex files to compare the emulation with the original
Unlike sampler readers, the software is very compact because it generates the sound with very few data as input: a sound patch is just 128 bytes!
Reverse engineering principles
The idea was actually an exercise in style: was it possible to fit a 16 voice synthesizer into a smart phone? The answer is almost yes: on most machines, the 16 voices are played with no problem, but on some small devices, especially on those lacking cache memory, only few voices can be rendered concurrently. Actually, the Android family is very diverse, so it is difficult to test on every platforms. Still, small screen devices often come with a small processor, and in this case the polyphony is limited.
Even if the equation of FM developed by John Chowning in his seminal paper "The Synthesis of Complex Audio Spectra by Means of Frequency Modulation" is quite simple to understand, the relationship between the mathematical equation coefficients and the actual parameters used by the DX7 patches are not documented. So it was very challenging and exciting to follow the footsteps of the designers of Yamaha Corporation. It required:
development of tools to feed an actual DX7 with test patches
development of tools to analyze (more or less) automatically the output
intuition and luck to uncover the technical numerical tricks that made a 16 voice digital synthesizer possible in the world of 1983 where common processors had a clock under 10MHz!
Builtin banks
The 1024 patches that I selected were available as bundles on the internet. They represented more than 22000 patches that I filtered to keep just 32 sysex of 32 patches. This is not easy to trace the author for each one but I would like to thank people that created or made some of these patches available:
Dave Benson
Frank Carvalho
Tim Conrardy
Jack Deckard
Chris Dodunski
Tim Garrett
Hitaye
Stephan Ibsen
Christian Jezreel
Narfman
Godric Wilkie
![](https://cdn.statically.io/img/www.google.com/images/icons/product/drive-32.png)