Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 7ba3aee3982b88096ed5af0ad07702cb > files > 19

awesfx-0.5.1c-3.fc12.x86_64.rpm

================================================================
     SoundFont 1 (sbk) --> SoundFont 2 (sf2) Conversion
================================================================

The following conversion rules are on the basis of my experience.
Please do not consult to Creative about this.
						-- iwai

================================================================
modenv, volenv, lfo1, lfo2
delay time	msec
attack time	msec
hold time	msec
decay time	msec
release time	msec
--
sf2		time cents
	sf2 = log2(sbk/1000) * 1200

================================================================
vol sustain	0-127 (or larger)
--
sf2		cB below full scale
	sf2 = 1000 - 10.5 * sbk		when sbk < 96
	sf2 = 0				when sbk >= 96
  Note: the default sustain level is 1000 in SBK, while 0 in SF2.

================================================================
mod sustain	0-96 (96 = zero attenuation, 0 = minimum)
--
sf2		0.1% below full scale
	sf2 = 1000 * (96 - val) / 96	when sbk < 96
	sf2 = 0				when sbk >= 96
  Note: the default sustain level is 1000 in SBK, while 0 in SF2.

================================================================
time change per key	??
--
sf2		timecent per key
	sf2 = sbk * 5.55  (??)

================================================================
pan position	0-127 (just same as MIDI)
--
sf2		0.1% (left=0, center=500)
	sf2 = sbk * 1000 / 127 - 500

================================================================
init attenuation	0-127 (127 = full scale, 0 = minimum)
--
sf2		cB from full scale (see the note below)
	sf2 = -200 * log10(sbk / 127)

[note:	SF2 spec document says initial attenuation is in unit of
	centibels, but actual data looks like 2 to 10 times greater.
	The above conversion does NOT include this correction.]

================================================================
chorus		0-255
reverb
--
sf2		0.1%
	sf2 = sbk * 1000 / 255

================================================================
initFilterFc
--
sf2		absolute cents
	sf2 = 59 * sbk + 4366	when sbk < 127
	(alternatively, sf2 = 50 * sbk + 4721 (4721=125Hz))
	sf2 = 14400		when sbk = 127

================================================================
initFilterQ
--
sf2		cB above DC gain
	sf2 = sbk * 3 / 2

================================================================
LFO1 freq
LFO2 freq
--
sf2		absolte cents
	sf2 = 1200 * log10(sbk) / log10(2) - 7925

================================================================
modenv pitch shift
LFO1 pitch shift
LFO2 pitch shift
--
sf2		cents
	sf2 = (1200 * sbk / 64 + 1) / 2

================================================================
moenv cutoff shift
LFO1 cutoff shift
--
sf2		cents
	sf2 = (1200 * ratio * sbk) / 64
		ratio = 6	when modenv
		ratio = 3	when lfo1

================================================================
lfo1 tremolo volume
--
sf2		cB
	sf2 = (120 * sbk) / 64

================================================================
scale tuning	0/1
--
sf2		semitone
	sf2 = 100	when sbk = 0
	sf2 = 50	when sbk = 1
  NOTE: scale tuning can overwrite in preset layer to instruments.
	don't add the "converted" value.  Otherwise, convert
	after adding the value.

================================================================
sample pitch (SF1 only; reserved3(#55) in SF2)
--
sf2		N/A
	sf2 rootkey = sbk / 100
	sf2 finetune = -sbk % 100
	if finetune <= -50 then
	  rootkey++
	  finetune = 100 + finetune
	endif

================================================================