![]() |
Cakewalk/rgcaudio SFZ Format Information |
History
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, 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 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. |