Themaister / libfmsynth

A C library which implements an FM synthesizer
MIT License
334 stars 25 forks source link

Traditional algorithm arrangements sound ... wrong #4

Open io7m opened 7 years ago

io7m commented 7 years ago

Hello!

Nice work on producing an FM synth.

I'm having a bit of trouble getting good results when using particular arrangements of operators/modulators. For example, there's a really recognizable characteristic sound that FM synths tend to make when you modulate 1 ← 2 ← 3. That is, 1 is the carrier, 2 modulates 1 and 3 modulates 2. I'm using the Hexter synth as a reference here because it seems to be the only other working open source FM synth, but it applies to just about every hardware and software synth I've ever used. Apologies for the zip files, but GitHub won't allow me to upload Ogg Vorbis audio:

hexter.zip

The three notes you can hear are:

  1. The carrier 1 without modulation.
  2. The carrier 1 being modulated by operator 2.
  3. The carrier 1 being modulated by 2 which is in turn being modulated by 3.

Here's the exact same modulation setup in libfmsynth:

fmsynth.zip

It sounds pretty awful. Nothing like what I'd expect! Here's the preset, for reference:

snarl.zip

Am I doing something wrong? Is there some way to get libfmsynth to sound like the output of Hexter?