sfxload man page

sfxload, asfxload — load a SoundFont file on the Emux WaveTable

Synopsis

sfxload [-options] fontfile

asfxload [-options] fontfile

Description

sfxload and asfxload are utility program sto transfer the sound wave and instruments data in a SoundFont file to the AWE32 sound driver, or to the Emux WaveTable of ALSA sbawe and emu10k1 drivers. This program is necessary for playing MIDI samples via sequencer programs supporting AWE driver. There is no big difference between sfxload and asfxload except for that asfxload is for ALSA and sfxload is for OSS, respecitvely. The options to specify devices are different between them (see below).

Basically, sfxload behaves as two ways. % sfxload fontfile
% sfxload -b1 fontfile

The first usage is to read SF2 (or SBK) file and transfer to the awe driver. In this case, the samples which were loaded on the driver are replaced with the new one. In the second case, sfxload reads the file and appends it to the pre-loaded samples on the driver with specified bank number. The old samples remain in the driver. The additional samples can be cleared via -x option (see below).

The sound files are searched through the path list. The path list is defined as built-in. If the environment variable SFBANKDIR or the command line option -P is given, it replaces the default search list. The file extension .sf2, and .sbk can be abbreviated.

Options

-F--device=file (sfxload only)
Specify the device file to be used. Default value is /dev/sequencer.
-D--index=number (sfxload only)
Specify the device index of AWE driver. Negative number (e.g. -1) means to probe the first AWE device automatically. For selecting the other AWE cards, a positive index number must be given here. Default value is -1.
-D--hwdep=name (asfxload only)
Specify the hwdep name to be used. As default, asfxload seeks until any Emux compatible hwdep device is found.
-i--clear[=bool]
Remove all samples before loading the fonts. This is an explicit directive (see -b option). If this option is specified alone without soundfont file arguments, sfxload does onlay remove samples. Either of on, off, yes, no, true, or false can be specified as an optional argument.
-x--remove[=bool]
Remove the optional samples previouly loaded via -b option. Otherwise, all new samples are simply appended.
-N--increment[=bool]
Do not clear samples even with the absence of -b option. However, this option is not exclusive with -x option. If both options are specified, and the memory full error is encountered during loading fonts, sfxload will try to remove samples and load the fonts again.
-b--bank=number
Append the sound samples on the specified bank. Without this option, all present samples in the driver are removed before loading the new fonts unless -N option is specified. Usually, this option is necessary to load user bank, typically in bank one. For example, % sfxload synthgm.sbk
% sfxload -b1 surprise.sf2
-l--lock[=bool]
Lock the font. The locked font is no longer removed via remove option (-x) even if it's loaded together with -b option.
-C--compat[=bool]
Use the old (v0.4.2) parameter calculations.
-A--sense=sensitivity
(Only valid on compatible mode)
Set sample attenuation sensitivity. This option controls the sensitivity of initial attenuation parameter of each instrument defined in SoundFont file. In the program, each parameter is calculated from the value divided by this number for the original value. The number 1.0 means that the original initial attenuation parameters would be used. Generally, smaller number makes drum sounds louder. (I think "-A 2" would be similar to Windows sounds.) The default value is 10. Note that this option changes also the default attenuation automatically (see below).
-a--atten=attenuation
(Only valid on compatible mode)
Set the default attenuation level. This option controls the minimum attenuation of the sample. The parameter is given in raw digit number for AWE driver, that is, in 8/3 dB unit. Since --sense option changes the default attenuation automatically, specify this option later from --sense option. The default value is 32.
-d--decay=scale
(Only valid on compatible mode)
Set the scale of envelope decay time. Default value is 50.0. Sounds decay fast when larger number is set. The ver.0.3 sfxload uses 54.8. If you want to keep the same sound, use this number instead.
-M--memory[=bool]
Display the left memory size in DRAM on the AWE32 card.
-c--chorus=percent
Specify the effects of chorus. The value is in percent, from 0 to 100. The default is unspecified. This value may be overwritten by MIDI control messages.
-r--reverb=percent
Specify the effects of reverb. The value is in percent, from 0 to 100. The default is unspecified. This value may be overwritten by MIDI control messages.
-B--addblank[=bool]
Add 48 size of blank loop on each sample data. Usually, this option is not necessary. Most of soundfont files are designed well for enough blank loops for each sample.
-L--extract=source[:map]
Extract and load only the specified preset(s). This option is usually employed by drvmidi. The preset is given as same as in virtual bank file.
-v--verbose[=level]
Increase or set the verbosity level.
-q--quiet
Don't show error messages, equivalen with --verbose=0.
-V--volume=percent
Specify the total volume of sounds, provided in percent. The default volume is 70%.
-P--path=path1:path2:pathN
Specify the search path list. The sound files are searched from path1, path2, and so on. This overrides both the system path and environment variable SFBANKDIR.

Virtual Bank File

The virtual bank file is a list of presets treated as one soundfont file. The syntax of virtual bank is as follows: # comments
source:map[:soundfont [preset-name]
source:map[:soundfont [preset-name]
...

The first and second items are the source and mapped presets, respectively. The former is the existing preset in the soundfont, and the latter is the actual preset loaded on the sound driver. The preset is described by the following three values, preset/bank/keynote If bank and keynote are omitted, bank 0 and keynote -1 (meaning to search all keys) are applied.

The third item is the name of soundfont file. The file is searched from the prescribed search-path. The remaining arguments are ignored in sfxload.

If the soundfont name is omitted, sfxload loads it as preset mapping. It just behaves like a symbolic link of file opposing to copying of the file. Any sample data is not referred at this time, but searched first when the note is played.

A couple of special commands can be used together with the virtual presets above. default command is used to specify the default soundfont file. Any other presets which are not defined in the virtual preset lists are loaded from this default font. For example, in the following virtual bank, 2mbgmgs.sf2 is used except for standard drumsets which employs drum.sf2: 0/128:0/128:drum.sf2
default 2mbgmgs.sf2

Another special command is include command. This simply includes another virtual bank file under the current position. For example, default standard.sf2
0/128:0/128:drum.sf2
include xgsfx.bnk

System Resrouce File

The default option arguments can be stored in the system resource file. There are two files loaded as default. $HOME/.sfxloadrc
/etc/sfxloadrc

The syntax is as follows: fontname -options.. The first argument is soundfont file name for each option. The remaining arguments are identical with command line options. The font name default is used for default options for all sound fonts. The default options are overridden by specific options or command line options.

For example, to set default chorus level 20 except for synthgm font, you can write a resource file ~/.sfxloadrc like that: default --chorus=20
synthgm --chorus=0

Environment

SFBANKDIR
Search path for sound files. The current directory is always searched at first.

See Also

drvmidi(1)

Info

January 22, 2003