SF2

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
SoundFont
SF2.png
Developer: E-mu Systems, Inc., Creative Labs
Header: RIFF
Content: PCM
Instruments: Intrinsic
Target Output
Output - Digital Audio.png Output - MIDI - No.png Output - FM Synthesis - No.png Output - PSG - No.png
Released: 1990-??-??
First Game: ?
Extensions
  • *.sbk
  • *.sf2
  • *.sf3

SoundFont (SF2) file format widely used by Creative Sound Blaster AWE32 and by software synthesizers. The file doesn't store music, but it does contain the digital audio samples for instrument collections and parameters for further shaping the sound and specifying how the sample should be played.

Older, proprietary SoundFont1 uses SBK extension while SoundFont2 versions uses SF2 extension which also supports compressed files with SF3 extension.

Creative sound cards like Sound Blaster AWE32 and Sound Blaster Live! have onboard RAM with native SoundFont support for hardware wavetable synthesis.

Players

(Category)

Editors

(Category)

Converters

(Category)

SF2 to ?

? to SF2

  • libdmusic - Linux, Windows - DLS
  • SpessaSynth - Web - DLS
  • SynthFont Viena - Windows - DLS - note: this program incorrectly interprets DLS values as SF2 generators (inverting the attenuation for example), resulting in wrong volume and envelope values.

Games

(Category)

SF3

SF3 is a version of the SF2 format created by MuseScore. It uses Ogg Vorbis compression for reduced file size, otherwise it's identical to the SF2 format. It uses the *.sf3 extension.

Technical

All SoundFont files use RIFF tree structure, and the identifier is "sfbk".

RIFF Tree Structure

File Root
│
└─ RIFF:sfbk            - RIFF SoundFont bank header
   ├─ LIST:INFO         - Information container
   │  ├─ ifil           - SoundFont version
   │  ├─ isng           - SoundFont hardware signature
   │  ├─ irom           - SoundFont ROM info
   │  ├─ iver           - SoundFont ROM version
   │  ├─ INAM           - Name / Title
   │  ├─ IPRD           - Product
   │  ├─ ICOP           - Copyright
   │  ├─ ICMT           - Comment
   │  ├─ IENG           - Engineer who worked on the file
   │  └─ ...
   ├─ LIST:sdta         - Samples
   │  ├─ smpl           - Sample waveform data as 16-bit signed PCM
   │  └─ sm24           - 8-bit PCM data to add to the smpl chunk, forming 24-bit sample data (optional)          
   ├─ LIST:pdta         - Instrument definitions and parameters
   │  ├─ phdr           - Preset headers: name, bank, program, zones
   │  ├─ pbag           - Preset zones: start and end index, refer to pbag and pmod
   │  ├─ pmod           - Preset modulators: all modulators for the preset level
   │  ├─ pgen           - Preset generators: all generators for the preset level
   │  ├─ inst           - Instrument headers: name, zones
   │  ├─ ibag           - Instrument zones: start and end index, refer to ibag and imod
   │  ├─ imod           - Instrument modulators: all modulators for the instrument level
   │  ├─ igen           - Instrument generators: all generators for the instrument level
   │  └─ shdr           - Sample headers
   └─ ...

Links