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:

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:

SynprezFM-II-builtins.tgz

Questions?

Contact synprez@gmail.com to get more information on the project