Documents
Writing Docs Gigedit SFZ Instrument Scripts NKSP Language NKSP Reference

SFZ

The SFZ file format is a human readable instrument definition file format for audio sample based virtual instruments. In contrast to many other sampler file formats you can open and modify such .sfz files simply with any text editor.

This SFZ documentation is yet under construction. In the meantime you may want to have a look at the old and currently still separate list of opcodes supported by LinuxSampler. You want to help filling up the missing information about the SFZ file format on this site? Great! Check out the source files of this SFZ documentation on our Subversion server and get in touch with us! There is also a short guide for getting started on writing articles for this site.

Sections

A sfz file is divided into sections. A section defines in which context the subsequent statements in the sfz file shall be interpreted as. For example You may want to declare a lowpass filter to be used either for the entire sfz instrument, or you may declare the lowpass filter to be only used for a certain region on the keyboard instead. A section is introduced by its section name, where the section name is placed in a pair of angle brackets. The section name is then followed by the respective sfz opcodes which shall be assigned to that particular section. The sections available with sfz are:

Section Standard Description
<global> SFZ v1 Declarations which shall apply to the entire instrument.
<group> SFZ v1 TODO ...
<region> SFZ v1 TODO ...
<control> ? TODO ...
<curve> ? TODO ...
<effect> ? TODO ...

Opcodes

The actual individual statements which make up the articulation definition of a sfz instrument are called opcodes. For example there is an opcode for loading and assigning a sample file to be played. And there is an opcode for defining envelope parameters, and so on. The opcodes available with the SFZ file format are:

Opcode Standard Description
hibend SFZ v1 Assign pitch pend upper limit to region.
hichan SFZ v1 Assign MIDI channel upper limit to region.
hikey SFZ v1 Assign MIDI note number upper limit to region.
hirand SFZ v1 Assign random number generator upper limit to region.
hivel SFZ v1 Assign MIDI velocity upper limit to region.
key SFZ v1 Assign precise note number to region.
lobend SFZ v1 Assign pitch bend lower limit to region.
lochan SFZ v1 Assign MIDI channel lower limit to region.
lokey SFZ v1 Assign MIDI note number lower limit to region.
lorand SFZ v1 Assign random number generator lower limit to region.
lovel SFZ v1 Assign MIDI velocity lower limit to region.
sample SFZ v1 Load and assign an audio sample file.
script LinuxSampler Ext. Load an real-time instrument script for the instrument.
seq_length SFZ v1 Defines a round robin length.
seq_position SFZ v1 Assigns a round robin position to a region.
set_ccN SFZ v2 Assign initial value to MIDI controller.
transpose SFZ v1 Transpose by given amount of semi tones.
tune SFZ v1 Fine tuning by given amount of cents.
TODO ...
Document Updated:  2017-05-05  |  Author:  Christian Schoenebeck