rewrite fmsynth.c