What is sfz?

sfz is a freeware sample/soundfont player from rgc:audio, who were bought out by Cakewalk in 2006 or 2007 (I forget). You can get it from their Project5 site. Take care: there was an update in 2006 to cater for multithreading; you may need to search harder for that. (Hint.)

What is "sfz format"?

sfz format is an open, non-proprietry method of describing a set of samples and how a sample player should play them. It explicitly doesn't include the samples in the file, unlike Soundfonts or GigaSampler sets (but similarly to a number of other proprietry binary formats). As the description is a text file, it's very easy to create and - more importantly - easy to tweak.

I've written a more in depth description that you can find here and the rgc:audio description is here.

An initial attempt at Notepad++ styling is available here (but should be considered work in progress - if someone has a better one, please let me know).

If manually tweaking text files isn't for you, Steve Holt has created a graphical interface to the format. It's still under development and you can read about it on his site.

However, if you really enjoy command line text processing tools, I've a few PERL scripts that I used to create the mappings. Note that I ran all this under GNU BASH rather than Microsoft CMD.

NOTE: Due to apparently unalterable server configuration issues with GoDaddy, I have had to name all the script ending with ".pl-remove" rather than ".pl". Please remove "-remove".

makesfz.pl and spansfz.pl are used to process a directory listing of "properly-named" samples (e.g. "instrument C#2.wav", etc). If multiple velocity layers are present, some manual intervention (or clever use of the sort command) is required.

dropoct.pl and raiseoct.pl adjust files made with the above scripts - there are different standards for naming octaves, so these are handy!

Finally, qnd_sf2tosfz.pl and sf2tosfz.pl post-process the decompilation output of SF2comp.EXE (a soundfont compiler/decompiler). sf2tosfz.pl does a fairly complete effort (bar SF2 modulators - I might fix them up one day). Handy if you have a soundfont you want to tweak but detest soundfont editors.

One way to get some idea what's going on inside a soundfont is to use SF2COMP (mentioned elsewhere on this site). It appears to live here, including the source. Better is to use sfZed, though.

As mentioned above, sfZed produces sfz format mappings from soundfonts. I still like to hack the maps by hand, so I created this script to simplify the sfZed output. It's currently customised towards drumkits but it should be fairly easy to tweak for other purposes.

You might also find the following command line of some use:
find -type d | grep -v '^\.$' | while read dir; do find "$dir" -iname '*.wav' | sed -e 's,/,\\,g' | (cd /d/Dynamic/Projects/sfz\ format/; makesfz.pl | sort | spansfz.pl) > "${dir}.sfz"; echo "$dir" ; done

Note: when using an sfz format file, sfz currently loads all referenced samples into memory as 32 bit samples (even if the file is 16 bit), so you need a fairly generous amount of RAM to get the best from it. A "direct from disk" mode is in the works. You can read about developments on sfz in the rgc:audio forum on KVRaudio.

For a more in depth discussion of velocity mapping, see the Amplifier section of my sfz documentation. There is also a link to another handy utility. You might then find the following find/replace command handy:
Find: // \(\d+\):\s+\(.*\)\s+(-[\d.]+)$
Replace: <region> lovel=000 hivel=\1 amp_velcurve_\1=1 sample=..\Wav\\2
(changing "..\Wav\" as required for the sample set).

Where are the mappings?

I have a few groups of mappings available from this site. None of the samples are here (nearly)! The index pages below direct you to the appropriate place.


Valid XHTML 1.1! Valid CSS!

© 2004-13 Peter L Jones. All rights reserved. You are granted a royalty-free right to use the sfz format mappings held on this site for any purpose. If you make a derived work of the mappings, please remove any reference to me or to this site.

If you find any problems with the mappings, please let me know: < peter !at! drealm !dot! info >

You are granted a royalty-free right to use any of the other information on the site subject to acknowledgement.

Main index

Last updated: 17 November 2013
Added DSmolken's double bass.
10 July 2013: Added initial Notepad++ styler.
20 December 2012: Added "-remove" to all perl script links due to b0rkage by GoDaddy. Updated email address.
25 May 2011: There are now multiple Analogue Drums mappings.
23 September 2009: Update location of SFZ and add location of multi-core version.
3 June 2009: Updated link to "official" SFZ documentation; passing mention of VelLeveler added; added Big Mono kit
22 January 2009: Atelier Robin re-releases the free kit!
6 December 2008: Added Gregjazz's Jazz Funk Kit.
22 November 2007: Added link to Project5 freeware download site
14 November 2007: Added link to WayBackMachine's archive, comment on Cakewalk, explain files
17 April 2006: Added John R Tay's Solo mappings.
8 October 2005: Added GIRO's free kits.
4 February 2005: Added link to SF2COMP at last.
23 January 2005: Added sfZed_rfmt.pl
22 January 2005: Amended KVRaudio mappings link description.
18 January 2005: Added Music Tech Magazine mappings page.
3 January 2005: Replace link to KVR thread for sfZed with Steve's website.
1 January 2005: Website reorganisation.
21 November 2004: Added Session Loop's free drum kit.
21 September 2004: Added The Optimist's drum kit.
17 July 2004: Linked plj-sfz.html: my write up on sfz format; made XHTML1.1 and CSS2.1 compliant; updated description for sf2tosfz.pl to reflect the fact it's been updated.
7 July 2004: "Final" version of sf2tosfz.pl uploaded: identifies Modulator settings
5 July 2004: Simplified sf2tosfz.pl uploaded - should be easier to read :-)
4 July 2004: Mostly re-written version of sf2tosfz.pl uploaded
3 July 2004: Added sf2tosfz.pl
2 July 2004: Command pipeline example added