Roadmap

What we are working on for SFE

Here is a non-exhaustive list of what future versions of SFE are planned to include. If you want to propose any features, then please feel free to drop an issue on GitHub.

4.1

Developed from proposed SpessaSynth extensions, this allows more flexibility when using NRPN values in MIDI files.

Improved NRPN features also enable more accurate XG support, and is very likely to also be applicable to other extended GM standards.

The comments field is the main way that sound bank developers communicate information.

By including Markdown support, developers can make descriptions easier to read.

Bankmaps are a new system in future versions of SFE that allow the use of multiple extended GM mappings that conflict in terms of MSB/LSB/preset combinations.

Bankmaps will initially be mapped to existing popular extended GM standards, however future versions will allow the user to define their own MIDI instructions to activate a bankmap.

You can set modulators to be triggered on note-off.

This is an existing extension that is available on Polyphone, FluidSynth and SpessaSynth. This allows a sample to play back only on note-off/release.

While Opus is not included in SFE 4.0 due to scope limitations, we are considering allowing the use of Opus compression in SFE Compression for SFE 4.1.

4.2

SynthFont includes some custom features, mostly DLS-like features; SFE aims to integrate these features and standardise their usage on all players in the future.

Using multiple samples per note-velocity layer allows the use of a different sample for each playback of a note.

This can be used to improve the realism of drums, or switch between vocal sounds on each note-on event, and is one of the most desired features.

Both a sample sequence mode and a sample randomisation mode will be available.

More sample playback modes will be introduced, which increases flexibility of sample usage.

For example, you will be able to use reversed samples or bidirectional (back-and-forth) samples.

Initial attenuation behaviour will be configurable between legacy 0.4x behaviour and true attenuation, as well as disabling the attenuation limit, and instrument amplification.

This will ensure that sound bank developers get the actual attenuation intended, and are not limited in terms of flexibility by sample volume. This should ensure that preset balancing is easier, which should naturally improve sound bank quality.

Based on DLS features, this allows the cutoff to be adjusted for an exclusive class sample, eliminating abrupt sample cutoffs.

SFESong combines the SpessaSynth RMIDI/SF2 extension with lyrics support. This allows the creation of self-contained MIDI songs that package the intended sound bank in one file.

This is a standardisation of the SFLIST format, allowing more than one sound bank to be used simultaneously in a way that works on all players.

More features might be added in a future release.

Using an IPIC sub-chunk, you will be able to include an icon for your sound bank.

You can create generators with a larger selection of values, or improved precision for more detailed sound creation.

This is achieved by expanding xdta-list to affect pgen and igen.

When using SiliconSFE banks, integrity checks will be improved.

1990s-era RIFF terminology will finally be phased out.

4.3

The prsw (preset switch) system will allow MIDI-controlled bankmap switching, allowing the use of an arbitrary extended GM mapping.

Legacy modulation envelopes and LFOs will be replaced with more flexible modulator systems, allowing more detailed modulation.

Other filter types, such as high-pass, band-pass and band-reject (notch), will be added to allow new sound types that were not possible before.

You can also adjust the depth (order) and other characteristics of the filter, to make it far easier to create the exact sound you desire.

Using ISMI (sample information) and IPRI (preset information), more information about objects inside a sound bank can be included.

The IMDD field also provides the sound bank's modification date.

4.4

This allows 64-bit sample addressing, which increases the maximum size of samples in a sound bank.

Other DLS features such as object GUIDs, full LFO ramp envelopes, and fractional loop points, will be included to allow lossless conversion from DLS and its extensions.

The SiliconSFE format will be extended to 64 bits, allowing larger SiliconSFE banks.

4.5

By extending the RIFF format to support dynamic chunk sizes, the size of sound banks becomes far more flexible than ever before.

You can also use Dynamic RIFF for your own project.

Significant improvements in the envelope system allow the drawing of almost any envelope, which creates unique sounds and may allow improved sample use efficiency.

Non-sinsuoidal LFO shaping creates new sound opportunities without needing to "bake in" LFO effects into the sample, improving sample use efficiency.

Sine, saw, triangle, pulse and noise waveforms are now synthesised in real-time, with parameters adjustable in real time.

This reduces sample interpolation artifacts, reduces sound bank size by replacing samples with real-time sound synthesis, and provides true synthesis flexibility.

A significant expansion to the effects system in SFE allows more authentic-sounding DSP effects, such as phaser, EQ, distortion, echo/delay and more.

In the future, CC94 and XG effects will be fully supported, improving playback quality for MIDI files that use these extended standards.

4.6

Intermediate representations of SFE, called abstraction layers, allow development of more flexible SFE tools.

The development of sfec, the SFE compiler, will begin, and will not only make the development of SFE sound banks easier, but also traditional SoundFonts and Werner SF3 sound banks.

The SFE compiler will allow you to compile non-monolithic SFZ sound banks into monolithic sound banks in SFE, Werner SF3 or SoundFont.

4.7

You can now select samples or instruments based on a key switch or conditional start, providing flexibility found in other sample formats to SFE.

This allows the format to define a new chunk structure which overrides the previous chunk structure, allowing features to improve significantly, and providing a legacy version of the chunk for older software.

5.x

SFE 5 will no longer be forward compatible with SFE 4 or SoundFont players, however it will introduce a far cleaner structure.

Instead of being separated into standard data and extended data, it is likely to have flat 32-bit or 64-bit indices and generator amounts natively, which is easier to understand.

SFE 5 is also expected to be the first version to require sample containerisation, which means that the legacy non-containerised support in SFE 4 is no longer present, which guarantees consistent sample feature availability.

Dynamic RIFF is also expected to be standard, instead of static RIFF, which reduces the complexity of SFE 5 bank loading.

Field sizes are likely to be significantly expanded or unlimited, and loop/property chunks will be extensible.

In addition to subtractive synthesis, FM synthesis allows more realistic retro sounds, including 1980s/1990s pop music, or chiptunes from retro DOS games or particular 16-bit consoles.

Future versions of SFE aim to be fully intercompatible with SFZv2, which means that any SFZv2 sound bank can be compiled into SFE without quality loss, and vice versa.

Far future

This is a redesign of sound banks based on fully-programmable primitives, allowing you to create synthesis models with a new audio programming language.