How to Create SoundFonts

SoundFont is a music application that contains digital audio samples recorded from real instruments. Generally, samples could be musical notes, percussive single shots, melodic and rhythmic phrases mostly in wave formats (*.wav). Examples of such samples include piano notes, single shots of the kick, etc. In order to play these samples via the wavetable synthesizer (located on the soundcard), the soundFont module incorporates (in itself) the necessary commands or instructions, which describe the state of the samples during playback. These commands include – pitch shifting, pitch bending, stretching, delay, attack, hold, sustain, vibrato, etc.

The soundFont module is made up of MIDI banks, which are stored on the hard disk. This module can be loaded into the memory (RAM) for playback via a soundFont player (Fruity SoundFont player) of a sequencer (FruityLoops) or a sampler.

Advantages of using SoundFont

Portability – A soundFont module can be played back in any software/hardware that supports it.

Flexibility – It is possible to control or manipulate large number of samples in a single module. In FruityLoops, for instance, instead of using eight channels to playback an octave of an instrument, you will need just one channel of a soundFont module, which could possibly contain up to 11 octaves. Furthermore, it is easier to synchronously control (e.g. the volume of) the samples through the soundFont.

The Structure of SoundFont

The soundFont is 3-level structured. It consists of the sample, the instrument and the preset levels. The sample level is a subset of the instrument level; in the same manner, the instrument level is a subset of the preset level. See Figure 1.

The 3-level structure of the SoundFont Ethereal Multimedia Technology Figure 1: The 3-level structure of the SoundFont.

Instrument level

At this level, the most important features are the instrument zone and the global zone. These zones are used to control or manipulate the instrument’s key range, velocity range and generator values. Any settings made in the instrument zone affects only its samples, whereas in the global zone, the settings affect all other instruments in the zone.

Preset level

This level consists of the melodic and percussive presets. Analogically, it has the preset and the global zones, which play similar roles as the instrument and global zone in the instrument level.

Melodic presets

These presets consist of pitched instruments (piano, etc.). This means that a sample can stretch over a key range.

Melodic preset structure of the SoundFont Ethereal Multimedia Technology এම

Figure 2: Melodic preset structure of the SoundFont.

Percussive Presets

These presets are key-based. This is because percussive instruments, by nature, are not pitched. Thus, it means that each key on the keyboard would be assigned to a particular sample.

Percussive preset structure of the SoundFont Ethereal Multimedia Technology

Figure 3: Percussive preset structure of the SoundFont.


This is a technique, in which samples are assigned to separate key ranges. That is, there is only one sample to a key range and the key ranges do not overlap (or intersect) one another on the keyboard.

Multi-Sampling Ethereal Multimedia Technology

Figure 4: Multi-Sampling.


In layering, the key ranges of the samples can overlap. This implies that playing a particular note on the keyboard will cause all the multi-layered samples to play simultaneously.

Multi-Layering Ethereal Multimedia Technology

Figure 5: Multi-Layering.

Multi-Sampling + Multi-Layering Ethereal Multimedia Technology

Figure 6: Multi-Sampling + Multi-Layering.

SoundFont Creation Techniques

Every musician, at one point in time, would love to have new, unique sounds in his songs. It is normal to easily get bored with the old samples after using them in several productions. In practice, the quest for new sounds, among other reasons, could drive your creativity so crazy that you might begin to search for new sounds in places where you least imagined.

Furthermore, you may even like to manipulate these samples to add more feel, taste and life to them via software applications. In short, before you realize it, you would have made your own synthesizer! This is very possible, because all you need are:

  1. A soundcard that is compatible with the soundFonts modules (sf2). Before you buy your soundcard, ask the vendor about this feature.
  2. Vienna SoundFont Studio – This is the soundFont creation application. You can download it free from the Creative Labs web site – Vienna will work only on systems installed with Creative Labs sound device. Thus, if your computer system does not meet up with this specification, you may as well try out other SoundFont creating software, such as Viena, Swami and Polyphone.
  3. A wave editor – In this book, I will be using the Sony Sound Forge.
  4. Musical instruments – Some of these instruments, depending on what you want to record, may include the bass, acoustic/electric guitars, MIDI keyboard, drum set, etc. Make sure all string instruments are tuned before recording.

Preparing the Samples

The process of making your samples ready for soundfonting will involve the following key events: instruments interconnections, recording and editing (DC offset, trimming, fade in/out, normalization etc.). For full details on these events, see “Creating Samples,” in this chapter. However, the following are few tips regarding the process of creating soundfont:

  1. The naming system – This depends on what you are recording. Your naming system could possibly include alphabets, symbols and numbers. The tricky part is when you want to create soundFonts that would consist of both melodic and percussive instruments. A melodic (pitched) instrument, for instance, the Piano, has a key range of say C0 – C8. Thus, a sample of a piano note (like C4), could be named ‘C4.wav’ or ‘PianoC4.wav’. In the first case (C4.wav), it means that only the piano would make up the soundFont module. In the second case, however, it is possible to have more than one melodic instrument. This implies that we can also have a sample from the bass guitar named ‘BassC4.wav’ or ‘ViolinC4.wav’ from the violin.

There is another trick that I use when naming my samples. I usually use the following naming system: MIDI key number: Instrument Name: Octave-note number. Note that Vienna has 128 MIDI key numbers on its keyboard. See Table 1. For instance, the sample of the piano note (middle C i.e. C4) could be renamed as 060PianoC4.wav. This type of naming system makes the assignment of the key numbers to samples a lot easier.

  1. Just before you start fine-tuning your samples, make a backup.
  2. Normalize your samples to have -20 – -15dB loudness (RMS) and a peak value of say -4dB.
  3. Do not add any sort of effect to the raw samples!
  4. Use the Loop Tuner in the wave editor (Sound Forge) to set the start and endpoints of all the samples.

Table 1: MIDI key number range with corresponding Octave-Note

MIDI key number range with corresponding Octave-Note Ethereal Multimedia Technology

Working with Vienna SoundFont Studio

  1. Import the samples onto the Vienna environment.
      1. At this stage, make sure that all the nodes in the Bank Manager are expanded. Then right-click the “User Sample Pool” folder to import the samples from the drive (directory/folder) where you saved them.

Bank Manager section Ethereal Multimedia Technology Importing Samples Ethereal Multimedia Technology

Figure 7: Bank Manager section. Figure 8: Importing Samples.

  1. Create the instruments.
      1. Right-click the “Instrument Pool” folder to create and set the name of the instrument.

Creating the instrument Ethereal Multimedia Technology

Figure 9: Creating the instrument.

      1. Immediately afterwards, the “New instrument Zone” menu will appear. Click on any of the samples that would make up the instrument. However, if you intend to select all of them, then click the mouse (without releasing it) and scroll down through the list of the samples. Finally, click the “Add” button. You will notice that all the samples are stretched from the beginning to the end of the keyboard. This is multi-layering. I doubt if there is any “elastic” sample that could be stretched for over 11 octaves without sounding extra weird. Thus, it would be safer, if you manually adjust the key ranges of the samples.
      2. Alternatively, delete this multi-layered instrument and then create a new one. This time around, enable the checkbox “Assign each sample to individual key”. Then click the “Add” button.
      3. Immediately afterwards, the “Set Key Number (Percussive)” menu will appear. Then begin to assign the MIDI key number to the corresponding samples. E.g., 060PianoC4=>60. At this stage, you can also stretch the samples.

      1. Create the Global zone: Right-click the instrument you’ve just created and then choose the Global Zone from the menu.

Creating Global Zone Ethereal Multimedia Technology

Figure 10: Creating Global Zone.

      1. Right-click the Global Zone to set some parameters of the modulator properties (if necessary).

Setting the Global Zone properties Ethereal Multimedia Technology

Figure 11: Setting the Global Zone properties.

  1. It’s Preset time!
      1. From the “Preset Section” folder, right-click either the “Melodic Pool” or the “Percussive Pool” to create your preset.

Creating a Preset Ethereal Multimedia Technology

Figure 12: Creating a Preset.

      1. Immediately afterwards, the “New Melodic/Percussive Preset” menu will appear. Now, you can set the Bank Number, Preset Number and the Preset Name. Click OK to invoke the next menu – “New Preset Zone”.
      2. Select the instrument(s) to be used in this preset zone; then click the “Add” button.
      3. You can always arrange your presets (instruments) in the way you best prefer or use the common arrangement like in the General MIDI: Piano and Keys, Chimes and Bells, Organs, Guitars, Basses, Strings, Brass, Winds, Pads, Leads, FX and Drums.
  1. Add some Bank information by choosing “Information…” from the File menu.

Bank Information Ethereal Multimedia Technology

Figure 13: Bank Information.

Save the soundFont that you’ve just created; and you are ready to use in any sequencer, specifically FL Studio.

How to create soundfonts is a blog post culled from an eBook: Beats Sequencing with FL Studio by E. J. Garba