Message 2: the future of the open source soundfont formats

• Sep 9, 2015 - 22:17


As the developer of the software Polyphone, one user asked me to work on the sf3 support. We exchanged a couple of emails and I'm now convinced of its benefits. By dividing by 10 the size of a soundfont and keeping most of its quality, it makes it easy to embed in a lot of applications (video games, mobile applications, ...). The idea is not new in that the format sf2pack (please note the "2") already exists for example, but it is now an open-source format which is promoted by a well-driven software with a pretty big community. Thus, I added the sf3 import / export.

The background being stated, I have several remarks and interrogations (most of them being technical). This message is part of a series comprising other messages.

Message 2: the future of the open source soundfont formats

Sf3 has been designed to provide a convenient way to spread soundfonts by reducing the size. In the meanwhile I would like to speak about the sf2 format itself and the possible improvements we could make over the current version 2.04 dating in the early 2000's. I'll present several points and the questions will be: do they justify another version of the sf2 format? If yes, what could be the roadmap so that the new version is accepted by most of the sf2 actors?

1st point

Several times I had to answer the following question: "How to trigger a sound on the key release". This may not speak to you but this is what gives realism to an instrument. The attack of a sound is important but so is the release, and the sf2 doesn't support it (or you would have to cheat with a silent loop).
Thus, we could add the play mode "played on key release" to the existing modes "no loop", "loop", "loop + played to the end after release".

2nd point

In the sf2 format, it's possible to use 2 envelopes:

  • one for the volume (vol env),
  • one for the pitch and / or filter (mod env).

We could simply have the following:

  • one for the volume (vol env),
  • one for the pitch (pitch env),
  • one for the filter (filter env).

We could thus independently define the evolution of the volume, the pitch and the filter.

3rd point

2 modulators are currently available:

  • one for volume and / or pitch and / or volume (Mod LFO),
  • one for pitch (Vib LFO).

We could have the following:

  • one for the volume (vol mod),
  • one for the pitch (pitch mod),
  • one for the filter (filter mod).

Same remarks than before, we can define more accurately the modulations (even if assigning 2 modulators for the volume would not be allowed anymore).

4th point

Sf2 currently has only one type of filter: low-pass of the 2nd order (12dB / octave).
1st order filter could be added (6dB / octave), and we could further extend them by adding high-pass / band-pass and notch filters which makes a total of 8 kinds of filters.


Note: all these points will make sf2 closer to the possibilities of the sfz format, switching from one to another would be easier.

Do you still have an unanswered question? Please log in first to post your question.