How do I load a SoundFont into sfz?
There are two methods:
1- Click on the 'SoundFont' selector. The "Open SoundFont" dialog
will appear, from which you can select the desired soundfont.
2- Drag any .sf2 file from a Windows Explorer window.
note that loading a new SoundFont will replace any SoundFont
already loaded into sfz. Only one SoundFont file can
be loaded in each instance of sfz.
How do I select a preset for each MIDI channel?
1- Select the channel either using the CHANNEL text selector or the channel
menu (by clicking the small arrow in the CHANNEL text selector).
2- Select the desired bank and program using the BANK/PROGRAM text selectors (or menus).
Alternatively, it is possible to send a MIDI Bank/Program Change message
on the appropriate channel to sfz.
Is there any way to preview the selected preset?
Yes. In the
bottom part of sfz interface there's a 'preview ribbon'. Clicking (and
will send MIDI notes to sfz, on the selected channel. The POLYPHONY
indicators will show the number of Voices and Layers played.
vertical position of the mouse inside the preview ribbon determinates
the velocity of the note sfz will play.
pressing left and right mouse buttons simultaneously on the
preview ribbon, sfz will perform an 'All Notes
Off' and 'All Controllers Off' on selected MIDI channel.
is a quick method to revert to original settings.
What is a Voice?
A voice is
a set of layers which are defined inside the SoundFont. A new voice is allocated
for each new MIDI Note-On message, and it expires after the last layer in the
voice has finished playing.
What is a Layer?
layer is the individual unit of polyphony in sfz. Layers can
effectively be considered as 'simultaneously-playing wave files'.
The SoundFont standard allows an unlimited number of layers
to be assigned to individual notes and velocity ranges.
For instance, a
single note could have several dozen layers, which could switch
according to incoming MIDI note velocity. Any kind of multiple
and velocity-switching can be obtained with a SoundFont, and sfz will play them accordingly.
many Voices can sfz play?
sfz can play a maximum of 256 -true- voices.
This means that
if a voice has 10 layers in the SoundFont definition, sfz will
play up to 2560 layers. Note that many other instruments’ polyphony
specification is indicated in terms of Layers, not Voices.
the number of voices be limited?
Use the POLY selector to specify the maximum number of voices a channel
will play. After reaching POLY setting, subsequent voices will 'steal'
another voice, starting with the oldest voice.
many Keyboard Splits/Velocity Layers per voice sfz supports?
is no limit to the number of keyboard splits or velocity Layers
per Voice in sfz.
What is the 'Quality' setting in sfz?
QUALITY text selector (and menu) in sfz allows you to
alter the playback quality from standard (draft) to extremely high.
Except when using extreme sample sets containing one or several
samples for each note across the keyboard, sample playback engines
have to perform the trivial task of changing the pitch of a sample
by using some algorithmic process.
process is known as 'resampling', and there's a lot of theory
and practical implementations of
it. You can find more information about resampling at http://www.google.com
goal of a resampling engine is to change the pitch of a sample
degrading sonic artifacts such as aliasing, delays, phase-shifts,
frequency response alterations, noise and distortion. At the
same time, this process will most likely define the CPU utilization
a consequence, there is always a quality vs. speed compromise
in any resampling algorithm. Whereas most sampling
software uses a pre-determined quality level for the resampling
algorithm, sfz allows the user to determine the
level of resampling quality their processor can afford, by
using the QUALITY selector. This also offers the possibility
of using the highest quality settings when rendering, even
under conditions where the processor power isn't enough for
simple test of the sfz's interpolation performance can be
test was performed over a one-octave range for comparison purposes
only. George Raoul Reales, from DiscoDSP (http://www.discodsp.com)
has kindly compiled the performance tests of several well-known
samplers at http://www.buzzxp.com/samplers/.
the SoundFont specification states that the required resampling
engine should be capable of an up-pitching in a two octave range,
we've also plotted sfz performance for that range:
two octaves transpose test
looks terrific but... does a sample really need to be transposed
over a two-octave range?
unless you're after that Mickey-Mouse-Violin.
if the resampling engine is capable of this feat, the need to
do this indicates that
the sample-set being used is very limited (i.e. a small amount
of samples relative to the range it occupies over the keyboard),
and so the results will most likely be poor anyway.
So, why did you make the interpolator capable of that?
Because we wanted to write the best possible SoundFont Player, and the SoundFont specification states that:
The SoundFont 2 specification wavetable oscillator model is capable of playing back a sample at an
arbitrary sampling rate with an arbitrary pitch shift. In practice, the upward pitch shift (downward
sample rate conversion) will be limited to a maximum value, typically at least two octaves.
How many voices can sfz play in my PC?
above, a 'Voice' can have many Layers, and two Voices can have
two different numbers of Layers. Therefore,
it would be more useful to consider how many Layers your PC can
are two main factors when determining this: the Quality level
and, of course, the speed of the PC’s CPU. As a reference,
the Pentium IV/3GHz used to write this document can play 700
simultaneous layers in the lowest interpolation mode, and about
210 in the highest
before crackles begin to be heard. DFD (Disk Streaming) mode
will take even higher CPU under certain circumstances.
Please note that many sampler
manufacturers refer to this amount of Layers as ‘voices’.
sample rates does sfz support?
All, sfz will
work at all standard samplerates including 11kHz, 22.05kHz, 44.1kHz,
48kHz, 88.2kHz, 96kHz, 192kHz and 384kHz, plus
any arbitrary samplerate supported by the host application.
All quality modes will work at any samplerate.
Does sfz play from disk?
when DFD (direct from disk) mode is used.
In all other modes, it loads either the whole SoundFont file or
the samples used by the selected preset (according to the MODE setting)
into memory in order
How much memory does sfz take?
four loading modes, and the amount of memory a SoundFont file can
take depends on the loading mode selected, as follows:
this mode, sfz will attempt to load the whole
SoundFont file to memory at once, and will convert all
samples to 32-bit during the loading operation.
This scenario results in optimum performance and flexibility: Bank/Program
change can be sent to sfz while voices are playing, without interruptions,
clicks or any kind of artifacts.
However, this requires a memory amount of around 2.5 times the size of the
SoundFont file. In other words, in order to load a 100Mb SoundFont file, for
example, you will need about 250Mb of free RAM. For computers with a lot of
RAM, or for small SoundFont files, this is the suggested setting.
the required amount of memory for the 32-bit storage isn't
available, sfz will switch to SF16 automatically,
and will load all samples as 16-bit, performing the conversion
to 32-bit 'on-the-fly' during playback.
Using this method, memory usage is cut by half, but performance will suffer
as the conversion process takes some extra CPU cycles.
processors featuring SSE acceleration can use SF32 mode.
load the whole SoundFont file, but all samples will be
loaded and played as 16-bit. This mode has the advantage
of taking half of the memory space than SF32, but the processor
utilization will be higher due to the real-time conversion
in this mode, only the samples required by current preset
will be loaded from disk, and converted to 32-bit during
the loading operation. As a result, only the memory required
for those samples will be used, which can drastically reduce
the RAM required to play certain SoundFont files.
this mode, when a Bank/Program change message is received
(or when changing programs with the interface selector),
all voices will be immediately stopped before loading the
next set of samples. Consequently, changing programs during
playback could result in an undesirable click.
processors featuring SSE acceleration can use PR32 mode.
mode is similar to PR32, but the samples are loaded as 16-bit.
This is the setting that takes the less RAM amount, suitable
for old computers.
Streaming mode. sfz will play the samples directly from
Disk, without loading them to memory. This mode takes the
smallest memory amount, and allows for playing sample sets
larger than available memory space.
mode has the added advantage of having a very short loading
the case of multiple instances of sfz loading the same
SoundFont file, only one set of samples will be loaded and they
will be shared by all instances to save memory.
The upcoming sfz proprietary format (.sfz) will
take advantage of the 32-bit conversion process to playback 24-bit
sfz has to load a file in 16-bit format, you'll see
an indicator next to the SoundFont name (i.e.: "EMUAPS.sf2
the quality of the output be different in 16-bit mode
than in 32-bit mode?
The only disadvantage is that CPU usage will be higher in 16-bit
the quality be different in DFD mode?
CPU usage might rise under certain circumstances (small amount of
free memory, overly fragmented hard disk, etc), but the quality result
will be the same.
Is there any way to get rid of the message stating sfz will load a .sf2 as 16-bit?
The message means that you're trying to load a SoundFont file which
doesn't fit in the available memory after converting it to 32-bit.
The workarounds are:
Set MODE to PR32 (or PR16 if a small amount of free physical
memory is available) then reload the SoundFont.
Set MODE to DFD. sfz will stream all samples from disk.
3- Add more memory to your PC.
have plenty of free memory in my PC, but sfz still loads
SoundFonts as 16-bit
indicates your processor most likely doesn't support SSE acceleration. sfz will
detect SSE-capable CPUs on startup, and it will load all sample-sets
as 16-bit if SSE is not supported. The 16-bit nag screen won't
appear when using non-SSE processors.
have plenty of memory in my PC, and sfz says 'there's not enough
likely your 'plenty' memory is fragmented. After a while of using
your computer and loading and unloading several applications, your
memory starts to become 'fragmented', which means there's no contiguous
areas of free memory. Under those circumstances, sfz probably
won't find a contiguous area large enough to allocate the selected
There are several utilities which will defragment your system memory,
and which will allow you to monitor how fragmented it is. Of the
freeware ones, we suggest FastDefrag 2.0 (http://www.amsn.ro/). Run
it when you get the error, and take a look of the before/after ratio.
You'll be surprised.
the EFFECTS text selector for?
turns the internal Chorus and Reverb effects on/off. This way
you can choose to use internal or external effects.
great is the performance difference when using SSE?
on several factors related to the speed of your system components
but, in general, CPU-usage can be 30-50% lower when using SSE.
How do I turn on SSE?
You don't. sfz will detect it automatically and use it if possible.
more CPU than <anything_here>...
Is that a bug?
might be, and it might not. CPU-usage comparisons need a lot of
detail about results obtained, and results can vary widely depending
on which systems and SoundFonts were used for the tests.
very favorably with very expensive commercial samplers in terms
of the CPU/Quality ratio. We would be happy to hear of a SoundFont
player with a better CPU/Quality ratio. We will be glad to look
at your test results if you find one.
I play in DFD mode, I get clicks. How do I solve this?
mode has to locate and read the data from disk as soon as you press
a key. This takes a few milliseconds, and largely depends on your
hard disk. Average seek time determinates how long it takes to sfz to
find the data in the disk, and if it can't get the data on time,
a click occurs. Under these circumstances, increasing the latency
will give sfz more time, reducing the clicks amount.
A faster disk with bigger internal cache will allow using lower latencies.
SCSI disks mounted on good SCSI adapters, and RAID-0 configurations
(stripe) will also perform better.
Can you make sfz take less CPU?
sfz features many SSE acceleration routines, which were
hand-crafted in assembly code. Some snippets in the code took months to be working
methods used on the best quality settings imply zillions of calculations
being performed each sample, resulting in... higher CPU usage. That's natural.
is not a
Not that we wouldn't want it to take 1/10th of the CPU usage it takes, but...
is first. Now, if you don't need this quality
level, then you don't need sfz.
However, and despite of all above,
a pretty competitive performance. In the lowest quality settings (draft, 08),
the CPU usage is pretty similar than most samplers, and sfz still
offers a better quality. In highest settings, it just can't compare to any other
so sfz naturally wins.
So, in short, if we haven't built sfz to
take less CPU is due to:
1- the changes would adversely affect the quality.
2- the changes would mean abandoning the SoundFont specification, as if, for
instance, we'd use 'cheaper' (lower CPU but not precise or not-as-in-the-spec)
3- our main coder has a pretty limited IQ.
Can you add some controls in the GUI?
a version of sfz featuring
sfz+. It features much greater control
over the SoundFont’s
parameters, and it's very inexpensive.
Could you allow multiple SoundFonts to be loaded?
a version of sfz featuring multiple SoundFont files. It's
It allows loading up to 16 SoundFont (or Wave) files in a single
instance for multitimbral, velocity/keyboard splitting or layering
them. And it's very inexpensive.
the sfz engine be applied to <any_rgc_instrument_here>
not. sfz was designed from scratch with a completely different
paradigm, so it can't be 'coupled' to our previous instruments.
The good news is, it will be part of future instruments.
want sfz to play 500 voices in q=72, using 32-bit,
taking 64k of memory and in my SBLive.
Can you do that?
course we can. Actually, we're already shipping a version which
Prices starting as low as $52315. We had to adjust this value due the increased
Please drop us a line if you're interested, we'll be shipping one week after
receiving your payment.