SoundFont - FluidSynth/fluidsynth GitHub Wiki
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
- Polyphone Soundfont Collection - A collection of Soundfonts on the Polyphone website
- Hammersound - A nice resource for downloading free SoundFont instrument files.
- Musical artifacts - A website for sharing SoundFonts.
- Magic Sound Font, version 2.0 (68 MB)
- Arachno SoundFont, version 1.0 (148MB)
- TimGM6mb (6 MB)
- MuseScore_General.sf2 (208 MB)
- Timbres Of Heaven GM_GS_XG_SFX V 3.4 (246 MB)
- Sonatina Symphonic Orchestra (503 MB uncompressed)
- Aegean Symphonic Orchestra v2.5 universal (350 MB)
- Salamander C5 Light (25 MB)
SoundFont editors
-
Project SWAMI by Josh Green (Win, Linux, MacOS), http://www.swamiproject.org/
-
Polyphone (Win, Linux, MacOS), http://polyphone-soundfonts.com/en/
-
Vienna SoundFont Studio by Creative Technology Ltd. (Win)
-
SynthFont Viena (Win), http://www.synthfont.com/Viena_news.html
-
Alive Soundfont Editor by Soundfaction (Win)
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
-
CDxtract by Safta Consulting, Inc. (Win)
-
ReCycle by Propellerhead Software (Win & Mac),
-
Translator by Rubber Chicken Software (Win & Mac),
-
Awave Studio by FMJ-Software (Win)
-
sf1to2 (Dos)
-
DLS to SF2 converter (Web)
Note that most of the editors mentioned above may also perform conversions to some extend.
Software SoundFont Synthesizers:
-
LiveSynth Pro DXi and Crescendo from LiveUpdate (Win)
-
Unity DS-1 from Bitheadz (Win & Mac)
-
QuickTime 5 from Apple (Win & Mac)
-
Logic from eMagic (Mac)
-
SynthFont (Win)
-
BASSMIDI (Win)
-
SpessaSynth (Web)
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.
- Wikipedia SoundFont page - Good overview of SoundFont format and other resources.
- Soundfont 2.1 application note - PDF document describing fundamental SoundFont concepts. (should be read first as an overview before diving in SoundFont 2.4 specification.
- SoundFont 2.4 specification - PDF document describing SoundFont format technical details.
- The MIDI Manufacturers Association has a standard called Downloadable Sounds (DLS) that closely resembles the Soundfont Specifications.
- Creative Labs Developer Documentation - Specifications, docs, SF2 test files, etc. (on archive.org, the original is no longer accessible)
- Soundfont.com FAQ (on archive.org, the original is no longer accessible)
- MuseScore's officially inofficial SoundFont 3 extension - An extension of the SF2 format that allows sample compression.
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.
-
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.
-
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.
-
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.
-
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.
-
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.