Skip to content

Section 1: Introduction

1.1 Preamble

The SFe standard has been created to provide a successor to E-mu Systems®’s SoundFont® 2.04 standard.

  • Large files (above 4 GiB) must use a 64-bit chunk header format.
  • Programs that are designed to create existing SF2 files can easily be adapted to 64-bit with SFe.
  • 64-bit headers will allow creators of sound banks to replace split banks with a large number of SF2 files, with large monolithic banks, where all samples and instruments can be used in every preset.
  • SFe compatible players require a certain standard of features, which is in the program specification in section 11. This improves compatibility of SFe banks with players.

1.2 Changelog

Revision Date Description
4.0u21 14 July 2025 Default modulator update
4.0u20 8 July 2025 Versioning change
4.0u19 6 July 2025 Made it clearer that samples need to be containerised!
4.0u18 30 June 2025 Fix typo
4.0u17 27 June 2025 RIFF64 headers replaced with simpler RIFS format
4.0u16 27 June 2025 Added xdta-list subchunk
SFe Compression update
4.0u15 18 June 2025 Added DMOD subchunk
4.0u14 15 June 2025 Information on compression has been updated
sfSampleType information rewritten
4.0u13 21 April 2025 Clarified that the ISFe chunks are nested inside of ISFe-list
4.0u12 10 April 2025 Made changes in SFty values
4.0u11 5 April 2025 Simplified the isng chunk implementation
4.0u10 3 April 2025 Further restricted the use of non-containerised sdta formats.
4.0u9 3 April 2025 Renamed USDP mode to UCC mode
Made a few other clarifications about sdta structure modes and stereo samples
Fixed dead link
4.0u8 1 April 2025 Removed sm32 and old 8-bit mode
64-bit ifil versions now equal specification versions
Added info on sdta structure modes
4.0u7 25 February 2025 Added names of two new SFe Team members
4.0u6 24 February 2025 SFe Compression no longer supports MP3 as a compression format
Clarified difference between wav in container and raw wave data
4.0u5 20 February 2025 Removed RIFX
Limited compatible compression formats
Simplified base preset fallback
SiliconSFe is now optional
4.0u4 20 February 2025 Removed a name from special thanks on request
4.0u3 9 February 2025 Improved the base preset fallback implementation
Versioning changes
4.0b 9 February 2025 Added base preset fallback
Renamed “proprietary compression” to “incompatible compression”
4.0a 8 February 2025 A few clarifications
4.0 8 February 2025 n/a

For draft specification revision history, see draft revision history.

Changes from the previous version of the specification are highlighted.

1.3 History of improvements to the SF format

In 2005, E-mu released SoundFont® 2.04 (specification date September 2002), the last version before abandoning the format. It included 24-bit support, and was designed for the Sound Blaster® X-Fi. Creative Technology Ltd is still around, but their current sound cards (such as the AE-9) do not support the SoundFont® format.

At an unknown time, Kenneth Rundt, the author of SynthFont and a series of products based on it, added some custom features, mostly ported over from the DLS format:

  • Always play the sample to the end
  • Velocity to volume envelope attack (from DLS)
  • Velocity to modulation envelope attack (from DLS)
  • Vibrato LFO to volume (from DLS)

Werner Schweer found a way to compress SoundFont® 2 files (with the lossy Vorbis format) around 2010.

  • The resulting format was known as SF3.
  • It is commonly used by open source programs, such as MuseScore and FluidSynth.
  • This is the reason why this format is not called .SF3.
  • SFe incorporates the Werner SF3 specification as SFe Compression.

Another development was done by Cognitone, which created an open source program that can losslessly compress SoundFont® 2 files (with FLAC). This was done in 2017.

  • This was unofficially called SF4.
  • This is intended to be the true version 4, as Cognitone SF4 seems to not have been as widespread as SF3.
  • SF4 has also been rejected by FluidSynth as too loosely defined.

Finally, stgiga found out that many programs don’t mind RIFF64 files.

  • RIFF64 files have a much larger size limit than 32-bit RIFF files.
  • It gives us a new horizon to experiment with longer, higher quality samples.
  • There are also many other advantages of the RIFF64 format.

The SFe project started in 2020 as a proposal for a successor to legacy SF2.04 by Polyphone developer and SFe team member davy7125. Starting off as “SF3”, it was renamed to avoid confusion with Werner SF3, firstly to “SF32 and SF64” but eventually to SFe.

1.4 Scope and purpose

This is the specification for the SFe 4.0 file format, based on the famous E-mu Systems® SoundFont® 2.04, and Werner SF3 standards, and is intended to be a source of information on SFe.

  • To create files that support SFe, you will need:
    • The SFe format, compatibility, and program specifications
    • E-mu’s provided documents for legacy SF2.04 (SFSPEC24.PDF)
  • All features from legacy SF2.04 will be retained.

1.5 Important differences from the legacy SF specification document

  • This is not a standalone document; it refers to SFSPEC24.PDF. All relevant information from the Werner SF3 specification is included.
  • This document is unofficial and was not created by E-mu. If they want this to be removed, we will remove it, but we hope that this is because they have their own official update to the SF format ready.
  • For copyright reasons, we cannot copy information from the original standard, except for what is required to interpret this document and what is allowed under fair use.
  • The SFe specification includes many additional requirements over reading the file format.
  • Document organisation has been significantly modified to accommodate the intricacies of the SFe format, and to make it easier to read.

1.6 Document organisation

The sections in this specification are different to the sections in SFSPEC24.PDF, however they roughly correspond to some of these sections:

  • Sections 1-3 of this specification to sections 0-1 of SFSPEC24.PDF
  • Section 4 of this specification to section 2 of SFSPEC24.PDF
  • Section 5 of this specification to sections 3-7 of SFSPEC24.PDF
  • Section 6 of this specification to section 8 of SFSPEC24.PDF
  • Section 7 of this specification to section 9 of SFSPEC24.PDF
  • Section 8 of this specification to section 10 of SFSPEC24.PDF
  • Section 9 of this specification to section 11 of SFSPEC24.PDF
  • Section 12 of this specification to section 12 of SFSPEC24.PDF

Section 6 also contains feature flags along with enumerators, section 9 also contains information about the AWE ROM emulator that can be implemented, and sections 10 and 11 include information on compatibility concerns and guidance on writing SFe-compatible software respectively.

Significant differences from the previous version of the specification will be highlighted.