Skip to content
Tom M edited this page Sep 19, 2022 · 20 revisions

SoundFont is a file format for sample-based instrument sounds. You will need a SoundFont to use FluidSynth. If you are not familiar with them, check out Josh Green's Introduction to SoundFonts and Soundfont 2.1 application note.

If you just need to play General Midi files, these SoundFonts are known to work well with FluidSynth:

Soundfont Resources

SoundFont editors

Note: We cannot recommend using Audio Compositor for creating or editing Soundfonts, as it generates files that violate the Soundfont2 spec (specifically the order of generators as defined in section 8.1.2) and are therefore unusable with FluidSynth!

Conversion Tools

Note that most of the editors mentioned above may also perform conversions to some extend.

Software SoundFont Synthesizers:

Developer Resources

The SoundFont format was originally created by Creative Labs and EMU Systems and used in the SoundBlaster AWE 32 and later cards. There are now many other hardware platforms and software synthesizers supporting this format. SoundFont 2.0 and later are open formats and the specification is freely available.

FluidSynth's implementation details of the SoundFont 2 spec

The main goal of FluidSynth is to implement SoundFont 2 spec as accurately as possible. However, some minor adjustments have been made which are described here.

  1. The default "note velocity to filter cut off" modulator is inconsistently defined by the spec and is therefore actively disabled by fluidsynth. Generally, this is no problem, as many people feel that musically it doesn't make sense anyway. Therefore, it is usually not missed by users.

  2. FluidSynth applies a custom default modulator to every SoundFont in order to handle CC 8 (Balance) correctly. For details, pls. have a look at this Pull Request or the related discussion on the mailing list.

  3. The SoundFont spec allows into link multiple modulators to each other. An attempt was made to implement this. However, during implementation it was discovered that this feature is essentially "under-specified". Due to a lack for real-world use-cases and because it's hard to understand for a SoundFont designer what's going on in a linked modulator chain, implementing this feature was dropped.

  4. According to the spec, stereo sample pairs should both use pitch generators from the right channel. This is not implemented at the moment, as we are lacking an example SoundFont file where this issue would really make an audible difference, see related issue.

  5. The spec makes various constraints to sample loop points and is absolutely clear, that samples should be dropped or ignored when these conditions are not met. On the other hand, those constraints do not consider the effects of loop offset modulators on instrument level, which could potentially turn invalid sample loops into valid loops on instrument level, or turn valid sample loops into invalid ones. This makes the entire sample loop topic yet another "grey-area" in the SoundFont spec. Rather than messing around with incorrect sample loops or even dropping entire samples, FluidSynth will be very permissive on sample loops. It reports any problems it experiences, but generally leaves them as-is.