I put together an sfz based virtual orchestra sample library of my own. It’s assembled from pieces of a few different free libraries. These are some of the resources that can help with building an .sfz library and understanding the .sfz format..
This first link is the list of the original sfz 1.0 opcodes. These form the basis of creating a sample library for an sfz player.
Some further explanation of the sfz 1.0 opcodes can be found here:
Of course, having an sfz player is very important too. I’ve already posted about my sfz player of choice here:
There are some additional opcodes introduced in sfz 2.0 but information about sfz 2.0 is hard to find online. Here is a link to a list of the sfz 2.0 opcodes that I found:
There isn’t much of a description to accompany the list, but once sfz 1.0 is understood, it’s not too difficult to figure out what an sfz 2.0 opcode does.
The above link is meant for the Linux Sampler, but it contains explanations of opcodes and could help understand some of the sfz 1.0 and 2.0 opcodes.
Here are a few online chapters from the book:
That book is apparently the only place the full SFZ 2.0 specification exists. I haven’t read the book but chapter 13 and the appendix are said to address SFZ 2.0.
This next resource states “This is the main reference point for anyone who wants to create virtual musical instruments using the SFZ format.” The web site looks to me like it’s trying to be exactly what it claims. It’s definitely worth a look.
When building my library I also found this list of instrument ranges to be a helpful guide although, I’m uncertain about the accuracy of some of it. For some instruments, I’ve seen video, and heard samples, of instruments being played outside the specified range, so it’s best to double check.
Finally, although this blog post is mostly about the sfz format, my previous blog post about Looping a sample, taught me how to use the free tool Audacity to determine the values to put in the sfz “offset” opcode. Using the “offset” opcode together with the “ampeg_attack” opcode, and a few others, is the secret to creating a staccato sample from a sustain sample.
A few more related links: