Cakewalk/rgcaudio SFZ Format Information See Video

History
The SFZ format is the brainchild of René Celleballos, who built his own Windows SoundFont player but then exceeded the capabilities of SoundFont format, which doesn't include keyswitching, rule-based alternates, round robin, and many other things. So he started building a new format to take advantage of these features he was developing.


SFZ is unique in that it is text-based, and he published it openly so people could write their own programs textually - similar to how HTML and XML work. SFZ is simpler in that it is just key=value based, so any parameter you put in, it looks like tune=14 volume=7 etc., unlike HTML which has non-friendly tags like <p>This is my sentence.</p>. Most sampler formats are binary, mainly for loading speed purposes.

Since the so-named SFZ Player was free, René became everyone's friend. He also became Cakewalk's friend, then employee. SFZ replaced VSampler as the sampler that shipped with Sonar, in the form of Dimension LE and Dimension Pro. (SFZ was also integrated into other products like Rapture.) Through that medium, SFZ became useful on Mac as well.

SFZ remains very useful for common -and even developers - to write their own patches in a textual way, rather than using computer-driven knobs and sliders.

Synthesis and File Structure
SFZ is quite a powerful format - it supports almost as wide a set of parameters as Kontakt does. It supports the basic set of common parameters, grouping of references, and more. But it took while to develop, and even then one must be very careful how you handle SFZ files. Here's why

SFZ, as originally developed, was very good on certain things (especially rule-based things) but not so good at others, mostly because of the SoundFont heritage. When René first published SFZ, it is now commonly called (in hindsight) SFZ 1.0. There was no modulation matrix, only fixed mod paths, 2 fixed AHDSR envelopes, and limited filtering. In fact, SFZ 1.0 is still what is officially published by Cakewalk (and thus René).

When René came to work for Cakewalk, and finished the Dimension work etc., it was apparent if you looked into these new SFZ files that he'd extended the format but did not update the official spec. Eventually a book writer did some research on all this and published the additions to the spec in a book called Cakewalk Synthesizers. This spec is now commonly called SFZ 2.0. At the time, the only way to get the spec was to buy the book, and still generally is. At the time of this writing, the 2.0 spec is published at the Linuxsampler web site.

SFZ 2.0 added the concept of modular envelopes and LFO's, plus even effects, and in doing so added a modulation matrix, plus some other chunk additions that nicely rounded out the spec.

So, in other words, with the acquisition of SFZ, it seems that Cakewalk (now owned by Roland) is less willing to facilitate public standards. This puts SFZ into "the wild, wild west" as far as hanging together as a manageable spec. This has not prevented people from using it - the question is how well can you depend on it when you are using higher-level features and how well are you aware that the engine you are loading it into can faithfully replicate - or even start - what you are giving it. The original SFZ Player will ignore all SFZ 2.0 information. Some Cakewalk players accept 2.0, other don't. Making it a little more confusing, certain private engine players such as Aria and Linuxsampler have included custom parameters that only their engines can read, such as hook to external MIDI processing programs and using encrypted samples for copy-protection.

None of this was really besmirched people enthusiasm for SFZ, as most of the confusion deals with higher-level functions, plus most if not all engines parse SFZ files just fine and simply ignore what they can't use. Much use of SFZ is just for basic mapping plus a little more. Most people who want to really get the most out of SFZ are in turn just as aware of the problem that come when using those higher-level functions.

SFZ uses WAVE, AIFF, or OGG (a fairly-well-known compressed format, not used in other samplers) for the sample files, and of course any .sfz file is editable in any text editor. There is even a specialty SFZ Editor marketed as freeware. The paths in SFZ files, to connect to their samples, is usually a relative path, but if needs it can be a absolute path as well. There is no limit on how many groups or regions (a sample reference) you can have.

Translating and Building SFZ Programs (Multisamples)

As was stated about, please be aware about how complex you make your SFZ patches - not the quantity, but specific esoteric things you use. Chicken Systems programs have a good amount of SFZ options - you can choose if you are writing SFZ 1.0 or 2.0, and you can dictate how things are groups and how the file is even textually written. Please see the SFZ Options page for more details.

SFZ files are often misunderstood regarding the two major SFZ players, which are Cakewalk's Dimension and CamelAudio's Alchemy. A SFZ file isn't a Program in the Dimension/Alchemy sense, it's what they regard as a Multisample. A Program handles four Multisamples. Think of a Dimension/Alchemy Program having 4 Elements, each being their own complete Sampler.

For Dimension, the confusing thing is that you have all those parameters on the interface, but they are really overrides for the SFZ parameters, they don't reflect the parameters in the SFZ nor do them edit them directly. In other words, Dimension is simply a macro SFZ player that plays up to four SFZ files, and you have the ability to tweak how the what the SFZ plays. And when you save a Dimension Program (.prog), the .prog references the original .sfz file.

Alchemy works differently. It actually imports the SFZ information in, so when you are tweaking things you actually are editing the real information. And when Alchemy saves it's file (.acp), there is no referencing of the original SFZ at all, it was already assimilated.

Alchemy also does not import a lot of the realtime information that a SFZ file may have - this is why we do not recommend translating or building SFZ files for the purpose of using them in Alchemy - translate/build into Alchemy format itself.

Translating Out of SFZ Format

Translator™ converts all information out of any SFZ format accurately, with the exception of any external MIDI processor and any encrypted samples.