[Previous] [Contents] [Index] [Next]

Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

Appendix: The MIDI Configuration File

The MIDI parser, midi_parser.so, requires a configuration file (midi.cfg) that describes its runtime environment, including the paths to sound patches and instrument configurations.

The file midi.cfg describes the runtime environments of the MIDI media filter,including the paths of sound patches, instruments configurations, and so on. Configuration files define the mapping of MIDI programs to instrument files. Multiple files may be specified, and statements in later ones will override earlier ones.

The parser looks for midi.cfg in the following order:

Configuration file format

The midi.cfg configuration file can have the following statements:

# this is a comment
Comment lines start with the # character.
dir directory
The directory becomes the current working directory. For example:
dir /usr/share/media/midi
source file
Reads another configuration file, then continues processing the current one. For example:
source midi.cfg
Here, the media filter will load the configuration file /usr/share/media/midi/midi.cfg
bank number
Selects the tone bank to modify. Patch mappings that follow will affect this tone bank.
drumset number
Selects the drum set to modify. Patch mappings that follow will affect this drum set.
number file [options]
Specify that the MIDI program number in the current tone bank or drum set should be played using the patch file file. Options may be any of the following:
amp=a
Amplify the instrument's volume by a percent. If no value is specified, it's automatically determined whenever the instrument is loaded.
note=n
Specifies a fixed MIDI note to use when playing the instrument. If n is 0, the instrument is played at whatever note the Note On event triggering it has. For percussion instruments, if no value is specified in the configuration file, the default in the patch file is used.
keep={loop|env}
By default, percussion instruments have their loop and envelope information stripped. Strangely shaped envelopes are removed automatically from melodic instruments as well. Use keep to prevent envelope or loop data from being stripped. For example, the Short and Long Whistle percussion instruments (General MIDI numbers 71 and 72) need to have keep=loop keep=env specified in the configuration file.

Example

This is a short example midi.cfg file:

 #this is a comment
 dir /usr/share/media/midi
 source default.cfg

[Previous] [Contents] [Index] [Next]