SFZ format documentation

Sampler and Sampling discussion (techniques, tips and tricks, etc.)
Post Reply New Topic
RELATED
PRODUCTS
Bjoerns Sample Mapper

Post

Got a new tutorial explaining how to do typical subtractive synth filters, envelopes, vibrato, unison, and some fancy variations thereof, basically using my recent Caveman Cosmonaut freebie as the example and explaining how I've done all the modulations there. I might later add things that aren't in that particular instrument, such as series highpass and lowpass filters, separate envelope for noise oscillator etc.

https://sfzformat.com/tutorials/subtractive_synths

Also various updates here and there. Devs working on new SFZ players and editors have been doing a lot of testing of how ARIA and Dimension Pro works, so now opcodes which were just sort of vaguely documented are being documented with a lot more precision. We've also "discovered" more extended ARIA CCs 150 and above, which we need to document. So the documentation is very much constantly growing.

Post

Nice! This is THE definitive SFZ source!! :D
C/R, dongles & other intrusive copy protection equals less-control & more-hassle for consumers. Company gone-can’t authorize. Limit to # of auths. Instability-ie PACE. Forced internet auths. THE HONEST ARE HASSLED, NOT THE PIRATES.

Post

Wow, thank you so much! :hug:

Post

Thanks. And https://sfzformat.com/extensions/midi_ccs now has all the extended ARIA CCs documented up to 152.

Post

DSmolken wrote: Thu Feb 20, 2020 3:24 pm Thanks. And https://sfzformat.com/extensions/midi_ccs now has all the extended ARIA CCs documented up to 152.
Thanks for your hardworks :tu: , the site is awesome!

Post

Amazing work, thank you!

Post

Hi all,
some findings using rgc:audio sfz version 2.0.0.1 and plogue sforzando v1.959 (Aria VST3.x plugin v2.059):

sfz Multitimbral / MIDI Multimode:
- on the first instrument you want to use in multi-mode add lochan=1 hichan=1 underneath all its <group> tags.
- Repeat on the next instrument you want to use in multi-mode with lochan=2 hichan=2 after <group>.
- can do that up to lochan=16 hichan=16
- load each modified *.sfz file one by one and verify it gets triggered on the intended channel only
- then copy all these different *.sfz into one large *.sfz file
- load that large file into rgc:audio sfz. You can now address the instruments on their corresponding channels. Nice: most of the registered MIDI controllers work for each channel independently. So you can change volume (cc07), pan(cc10), expression(cc1), reverb(cc91) ... for each instrument seperately.

(Works with rgc:audio sfz. Not working with plogue sforzando - where you would use multiple instances instead.)


MIDI Program/Patch Changes:
Although there seems to be no response for bank and patch change, a simple workaround can enable switching programs via MIDI:
Similar to the multimode method described above, you can store different instruments into one large *.sfz. Instead of the lochan and hichan filter, define a dedicated controller you want to use for program switching. For each instrument (that is for all <group> of one instrument/patch/program) define a corresponding value for that controller via loccNN and hiccNN

eg. for cc32:
<group> // patch 1
locc32=1 hicc32=1
...
<group> //patch 2
locc32=2 hicc32=2
...


In the MIDI file controller 32 = 1 will cause patch 1 to respond to all following note on and off. Sending controller 32 = 2 will cause patch 2 to respond thereafter.

Tested working with:
CC01
CC02
CC32 (Bank Select LSB)

NOT working with:
CC00 (Bank Select MSB)
CC06 (Data Entry)
CC38 (Data Entry)

(Works with both rgc:audio sfz and plogue sforzando)

A combination of multimode and program switching did not work. So it is either multi-channel (MIDI multi mode) or switchable multi patches (on one MIDI channel only) with predefined programs.


List of registered sfz standard MIDI controllers:
Note On/Off
Pitch Bend (default to ±2 semitones)
Modulation Wheel (CC1)
Volume (CC7)
Pan (CC10)
Expression (CC11)
Reverb Size (CC12)
Chorus Speed (CC13)
Sustain (CC64)
Attack (CC73)
Cutoff (CC74)
Hold (CC76)
Decay (CC75)
Reverb Level (CC91)
Chorus Level (CC93)
Sustain (CC70)
Release (CC72)
All Controllers Off (CC121)
All Notes Off (CC123)
These seem to be channel-sensitive. Which allows for different settings on different channels.

Caution: cc91 will stubbornly overwrite all effect1 definitions. So if you use different effect1 (reverb) definitions in your sfz file, (e. g. in a drum set), don't use cc91 ! May need to restart the DAW to get rid of the cc91 tenacity ...


Compatibility:
In order to get a similar response to CC11 of a sfz v1.0 file (rgc:audio sfz) on plogue sforzando add the following to the sfz file:

<global>
amplitude_oncc11=100
<control>
label_cc011=11 Expression
set_cc011=127 // Power-on Default Value: Expression


Couldn't find an appropriate solution for filter cutoff, however.
rgc:audio sfz automatically responds to cc74 (cutoff)
For sfzorzando the opcode cutoff_cc74=9600 is necessary. Works, but results are completely different.

Best regards

Post

Thanks for posting that. It's a good point that some CCs act "funny" and it's best to stay away from them for anything other than their intended purpose. Piano pedal CCs and CC 123 are definitely ones I've run into problems with, though never was sure whether it's a plugin problem or a DAW problem. I've used CC 91 for a volume control in a drum kit without noticing any issues, but who knows what would happen if someone also tries to use the built-in reverb...

Post

Bruzz wrote: Sun Mar 15, 2020 8:24 pm For sfzorzando the opcode cutoff_cc74=9600 is necessary. Works, but results are completely different.

Best regards
I think you need to define your cutoff base value to enable filter in sforzando, eg,

cutoff=20
cutoff_oncc74=9600

Post

Yes, that is correct. I was aware of that. Still the audible results couldn't be more different in rgc:audio sfz vs. sforzando ...

Post

The weird thing in SFZ is that filter cutoff base is in Hertz, with a fil_keytrack opcode which can be set, but filter cutoff modulation is in cents, and that keytracks 100% whether you want it to or not. It's possible to get around this with var, and I documented that in the subtractive synths tutorial, but it's only across that particular instrument's range, still has some cutoff keytracking just because I liked that with the particular instrument etc. But analyze some output from rgc:audio sfz, do some math, and it could probably be emulated in Sforzando using var.

Post

DSmolken wrote: Mon Mar 16, 2020 6:56 am But analyze some output from rgc:audio sfz, do some math, and it could probably be emulated in Sforzando using var.
Btw, i was also curious about the default amp_veltrack curve in rgc sfz, then i made a test analyzing its output volume by velocity values. And voila! It is identical to sforzando, example : amp_veltrack=99 will result to vel 1 = -40dB
David really did a great implementation :tu: :tu:

Post

@DSmolken: FYI Regarding -- https://sfzformat.com/software/players/

TAL Sampler (along with TAL's other apps) now have Linux Support. The player chart needs to be updated to reflect that TAL Sampler supports Linux now. :-)

https://tal-software.com/

Native Linux support 10.03.2020
Updated TAL-BassLine-101 linux build. Following experimental native Linux builds are available:

TAL-BassLine-101
TAL-U-NO-LX
TAL-MOD
TAL-Sampler
TAL-DAC
TAL-Dub-X
TAL-Reverb-4
TAL-Chorus-LX
Feedback and bug reports welcome!
C/R, dongles & other intrusive copy protection equals less-control & more-hassle for consumers. Company gone-can’t authorize. Limit to # of auths. Instability-ie PACE. Forced internet auths. THE HONEST ARE HASSLED, NOT THE PIRATES.

Post

Thanks, I'll have to check whether the OS support there is something I can just edit directly in the page or if we have it stored in a YAML file somewhere behind it, but I'll get it updated.

We also have a new tutorial just about ready to go, not linked from the main page yet, but as long as I'm posting in this thread might as well post the link here. https://sfzformat.com/tutorials/unison explains how to use transposition and unison to emulate larger sections, turn solo instruments into ensembles, double-track guitars etc.

Post

DSmolken wrote: Wed Aug 01, 2018 8:50 am Documentation about the SFZ format is scattered, incomplete, and makes it difficult for new users to get started. I'm trying to do something about that.
:party: :love:

I have no idea what happened to that nice thick book that came with Dimension during my hiatus & various upheavals over the years so this is fantastic thank you thank you thank you
Don't feed the gators,y'all
https://m.soundcloud.com/tonedeadj

Post Reply

Return to “Samplers, Sampling & Sample Libraries”