SoundFont 1.0 to 2.0 Conversion Utility
Frequently Asked Questions
Last edited: 2/27/95

Top Level
What is the SoundFont 1.0 to 2.0 Conversion Utility (SF1to2)?
Is SF1to2 a DOS or Windows program?
Where do I get SF1to2?
How do I use SF1to2?
Will SF1to2 convert only Vienna banks or ANY SoundFont bank?
Will SF1to2 even handle shareware authored banks?
Will SF1to2 destroy my original bank?
What is SoundFont 2.0 all about anyway?

Technical
What exactly is converted?
Will SF1to2 change the STRUCTURE of my bank?
Why are there strangely valued fine tuning parameters in converted banks?
Why do all converted SF1 banks claim their sampled waveforms were sampled
at 44100 kHz?
Why doesn't the converter do keynum to Hold/Decay correctly?

--------------------------

***************************************************************************
What is the SoundFont 1.0 to 2.0 Conversion Utility?
***************************************************************************

The SoundFont 1.0 to 2.0 conversion utility is a DOS executable which 
converts banks in the SoundFont 1.0 format into equivalent banks in
the SoundFont 2.0 format. 

It should be used to convert all of your current SBK files into SF2
files, which will be playable with your SF2 compatible drivers and
editable with your SF2 compatible editors.

***************************************************************************
Is SF1to2 a DOS or Windows program?
***************************************************************************

SF1to2 is currently only available as a DOS utility, however its operation
will be incorporated into the upcoming Vienna 2.0 SF Studio.

***************************************************************************
Where do I get SF1to2?
***************************************************************************

The SF1to2 utility should be bundled with Creative SoundBlaster AWE32 or 32
drivers which support the SoundFont 2.0 format. If this is not the case,
please contact Creative technical support. (See http://www.creaf.com)

***************************************************************************
How do I use SF1to2?
***************************************************************************

SF1to2 is a command line utility. The syntax is:

sf1to2 [/g] {filename} [{outfilename}]

where 'filename' may or may not have the SBK suffix, IE the following 
commands are equivalent:

sf1to2 synthgm
sf1to2 synthgm.sbk

you may choose the name of the output file if you wish, and the /g option
allows you to convert all SBK files in a given directory, IE:

sf1to2 /g *.sbk

***************************************************************************
Will SF1to2 convert only Vienna banks or ANY SoundFont bank?
***************************************************************************

SF1to2 was designed to understand ALL of the structure possibilities 
available with the SF1 format, not just the ones that Vienna provided
Therefore SF1to2 should successfully convert any bank which was loadable 
by the AWE32 (including the original 4 banks, and banks created with Vienna, 
EsBeeKay, and other shareware authored tools).

***************************************************************************
Will SF1to2 even handle shareware authored banks?
***************************************************************************

To an extent, yes. However there is a limit. The original AWE32 drivers
allowed SF1 parameters which were "out of range" to alias or roll over.
So a value with a max of 127 would play back as if it were 0 if the number
inserted was 128, 1 if 129, 2 if 130, etc.  Vienna SF1 studio simply did not 
allow one to exceed that range. However shareware authors who did not 
understand the nature of the file format or the parameters may not have.

If you developed a bank on a tool in which you were able to type any number
for any parameter, it may not sound identical because of this. 

Also, the unit of the keyNumberToHold and keyNumberToDecay changed in such 
a fundamental way, that IF a shareware authoring tool allowed you to edit 
that value, it will not convert to an equivalent value and the bank may 
sound different.

However there should not be any other issues. The format properly converts
velocity ranges, usage of the SF1 preset level, global articulation data
and all of the other features that shareware authors allowed. If there are
any issues, please send the original SBK file and the converter version number 
to SoundFont@emu.com.

***************************************************************************
Will SF1to2 destroy my original bank?
***************************************************************************

No. SF1to2 leaves the old bank in tact, thus allowing you to verify the
conversion before archiving or discarding the original bank.

***************************************************************************
What is SoundFont 2.0 all about anyway?
***************************************************************************

See the SoundFont 2.0 WWW page (http://www.creaf.com/emu) for top level 
descriptions, a FAQ list, and a detailed specification of the file format
in its entirety.

***************************************************************************
What exactly is converted?
***************************************************************************

Parameters. Most of the units which were used to represent values in the 
SF1 format were fixed to the Emu8000 or to MIDI limitations (0-127) or 
expressed in linear units. That artifact would have made SoundFonts difficult
to make a universal standard. Those values are converted to SoundFont 2.0
equivalent values, which are represented with perceptually additive units 
at the minimum perceptible difference.

Preset Level Parameters. Articulation data at the preset level has a brand
new purpose in SoundFont 2.0. Because of this fundamental change in the 
operation of the preset level, parameters at the preset level in SoundFont
1.0 banks are moved down to the instrument level in order to produce 
equivalent SoundFont 2.0 banks.

Globals. Because of the fundamental change in the operation of the preset
level (giving it a new purpose), processing data from SF1 to SF2 format 
forced us to remove global layers in the conversion process and turn them
into individual preset level articulation data. Individual preset level 
articulation data in turn is moved down to the instrument level as global
split data when appropriate.

Levels. The level architecture of the bank will remain unchanged. However with
shareware authoring tools, the purpose of the preset level was left vague
and was often misused as a high level sample split indicator. In the future,
banks SHOULD be developed with reusability in mind, so sample splits should 
only happen at the instrument level, and the preset level should be left for
rearchitecting and instrument customization. This is simply a recommendation 
and will not be enforced by SF2 compatible drivers.

***************************************************************************
Will SF1to2 change the STRUCTURE of my bank?
***************************************************************************

SF1to2 will remove global layers, change global splits, and will move preset 
level parameters down to the instrument level. Otherwise, SF1to2 leaves the
bank structure in tact. However with shareware authoring tools, the purpose 
of the preset level was left vague and was often misused as a high level 
sample split indicator. In the future, banks SHOULD be developed with 
reusability in mind, so sample splits should only happen at the instrument 
level, and the preset level should be left for rearchitecting and instrument 
customization. This is simply a recommendation and will not be enforced by SF2
compatible drivers.

Why are there strangely valued fine tuning parameters in converted banks?
Why do all converted SF1 banks claim their sampled waveforms were sampled
at 44100 kHz?

SoundFont 1.0 had a single parameter used in sample split articulation
data which was a lump combination of sample rate, original key, fine tune
correction and was an Emu8000 specific parameter. This parameter was vaguely
called 'samplePitch' and had no real world significance. That made the format
extremely un-portable. That parameter is now ignored and will likely be
redefined later.

SoundFont 2.0 splits this parameter into the individual components and has
those definitions live at the SAMPLE HEADER level (along with the loop 
points) where they belong. The sample split allows overriding of the original
key and further fine tuning of the sample.

That is all fine and dandy, but note that it is IMPOSSIBLE to extract the 
original sample rate from the SF1 format! So as a compromise, all samples are 
assumed to be 44100 Hz sampled, original key of 60, and fine tuning of 0. Then
each split (which originally had individual samplePitch parameters) gets 
overriding key and fine tune parameters in order to match the SF1 original 
'samplePitch' value.

***************************************************************************
Why can't SF1to2 convert SF1 keyNumToHold/Decay?
***************************************************************************

Those parameters were changed such that the units went from an additive 
ms/kn to a form of additive cents/kn. (or multiplicative ms/kn). That makes 
the parameter perceptually additive and made for a better map to keyboard 
triggered pitches (which is also perceptually additive). However this is a 
difference between a linear and a logarithmic curve for which there is no 
single mathematical calculation (in the case of an ADDITIVE modulator like 
this... log(a+b) != log a + log b.

Now, we COULD have done an approximate conversion by adding additional 
key splits and using short curve segments, but that was far too much 
work for parameters which were defined incorrectly in the first place and 
so rarely used.

***************************************************************************
E-mu(R), E-mu Systems(R), and SoundFont(R) are registered trademarks of E-mu 
Systems, Inc. The SoundFont logo is a trademark of E-mu Systems, Inc.
E-my Systems licenses a "SoundFont Compatibility" logo for a nominal fee; 
please contact E-mu's SoundFont administrator by FAX at (408) 439-0392 for 
more information. Users of E-mu Systems SoundFont Designer should refer to
files developed as "SoundFont Compatible Banks" (NOT "SoundFont Banks") with 
appropriate acknowledgement of trademark ownership.

Sound Blaster(R) is a registered trademark of Creative Technology, Ltd. 
Advanced WavEffects, AWE32, and the Advanced WavEffects logo are
trademarks of Creative Technology, Ltd.
All other brand and product names listed are trademarks and
registered trademarks of their respective owners.

SoundFont Technical Support
Joint E-mu/Creative Technology Center
E-mail  : SoundFont@emu.com
Homepage: http://www.creaf.com/emu
FTP Site: ftp://ftp.creaf.com/pub/emu

