Knobwerk

← Search

E.3 REGION OPCODES

APPENDIX E: SFZ SUPPORT > E.3 REGION OPCODES · PDF p. 123–125 · OS 1.3.3

# E.3 REGION OPCODES

APPENDIX E: SFZ SUPPORT
APPENDIX E: SFZ SUPPORT
The primary and best-supported method of specifying multi-sampled instruments for the Multi player
machine and the sample sets for the Subtracks machine on Tonverk is the native mapping format, which is
found in the .eldrum and .elmulti files included in the factory library.
However, a subset of the SFZ format can be loaded by Tonverk. This document describes the capabilities
and limitations of that subset.
E.1 HEADERS
Tonverk supports the following headers. Note that all headers besides <region> are optional.
•	 <control>
•	 <global>
•	 <master>
•	 <group>
•	 <region>
All of the above, aside from <control>, support the same opcodes but have different scope and override
semantics (see https://sfzformat.com/headers for more information on headers).
E.1.1 OTHER HEADERS
•	 <curve> headers are allowed to be present, but are ignored.
•	 <effect>, <midi>, and <sample> headers are not supported, and files containing them will fail to load.
E.2 CONTROL OPCODES
Under the <control> header, the following opcodes are supported:
•	 default_path sets the path where files are loaded relative to. Please note that the behavior of some
players, which allows file-name prefixes in addition to distinct pathelements, is not supported.
•	 note_offset transposes all regions by a number of semitones.
•	 octave_offset transposes all regions by a number of octaves.
For more information about opcodes, please see https://sfzformat.com/opcodes/
E.2.1 IGNORED CONTROL OPCODES
For convenience, the following opcodes are ignored and will not cause an error if they are present:
•	 hint_load_method
•	 label_cc_*
•	 set_cc_*
Any other opcodes provided under the <control> header will result in an error.
E.3 REGION OPCODES
Headers <global>, <master>, <group>, and <region> all support the same set of opcodes.
Pitch values can be specified as numeric MIDI key values or in IPN, where MIDI note 0 is called “C-1”
(and consequently, middle C is C4).
E.3.1 REQUIRED OPCODES
A region (or a group, master, or global header preceding it) must minimally specify a sample (sample=...)
and a pitch (via either key=... or pitch_keycenter=...). Regions that fail to meet this criterion will be
ignored.
The sample opcode is a file path, relative to the location of the SFZ file. Use UNIX-style paths
(with forward slashes) for best results.
Special rules for file names.
•	 Space (blank) characters are allowed.
•	 Equals (=) and balanced angle brackets (e.g. My<Sample>.wav) are not allowed.
•	 Comment-opening tokens (// or /*) are forbidden.
•	 Any trailing blank characters are ignored.

APPENDIX E: SFZ SUPPORT
The “root note” of the sample can be specified via pitch_keycenter (note that the special value
pitch_keycenter=sample is not supported). If it is not provided, then the key opcode is required.
All other opcodes are optional.
E.3.2 ZONES
•	 lokey and hikey are processed and checked for overlap, but are not used internally. Instead, incom­
ing notes are played using the key zone with the nearest root note.
•	 lovel and hivel define velocity layers. Up to 128 velocity layers are supported in each key zone.
•	 lorand and hirand enable random selection of samples within a velocity layer.
Special considerations:
•	 All regions within the same velocity layer must either specify lorand and hirand, or not.’
•	 All regions within the same velocity layer must specify equal-sized and non-overlapping ranges
of the random space. For example, a velocity layer with 4 samples can be specified like this:
<region> lorand=0.00 hirand=0.25 sample=MySample1.wav
<region> lorand=0.25 hirand=0.50 sample=MySample2.wav
<region> lorand=0.50 hirand=0.25 sample=MySample3.wav
<region> lorand=0.75 hirand=1.00 sample=MySample4.wav
•	 Random distribution is mutually exclusive with ordered round-robin.
•	 seq_length and seq_position enable ordered round-robin within a velocity layer.
Special considerations:
•	 All regions within the same velocity layer must either specify seq_length and seq_position,
or not.
•	 All regions within the same velocity layer must specify the same seq_length.
•	 All regions within the same velocity layer must specify unique seq_position values in
ascending order.
•	 Ordered round-robin is mutually exclusive with random distribution.
E.3.3 PLAYBACK
Sample playback can be modified with the following opcodes:
•	 offset and end set the playback start and end points, respectively. They are integers measured
in audio samples.
•	 loop_start and loop_end define the loop region, if any.
Special considerations:
•	 These opcodes can be spelled either with or without an underscore. If both are present,
with-underscore overrides without-underscore.
•	 Both are integers measured in audio samples.
•	 If not present in the SFZ file, loop points can be read from the SMPL chunk of compatible
WAV files.
•	 The presence of one or both of these opcodes, or a loop region in the WAV file’s metadata,
implies loop_mode=loop_sustain (but this can be overridden via loop_mode=no_loop also
being present.
•	 loop_mode controls both the state and behavior of looping.
Special considerations:
•	 This opcode can be spelled with or without an underscore. If both are present, with-underscore
overrides without-underscore.
•	 loop_mode=one_shot behaves identically to loop_mode=no_loop.
•	 loop_crossfade controls the duration of crossfade at the end of each loop period. It is a float­
ing-point number measured in seconds. Note that it cannot exceed the time between offset and
loop_start, which both default to 0 if unset.
E.3.4 OTHER OPCODES
All other opcodes (including those relating to sound processing) are unsupported and will be ignored.

INDEX
A
ARPEGGIATOR  36
AUDIO ROUTING  17
AUDIO TRACK PARAMETERS  54
Amp  56
Filter  55, 56
LFO  59
Mod envelope  60
SRC  55
Trig  54, 55
AUTO SAMPLER  72
B
BACKUP  24
BREATH CONTROLLER  52
BUS TRACK PARAMETERS  63
C
CHAINS  38
CHORD/SCALE SETUP  30
CLASS COMPLIANT  24
COMPRESSOR  101
CONDITIONAL LOCKS  45
CONNECTORS  16
COPY, PASTE AND CLEAR  46
CREDITS AND CONTACT INFORMATION  83
D
DATA STRUCTURE  19
Patterns  19
Project  19
Samples  19
Songs  19
E
EFFECTS  98
F
FACTORY RESET  78
FILL EDIT MENU  46
FILL MODE  46
FILTER
Base-width  56
Multimode  55
FX MACHINES  98
Bypass  99
Chrono Pitch  99
Comb +/- Filter  100
Compressor  101
Daisy Delay  102
Degrader  102
Dirtshaper  103
Filterbank  104
Frequency Warper  105
Infinite Flanger  106
Lowpass Filter  106
Multimode Filter  107
Panoramic Chorus  107
Phase 98  108
Saturator Delay  109
Supervoid Reverb  110, 111
Warble  112
G
GRID RECORDING MODE  40
I
INSTRUMENTS  33
K
KEYBOARD  30
KEYBOARD SCALES  117
KEY COMBINATIONS  79
L
LED BACKLIGHT  76, 77
LED INTENSITY  76, 77
LFO  59, 60, 61, 65, 67, 70
Modulation destinations  113
M
MACHINES  20, 84
Assigning to track  84
FX Machines  98
SRC Machines  84
MEMORIZE  47
METRONOME  29
MICRO TIMING  42
MIDI CC & NRPN  118
MIDI CONFIG  74
MIDI TRACKS  20, 21
Parameters  95
MIX TRACK PARAMETERS  68
MUTE MODE  31
N
NAMING SCREEN  23
O
OS UPGRADE  24
OVERBRIDGE
USB config  77
P
PAGE SETUP
Page setup menu  43
PANEL LAYOUT  14
PARAMETER LOCKS  44
PATTERN MODES
INDEX

Chunks share pages with neighboring sections; text before/after the section heading belongs to the adjacent sections.