|
SFZ support in LinuxSampler
|
SFZ is an open file format for samplers, currently evolving to a standard
among many commercial samplers. The articulation files are ordinary human
readable text files, which can be viewed and edited with any ordinary text
editor. This page documents the current status of LinuxSampler regarding
support of the SFZ format. Since development of the SFZ format engine in
LinuxSampler is quickly evolving, this page may not be always up to date,
so please also check the latest Subversion commits on our frontsite.
Since there is currently no useful or complete SFZ reference documentation available for
free on the net, we started creating one.
Wanna help us to complete this SFZ reference documentation? Great, get in touch with us!
Keep in mind, the better the SFZ format becomes documented, the better we can assure it
will be implemented correctly and the better it can evolve to become a real standard
among sample players!
|
SFZ v1 opcodes
The SFZ version 1 opcodes are defined in the SFZ File Format Specification.
<region> | Yes | |
<group> | Yes | |
sample | Yes | |
lochan | Yes | |
hichan | Yes | |
lokey | Yes | |
hikey | Yes | |
key | Yes | |
lovel | Yes | |
hivel | Yes | |
loccN | Yes | |
hiccN | Yes | |
lobend | Yes | |
hibend | Yes | |
lochanaft | Yes | |
hichanaft | Yes | |
lopolyaft | No | |
hipolyaft | No | |
lorand | Yes | |
hirand | Yes | |
lobpm | No | |
hibpm | No | |
seq_length | Yes | |
seq_position | Yes | |
sw_lokey | Yes | |
sw_hikey | Yes | |
sw_last | Yes | |
sw_down | Yes | |
sw_up | Yes | |
sw_previous | Yes | |
sw_vel | No | |
trigger | Yes | |
group | Yes | |
off_by | Yes | Alias: offby |
off_mode | Yes | Alias: offmode |
on_loccN | Yes | |
on_hiccN | Yes | |
delay | Yes | |
delay_random | Yes | |
delay_ccN | Yes | v2-alias: delay_onccN |
offset | Yes | |
offset_random | No | |
offset_ccN | No | v2-alias: offset_onccN |
end | Yes | |
count | No | |
loop_mode | Partial | Alias: loopmode Supported values: no_loop, one_shot, loop_continuous Unsupported value: loop_sustain |
loop_start | Yes | Alias: loopstart |
loop_end | Yes | Alias: loopend |
sync_beats | No | |
sync_offset | No | |
transpose | Yes | |
tune | Yes | |
pitch_keycenter | Yes | |
pitch_keytrack | Partial | Zero is correct (no change in pitch) but all other values are interpreted as 100. |
pitch_veltrack | Yes | |
pitch_random | No | |
bend_up | No | Alias: bendup |
bend_down | No | Alias: benddown |
bend_step | No | |
pitcheg_delay | Yes | |
pitcheg_start | Yes | |
pitcheg_attack | Yes | |
pitcheg_hold | Yes | |
pitcheg_decay | Yes | |
pitcheg_sustain | Yes | |
pitcheg_release | Yes | |
pitcheg_depth | Yes | |
pitcheg_vel2delay | Yes | |
pitcheg_vel2attack | Yes | |
pitcheg_vel2hold | Yes | |
pitcheg_vel2decay | Yes | |
pitcheg_vel2sustain | Yes | |
pitcheg_vel2release | Yes | |
pitcheg_vel2depth | No | |
pitchlfo_delay | Yes | |
pitchlfo_fade | Yes | |
pitchlfo_freq | Yes | |
pitchlfo_depth | Yes | |
pitchlfo_depthccN | Yes | |
pitchlfo_depthchanaft | Yes | |
pitchlfo_depthpolyaft | No | |
pitchlfo_freqccN | Yes | |
pitchlfo_freqchanaft | Yes | |
pitchlfo_freqpolyaft | No | |
fil_type | Yes | Alias: filtype Supported v1 values (all): lpf_1p, hpf_1p, lpf_2p, hpf_2p, bfp_2p, brf_2p. Supported v2 values: lpf_4p, hpr_4p, lpf_6p, hpf_6p. Unsupported v2 values: bpf_1p, brf_1p, apf_1p, pkf_2p, lpf_2p_sv, hpf_2p_sv, bpf_2p_sv, brf_2p_sv, comb, pink. |
cutoff | Yes | |
cutoff_ccN | Yes | v2-alias: cutoff_onccN |
cutoff_chanaft | Yes | |
cutoff_polyaft | No | |
resonance | Yes | |
fil_keytrack | Yes | |
fil_keycenter | Yes | |
fil_veltrack | Yes | |
fil_random | No | |
fileg_delay | Yes | |
fileg_start | Yes | |
fileg_attack | Yes | |
fileg_hold | Yes | |
fileg_decay | Yes | |
fileg_sustain | Yes | |
fileg_release | Yes | |
fileg_depth | Yes | |
fileg_vel2delay | Yes | |
fileg_vel2attack | Yes | |
fileg_vel2hold | Yes | |
fileg_vel2decay | Yes | |
fileg_vel2sustain | Yes | |
fileg_vel2release | Yes | |
fileg_vel2depth | No | |
fillfo_delay | Yes | |
fillfo_fade | Yes | |
fillfo_freq | Yes | |
fillfo_depth | Yes | |
fillfo_depthccN | Yes | |
fillfo_depthchanaft | Yes | |
fillfo_depthpolyaft | No | |
fillfo_freqccN | Yes | |
fillfo_freqchanaft | Yes | |
fillfo_freqpolyaft | No | |
volume | Yes | |
pan | Yes | Works, but can be fine-tuned. sfzplayer uses L=cos((100 + pan) / 200 * pi / 2) * sqrt(2), Dimension LE uses L=sqrt((100 - x) / 100), but LS uses a line segment approximation measured from GigaStudio, which lies somewhere between to other two. |
width | No | |
position | No | |
amp_keytrack | No | |
amp_keycenter | No | |
amp_veltrack | Yes | |
amp_velcurve_N | Yes | |
amp_random | No | |
rt_decay | Yes | |
output | No | |
gain_ccN | No | v2-alias: gain_onccN |
xfin_lokey | Yes | |
xfin_hikey | Yes | |
xfout_lokey | Yes | |
xfout_hikey | Yes | |
xf_keycurve | Yes | |
xfin_lovel | Yes | |
xfin_hivel | Yes | |
xfout_lovel | Yes | |
xfout_hivel | Yes | |
xf_velcurve | Yes | |
xfin_loccN | Yes | |
xfin_hiccN | Yes | |
xfout_loccN | Yes | |
xfout_hiccN | Yes | |
xf_cccurve | Yes | |
ampeg_delay | Yes | |
ampeg_start | Yes | |
ampeg_attack | Yes | |
ampeg_hold | Yes | |
ampeg_decay | Yes | |
ampeg_sustain | Yes | |
ampeg_release | Yes | |
ampeg_vel2delay | Yes | |
ampeg_vel2attack | Yes | |
ampeg_vel2hold | Yes | |
ampeg_vel2decay | Yes | |
ampeg_vel2sustain | Yes | |
ampeg_vel2release | Yes | |
ampeg_delayccN | Yes | v2-alias: ampeg_delay_onccN |
ampeg_startccN | Yes | v2-alias: ampeg_start_onccN |
ampeg_attackccN | Yes | v2-alias: ampeg_attack_onccN |
ampeg_holdccN | Yes | v2-alias: ampeg_hold_onccN |
ampeg_decayccN | Yes | v2-alias: ampeg_decay_onccN |
ampeg_sustainccN | Yes | v2-alias: ampeg_sustain_onccN |
ampeg_releaseccN | Yes | v2-alias: ampeg_release_onccN |
amplfo_delay | Yes | |
amplfo_fade | Yes | |
amplfo_freq | Yes | |
amplfo_depth | Yes | |
amplfo_depthccN | Yes | |
amplfo_depthchanaft | Yes | |
amplfo_depthpolyaft | No | |
amplfo_freqccN | Yes | |
amplfo_freqchanaft | Yes | |
amplfo_freqpolyaft | No | |
eq1_freq | Yes | The EQ is implemented by using an external LADSPA plugin, triplePara. |
eq2_freq | Yes | |
eq3_freq | Yes | |
eq1_freqccN | Yes | v2-alias: eq1_freq_onccN |
eq2_freqccN | Yes | v2-alias: eq2_freq_onccN |
eq3_freqccN | Yes | v2-alias: eq3_freq_onccN |
eq1_vel2freq | Yes | |
eq2_vel2freq | Yes | |
eq3_vel2freq | Yes | |
eq1_bw | Yes | |
eq2_bw | Yes | |
eq3_bw | Yes | |
eq1_bwccN | Yes | v2-alias: eq1_bw_onccN |
eq2_bwccN | Yes | v2-alias: eq2_bw_onccN |
eq3_bwccN | Yes | v2-alias: eq3_bq_onccN |
eq1_gain | Yes | |
eq2_gain | Yes | |
eq3_gain | Yes | |
eq1_gainccN | Yes | v2-alias: eq1_gain_onccN |
eq2_gainccN | Yes | v2-alias: eq2_gain_onccN |
eq3_gainccN | Yes | v2-alias: eq3_gain_onccN |
eq1_vel2gain | Yes | |
eq2_vel2gain | Yes | |
eq3_vel2gain | Yes | |
effect1 | No | |
effect2 | No | |
SFZ v2 opcodes
The SFZ version 2 opcodes are listed in the book Cakewalk Synthesizers: From Presets to Power User by Simon Cann.
The list below is not quite complete, the book also has opcodes for a noise generator and SFZ v2 effects.
<global> | Yes | |
<control> | Yes | |
<curve> | Yes | |
<effects> | No | |
md5 | No | |
waveguide | No | |
default_path | Yes | |
octave_offset | Yes | |
note_offset | Yes | |
set_ccN | Yes | |
#define | Yes | |
load_mode | No | |
load_start | No | |
load_end | No | |
sample_quality | No | |
image | No | |
oscillator | No | |
oscillator_phase | No | |
oscillator_quality | No | |
oscillator_table_size | No | |
oscillator_multi | No | |
oscillator_mode | No | |
oscillator_detune | No | |
oscillator_detune_onccN | No | |
oscillator_detune_smoothccN | No | Not listed in the book, but recognized by Dimension LE. |
oscillator_detune_stepccN | No | Not listed in the book, but recognized by Dimension LE. |
oscillator_detune_curveccN | No | Not listed in the book, but recognized by Dimension LE. |
oscillator_mod_depth | No | |
oscillator_mod_depth_onccN | No | |
oscillator_mod_smoothccN | No | |
loprog | No | |
hiprog | No | |
lotimer | No | |
hitimer | No | |
polyphony | No | |
reverse_loccN | No | |
reverse_hiccN | No | |
start_loccN | No | |
start_hiccN | No | |
stop_loccN | No | |
stop_hiccN | No | |
sustain_sw | No | |
sustenuto_sw | No | |
rt_dead | No | |
delay_beats | No | |
stop_beats | No | |
delay_samples | Yes | |
delay_samples_onccN | Yes | |
loop_crossfade | No | |
volume_onccN | Yes | Not listed in the book, but recognized by Dimension LE. |
volume_smoothccN | Yes | Not listed in the book, but recognized by Dimension LE. |
volume_stepccN | Yes | Not listed in the book, but recognized by Dimension LE. |
volume_curveccN | Yes | Not listed in the book, but recognized by Dimension LE. |
pan_onccN | Yes | Not listed in the book, but recognized by Dimension LE. |
pan_smoothccN | Yes | Not listed in the book, but recognized by Dimension LE. |
pan_stepccN | Yes | Not listed in the book, but recognized by Dimension LE. |
pan_curveccN | Yes | Not listed in the book, but recognized by Dimension LE. |
width_onccN | No | Not listed in the book, but recognized by Dimension LE. |
width_smoothccN | No | Not listed in the book, but recognized by Dimension LE. |
width_stepccN | No | Not listed in the book, but recognized by Dimension LE. |
width_curveccN | No | Not listed in the book, but recognized by Dimension LE. |
pitch_onccN | Yes | |
pitch_curveccN | Yes | |
pitch_stepccN | Yes | |
pitch_smoothccN | Yes | Not listed in the book, but recognized by Dimension LE. |
bend_stepup | No | |
bend_stepdown | No | |
fil2_type | No | |
cutoff2 | No | |
cutoff2_onccN | No | |
cutoff_smoothccN | Yes | |
cutoff2_smoothccN | No | |
cutoff_stepccN | Yes | |
cutoff2_stepccN | No | |
cutoff_curveccN | Yes | |
cutoff2_curveccN | No | |
resonance2 | No | |
resonance_onccN | Yes | |
resonance2_onccN | No | |
resonance_smoothccN | Yes | |
resonance2_smoothccN | No | |
resonance_stepccN | Yes | |
resonance2_stepccN | No | |
resonance_curveccN | Yes | |
resonance2_curveccN | No | |
fil2_keytrack | No | |
fil2_keycenter | No | |
fil2_veltrack | No | |
egN_timeX | Yes | |
egN_timeX_onccY | Yes | |
egN_levelX | Yes | |
egN_levelX_onccY | Yes | |
egN_shapeX | Yes | |
egN_curveX | No | |
egN_sustain | Yes | |
egN_loop | No | |
egN_loop_count | No | |
egN_volume | Yes | |
egN_amplitude | Yes | |
egN_pan | Yes | |
egN_width | No | |
egN_pan_curve | Yes | |
egN_pan_curveccX | Yes | |
egN_volume_onccX | Yes | |
egN_amplitude_onccX | Yes | |
egN_pan_onccX | Yes | |
egN_width_onccX | No | |
egN_freq_lfoX | No | |
egN_depth_lfoX | No | |
egN_depthadd_lfoX | No | |
egN_pitch | Yes | |
egN_pitch_onccX | Yes | |
egN_cutoff | Yes | |
egN_cutoff2 | No | |
egN_resonance | Yes | |
egN_resonance2 | No | |
egN_cutoff_onccX | Yes | |
egN_cutoff2_onccX | No | |
egN_resonance_onccX | Yes | |
egN_resonance2_onccX | No | |
egN_eq1freq | Yes | |
egN_eq2freq | Yes | |
egN_eq3freq | Yes | |
egN_eq1bw | Yes | |
egN_eq2bw | Yes | |
egN_eq3bw | Yes | |
egN_eq1gain | Yes | |
egN_eq2gain | Yes | |
egN_eq3gain | Yes | |
egN_eq1freq_onccX | Yes | |
egN_eq2freq_onccX | Yes | |
egN_eq3freq_onccX | Yes | |
egN_eq1bw_onccX | Yes | |
egN_eq2bw_onccX | Yes | |
egN_eq3bw_onccX | Yes | |
egN_eq1gain_onccX | Yes | |
egN_eq2gain_onccX | Yes | |
egN_eq3gain_onccX | Yes | |
egN_decim | No | |
egN_bitred | No | |
egN_rectify | No | |
egN_ringmod | No | |
egN_noiselevel | No | |
egN_noisestep | No | |
egN_noisetone | No | |
egN_driveshape | No | |
egN_decim_onccX | No | |
egN_bitred_onccX | No | |
egN_rectify_onccX | No | |
egN_ringmod_onccX | No | |
egN_noiselevel_onccX | No | |
egN_noisestep_onccX | No | |
egN_noisetone_onccX | No | |
egN_driveshape_onccX | No | |
lfoN_freq | Yes | |
lfoN_freq_onccX | Yes | |
lfoN_freq_smoothccX | Yes | |
lfoN_freq_stepccX | Yes | |
lfoN_delay | Yes | |
lfoN_delay_onccX | Yes | |
lfoN_fade | Yes | |
lfoN_fade_onccX | Yes | |
lfoN_phase | Yes | |
lfoN_phase_onccX | Yes | |
lfoN_count | No | |
lfoN_wave | Yes | |
lfoN_steps | No | |
lfoN_stepX | No | |
lfoN_smooth | No | |
lfoN_smooth_onccX | No | |
lfoN_volume | Yes | |
lfoN_amplitude | No | |
lfoN_pan | Yes | |
lfoN_width | No | |
lfoN_volume_onccX | Yes | |
lfoN_amplitude_onccX | No | |
lfoN_pan_onccX | Yes | |
lfoN_width_onccX | No | |
lfoN_volume_smoothccX | Yes | |
lfoN_amplitude_smoothccX | No | |
lfoN_pan_smoothccX | Yes | |
lfoN_width_smoothccX | No | |
lfoN_volume_stepccX | Yes | |
lfoN_amplitude_stepccX | No | |
lfoN_pan_stepccX | Yes | |
lfoN_width_stepccX | No | |
lfoN_freq_lfoX | No | |
lfoN_depth_lfoX | No | |
lfoN_depthadd_lfoX | No | |
lfoN_pitch | Yes | |
lfoN_pitch_onccX | Yes | |
lfoN_pitch_smoothccX | Yes | |
lfoN_pitch_stepccX | Yes | |
lfoN_cutoff | Yes | |
lfoN_cutoff2 | No | |
lfoN_resonance | Yes | |
lfoN_resonance2 | No | |
lfoN_cutoff_onccX | Yes | |
lfoN_cutoff2_onccX | No | |
lfoN_resonance_onccX | Yes | |
lfoN_resonance2_onccX | No | |
lfoN_cutoff_smoothccX | Yes | |
lfoN_cutoff2_smoothccX | No | |
lfoN_resonance_smoothccX | Yes | |
lfoN_resonance2_smoothccX | No | |
lfoN_cutoff_stepccX | Yes | |
lfoN_cutoff2_stepccX | No | |
lfoN_resonance_stepccX | Yes | |
lfoN_resonance2_stepccX | No | |
lfoN_eq1freq | Yes | |
lfoN_eq2freq | Yes | |
lfoN_eq3freq | Yes | |
lfoN_eq1bw | Yes | |
lfoN_eq2bw | Yes | |
lfoN_eq3bw | Yes | |
lfoN_eq1gain | Yes | |
lfoN_eq2gain | Yes | |
lfoN_eq3gain | Yes | |
lfoN_eq1freq_onccX | Yes | |
lfoN_eq2freq_onccX | Yes | |
lfoN_eq3freq_onccX | Yes | |
lfoN_eq1bw_onccX | Yes | |
lfoN_eq2bw_onccX | Yes | |
lfoN_eq3bw_onccX | Yes | |
lfoN_eq1gain_onccX | Yes | |
lfoN_eq2gain_onccX | Yes | |
lfoN_eq3gain_onccX | Yes | |
lfoN_eq1freq_smoothccX | Yes | |
lfoN_eq2freq_smoothccX | Yes | |
lfoN_eq3freq_smoothccX | Yes | |
lfoN_eq1bw_smoothccX | Yes | |
lfoN_eq2bw_smoothccX | Yes | |
lfoN_eq3bw_smoothccX | Yes | |
lfoN_eq1gain_smoothccX | Yes | |
lfoN_eq2gain_smoothccX | Yes | |
lfoN_eq3gain_smoothccX | Yes | |
lfoN_eq1freq_stepccX | Yes | |
lfoN_eq2freq_stepccX | Yes | |
lfoN_eq3freq_stepccX | Yes | |
lfoN_eq1bw_stepccX | Yes | |
lfoN_eq2bw_stepccX | Yes | |
lfoN_eq3bw_stepccX | Yes | |
lfoN_eq1gain_stepccX | Yes | |
lfoN_eq2gain_stepccX | Yes | |
lfoN_eq3gain_stepccX | Yes | |
lfoN_decim | No | |
lfoN_bitred | No | |
lfoN_noiselevel | No | |
lfoN_noisestep | No | |
lfoN_noisetone | No | |
lfoN_drive | No | |
lfoN_decim_onccX | No | |
lfoN_bitred_onccX | No | |
lfoN_noiselevel_onccX | No | |
lfoN_noisestep_onccX | No | |
lfoN_noisetone_onccX | No | |
lfoN_drive_onccX | No | |
lfoN_decim_smoothccX | No | |
lfoN_bitred_smoothccX | No | |
lfoN_noiselevel_smoothccX | No | |
lfoN_noisestep_smoothccX | No | |
lfoN_noisetone_smoothccX | No | |
lfoN_drive_smoothccX | No | |
lfoN_decim_stepccX | No | |
lfoN_bitred_stepccX | No | |
lfoN_noiselevel_stepccX | No | |
lfoN_noisestep_stepccX | No | |
lfoN_noisetone_stepccX | No | |
lfoN_drive_stepccX | No | |
vN | Yes | |
ARIA custom opcodes
The ARIA Engine from Plogue / Garritan implements some custom sfz opcodes. Only some of them are listed here.
<master> | Yes | |
amplitude | Yes | |
amplitude_onccN | No | |
amplitude_smoothccN | No | |
amplitude_curveccN | No | |
pan_law | No | |
#include | Yes | |
LinuxSampler opcodes
The following LinuxSampler custom opcodes are planned to be implemented as extensions to the SFZ format.
script | Yes | |
position_onccN | No | |
position_smoothccN | No | |
position_curveccN | No | |
gain_smoothccN | No | |
gain_curveccN | No | |
transpose_onccN | No | |
transpose_smoothccN | No | |
transpose_curveccN | No | |
tune_onccN | No | |
tune_smoothccN | No | |
tune_curveccN | No | |
cutoff2_chanaft | No | |
cutoff2_polyaft | No | |
fil2_random | No | |
egN_position | No | |
egN_position_onccX | No | |
lfoN_depth | No | |
lfoN_depth_onccX | No | |
lfoN_position | No | |
lfoN_position_onccX | No | |
lfoN_position_smoothccX | No | |
lfoN_position_stepccX | No | |
amplfo_delay_onccN | Yes | |
amplfo_fade_onccN | Yes | |
fileg_delay_onccN | Yes | |
fileg_start_onccN | Yes | |
fileg_attack_onccN | Yes | |
fileg_hold_onccN | Yes | |
fileg_decay_onccN | Yes | |
fileg_sustain_onccN | Yes | |
fileg_release_onccN | Yes | |
fileg_depth_onccN | Yes | |
fillfo_delay_onccN | Yes | |
fillfo_fade_onccN | Yes | |
pitcheg_delay_onccN | Yes | |
pitcheg_start_onccN | Yes | |
pitcheg_attack_onccN | Yes | |
pitcheg_hold_onccN | Yes | |
pitcheg_decay_onccN | Yes | |
pitcheg_sustain_onccN | Yes | |
pitcheg_release_onccN | Yes | |
pitcheg_depth_onccN | Yes | |
pitchlfo_delay_onccN | Yes | |
pitchlfo_fade_onccN | Yes | |
|