10.1. SoundFont Technology and MIDI
SoundFont technology was developed in the early 1990s, and comprises a file format and certain hardware technologies designed to allow the creation of MIDI instruments that sound like acoustic instruments. It would be virtually impossible to make an electronically-synthesized instrument sound identical to an acoustic counterpart, but SoundFont technology enables the gap to narrow considerably. Heard in the right context, most people would not notice that music was recorded by a SoundFont-capable MIDI synthesizer, but results can vary widely.
What FluidSynth enables users to do is eliminate the hardware component of using SoundFonts, so that any computer becomes capable of synthesizing from SoundFont files, which are often simply referred to as "a SoundFont." As fonts change the look of text characters, SoundFonts change the sound of MIDI notes - the overall meaning is the same when conveyed by any font (or SoundFont), but the particular nuance is changed.
Fedora offers a few SoundFonts in the default repositories. By default, FluidSynth installs the FluidR3 General MIDI ("GM") SoundFont, which contains a wide array of conventional (and some non-conventional) "patches." To see the other options that are available, use PackageKit, Apper, or yum to search for "soundfont".
10.1.1. How to Get a SoundFont
There is a large selection of SoundFonts available for free on the internet, and some are also available for purchase, including a few very high quality SoundFonts. The following three websites have links to SoundFont resources, and some SoundFonts available for paid or free download. No guarantee is made of the quality of the material provided, or of the quality and security of the websites.
10.1.2. MIDI Instruments, Banks, Programs, and Patches
A "MIDI instrument" is the synthesizer itself. If the synthesizer uses SoundFonts, then the SoundFont also constitutes part of the instrument. Each instrument can be thought of as a library, which stores books.
Each instrument offers at least one, but possibly several "banks," which store programs. If a MIDI instrument is a library, then a bank is like a particular shelf. You must first select a shelf before choosing a book.
Each bank offers between one and one hundred and twenty seven "programs," (also called "patches") which are the sounds themselves. If a MIDI instrument is a library and a bank is a shelf, then a program is a book. Programs need not necessarily be related, but banks with a large number of programs (like the "General MIDI" bank) usually follow some sort of order. It is the program alone which determines the sound of the synthesized audio; the bank and instrument simply limit the possible choices of program.
A MIDI synthesizer will accept input on multiple channels. Although each "instance" of the synthesizer can only have one MIDI instrument assigned to it, each channel can be assigned a program independently. This allows the synthesis of a virtual instrumental ensemble.
The General MIDI ("GM") standard, used partially by the default FluidR3 SoundFont and by FluidSynth itself, further specifies that there will be 16 channels, and that channel 10 will be used for (mostly unpitched) percussion instruments. Any program change message sent to channel 10 will be ignored, and although FluidSynth can be configured to use a non-percussion program on channel 10, this use is discouraged.
For cases where FluidSynth does not adhere to the General MIDI standard, it is adding functionality, rather than removing it.