1timidity.cfg(5) File Formats Manual timidity.cfg(5)
2
3
4
6 timidity.cfg - configure file of TiMidity++
7
9 The file timidity.cfg describes the runtime environments of timid‐
10 ity(1): that are the path of sound font, instruments configurations,
11 etc.
12 TiMidity++ looks for the configuration file timidity.cfg at startup,
13 before processing any options. If it can't be accessed, and the
14 library path is changed with a -L option on the command line, then the
15 default file will be sought again along the new library path after pro‐
16 cessing all options, unless another configuration file was specified
17 with the -c option.
18 Configuration files define the mapping of MIDI programs to instrument
19 files. Multiple files may be specified, and statements in later ones
20 will override earlier ones.
21
23 When alphanumeric and/or underscore `_' characters continue after dol‐
24 lar sign `$', it is considered that the string is a variable and the
25 configuration file is processed, it is transposed to another string.
26 The variable name can also be written with an inside parenthesis, in
27 order to separate from a following character.
28
29 For example:
30 $variable
31 ${variable} # same as $variable
32
33 For the moment, the command which newly defines variables is not pre‐
34 pared. The undefined variable is transposed to null string.
35 The variable defined as a regular variable is the next only one.
36
37 $basedir
38 Expresses the directory where the configuration file exists. By
39 the command which mainly specifies a path, it uses in order to
40 specify the relative path from a setting file.
41 When a blank may be included in $basedir, it is necessary to
42 bundle with "".
43
44 For example:
45 In /usr/local/share/timidity/timidity.cfg
46 dir $basedir/inst # source /usr/local/share/timidity/inst
47
49 The following statements can be used in a configuration file:
50
51 dir directory [...]
52 Adds directory to the search path in the same manner as the -L
53 command line option.
54 Archive file are also allowed.
55
56 For example:
57 dir /usr/local/share/timidity/inst/foo.zip#
58 bank 0
59 0 bar.pat
60 1 baz.pat
61 2 zoo.pat
62
63 At first, dir specifies the archive name (followed by `#') for
64 the path of patch files same as directory name (in this case,
65 /usr/local/share/timidity/inst/foo.zip). TiMidity++ recognize
66 the path is an archive file if the expression has the last char‐
67 acter `#', and also read the files contained in this archive
68 file. In previous example the patch files bar.pat, baz.pat and
69 zoo.pat contained in the foo.zip are also installed.
70
71 source file [...]
72 Reads another configuration file, then continues processing the
73 current one.
74
75 progbase number
76 Sets and displays the tone number from number to number+128. If
77 progbase 1 are specified, tone numbers that follow are set and
78 displayed as the numbers from 1 to 128.
79
80 bank [MapID1] number
81 Selects the tone bank to modify. Patch mappings that follow
82 will affect this tone bank. You can indicate specific map as a
83 target, by specifying any of the following to MapID1: gm2, sc55,
84 sc88, sc88pro, sc8850, xg and xgsfx64.
85
86 drumset [MapID2] number
87 Selects the drum set to modify. Patch mappings that follow will
88 affect this drum set. You can indicate specific map as a tar‐
89 get, by specifying any ofthe following to MapID2: gm2drum,
90 sc55drum, sc88drum, sc88prodrum, sc8850drum, xgdrum and
91 xgsfx126.
92
93 number file [options]
94 number %font file bank prog [key] [options]
95 number %sample file [options]
96 Specifies that the MIDI program number in the current tone bank
97 or drum set should be played using the patch file. If file is
98 SoundFont, the specific instrument with bank, prog, and key is
99 taken out by the format of number %font. If file is linear AIFF
100 or WAV sample data, the MIDI program number is specified by the
101 format of number %sample. Options may be any of the following:
102
103 amp=amplification
104 Amplifies the instrument's volume by amplification per‐
105 cent. If no value is specified, one will be automati‐
106 cally determined whenever the instrument is loaded.
107
108 note=note
109 Specifies a fixed MIDI note to use when playing the
110 instrument. If note is 0, the instrument will be played
111 at whatever note the Note On event triggering it has.
112 For percussion instruments, if no value is specified in
113 the configuration file, the default in the patch file
114 will be used.
115
116 pan=panning
117 Sets the instrument's default panning. panning may be
118 left, right, center, or an integer between -100 and 100,
119 designating full left and full right respectively. If no
120 value is specified, the default in the patch file will be
121 used. Note that panning controls in MIDI files will
122 override this value.
123
124 tune=tuning[,...]
125 Adjust the instrument's root frequency. tune=1 causes 1
126 half tone higher. Since a fraction is available for tun‐
127 ing, it is possible to do fine tuning such as tune=-0.2.
128 When two or more sample data is contained, the arguments
129 after the second can specify different value respec‐
130 tively.
131
132 rate=attack:decay:sustain:release1:release2:release3[,...]
133 Sets the instrument's ADSR rate. Each value may be an
134 integer between 0 and 255. When you set only sustain
135 rate,
136
137 6 GUS/hrpschrd.pat rate=::60
138
139 is available. When you set only attack time fasten,
140
141 6 GUS/hrpschrd.pat rate=255
142
143 is available. When two or more sample data is contained,
144 the arguments after the second can specify different
145 value respectively.
146
147 offset=attack:decay:sustain:release1:release2:release3[,...]
148 Sets the instrument's ADSR offset. Each value may be an
149 integer between 0 and 255. The format is same as rate=.
150
151 keep={loop|env}
152 By default, percussion instruments have their loop and
153 envelope information stripped. Strangely shaped
154 envelopes are removed automatically from melodic instru‐
155 ments as well. keep= can be used to prevent stripping
156 loop or envelope data. For example, the Short and Long
157 Whistle percussion instruments (General Midi numbers 71
158 and 72) need to have `keep=loop keep=env' specified in
159 the configuration file.
160
161 strip={loop|env|tail}
162 Force removal of loop or envelope information from all
163 patches in the instrument, or strip the tail, i.e. all
164 data after the loop. Some third-party instruments have
165 garbage after the loop, as evidenced by a clicking noise
166 whenever the instrument is played, so adding the
167 strip=tail option will markedly improve sound quality.
168
169 tremolo=sweep_increment:control_ratio:depth[,...]
170 Sets the instrument's tremolo. Each value may be an
171 integer between 0 and 255. The format is similar to
172 rate=. sweep_increment is the time until tremolo is
173 started. control_ratio is the rate changing amplifica‐
174 tion. depth is the depth changing amplification.
175
176 vibrato=sweep_increment:phase_increment:depth[,...]
177 Sets the instrument's vibrato. Each value may be an
178 integer between 0 and 255. The format is similar to
179 rate=. sweep_increment is the time until vibrato is
180 started. phase_increment is the rate changing frequency.
181 depth is the depth changing frequency.
182
183 sclnote=note[,...]
184 Sets the instrument's standard note for scale tuning.
185 For example, sclnote=60 causes the center note C to be
186 standard note for scale tuning. When two or more sample
187 data is contained, the arguments after the second can
188 specify different value respectively.
189
190 scltune=tune[,...]
191 Sets the instrument's scale tuning factor in cents. For
192 example, scltune=50 causes the half tone steps as 50
193 cents. When two or more sample data is contained, the
194 arguments after the second can specify different value
195 respectively.
196
197 comm=comment
198 Specifies the comment comment.
199
200 modrate=attack:decay:sustain:release1:release2:release3[,...]
201 modoffset=attack:decay:sustain:release1:release2:release3[,...]
202 Sets the instrument's behavior of change of modulation
203 envelope. The format and values are fundamentally same
204 as volume envelope. Except for some SoundFonts, even if
205 it specifies only the option, nothing happens.
206
207 envkeyf=attack:decay:sustain:release1:release2:release3[,...]
208 Sets the instrument's volume envelope key follow. Based
209 on note=60, it changes envelope time according to note.
210 The unit is +-cent/key. For example, envkeyf=100 means
211 that the attack time will double when it goes up by 1
212 octave. The format is similar to rate=. The parameter
213 of decay and sustain may be preset in some SoundFont.
214
215 envvelf=attack:decay:sustain:release1:release2:release3[,...]
216 Sets the instrument's volume envelope velocity follow.
217 Based on velocity=64, it changes envelope time according
218 to velocity. The unit is +-cent/velocity. For example,
219 envvelf=100 means that the attack time will 38 times at
220 velocity=127. The format is similar to rate=. In the
221 future, the specification of this option may be changed.
222
223 modkeyf=attack:decay:sustain:release1:release2:release3[,...]
224 Sets the instrument's modulation envelope key follow.
225 Based on note=60, it changes envelope time according to
226 note. The unit is +-cent/key. For example, modkeyf=100
227 means that the attack time will double when it goes up by
228 1 octave. The format is similar to rate=. The parameter
229 of decay and sustain may be preset in some SoundFont.
230
231 modvelf=attack:decay:sustain:release1:release2:release3[,...]
232 Sets the instrument's modulation envelope velocity fol‐
233 low. Based on velocity=64, it changes envelope time
234 according to velocity. The unit is +-cent/velocity. For
235 example, modvelf=100 means that the attack time will 38
236 times at velocity=127. The format is similar to rate=.
237 In the future, the specification of this option may be
238 changed.
239
240 trempitch=num[,...]
241 Sets the instrument's depth of changing pitch according
242 to tremolo. The effect itself is same as vibrato, it
243 uses to operate in another system. The unit is +-cent.
244 The format is similar to rate=.
245
246 tremfc=num[,...]
247 Sets the instrument's depth of changing cutoff frequency
248 according to tremolo. It can express the so-called glowl
249 effect. The unit, etc. are same as trempitch=.
250
251 modpitch=num[,...]
252 Sets the instrument's depth of changing pitch according
253 to modulation envelope. It can temporarily express rais‐
254 ing pitch only for the attack stage. The unit, etc. are
255 same as trempitch=.
256
257 modfc=num[,...]
258 Sets the instrument's depth of changing cutoff frequency
259 according to modulation envelope. The unit, etc. are
260 same as trempitch=.
261
262 fc=num[,...]
263 Sets the instrument's standard of cutoff frequency. The
264 unit is Hz. The format is similar to rate=.
265
266 q=num[,...]
267 Sets the instrument's Q (resonance). The unit is cB.
268 The format is similar to rate=.
269
270 fckeyf=num
271 Sets the instrument's filter key follow. Based on
272 note=60, it change cutoff frequency according to note.
273 The unit is +-cent/key. For example, fckeyf=100 means
274 that it changes same as pitch.
275
276 fcvelf=num
277 Sets the instrument's filter velocity follow. Based on
278 velocity=127, it changes cutoff frequency according to
279 velocity. The unit is +-cent. In SoundFont, -2400 is
280 set up as a characteristic value.
281
282 qvelf=num
283 Sets the instrument's resonance velocity follow. Based
284 on velocity=0, it changes resonance according to veloc‐
285 ity. The unit is +-cB.
286
287 default file
288 When MIDI program appears, which is not mapped to instrument
289 file, this file is pronounced as a substitute.
290
291 map MapID1 from-bank from-prog to-bank to-prog
292 The existing tone is assigned as a tone of GS/XG each map. gm2,
293 sc55, sc88, sc88pro, sc8850, xg and xgsfx64 can be specified to
294 be MapID1.
295
296 map MapID2 from-drumset from-keynote to-drumset to-keynote
297 The existing drum is assigned as a drum of GS/XG each map.
298 gm2drum, sc55drum, sc88drum, sc88prodrum, sc8850drum, xgdrum and
299 xgsfx126 can be specified to be MapID2.
300
301 soundfont file [options]
302 Read the whole SoundFont. options may be any of the following:
303
304 order=number
305 Sets the order of searching for instrument. When
306 order=0, first read SoundFont, and then search for insuf‐
307 ficient samples in GUS/patch. When order=1, after read‐
308 ing GUS/patch, search for SoundFont.
309
310 amp=amplification
311 Sets the amplification of the whole SoundFont as amplifi‐
312 cation%. If the value is not specified, it is set by
313 100%.
314
315 cutoff=number
316 Specifies whether LPF in SoundFont is enable (1) or dis‐
317 able (0). If the value is not specified, it is consid‐
318 ered to be enable.
319
320 reso=number
321 Specifies whether resonance in SoundFont is enable (1) or
322 disable (0). If the value is not specified, it is con‐
323 sidered to be enable.
324
325 remove Cancels the target SoundFont from the memory.
326
327 font exclude bank [prog [key]]
328 Suppresses searching for SoundFont of bank, prog. If the sample
329 is drumset, bank is 128, drumset is prog, keynum is key.
330
331 font order number bank [prog [key]]
332 Sets the order of searching for instrument individually. The
333 format is same as font exclude.
334
335 The following statements are available only latest TiMidity++.
336
337 #extension altassign program1 program2 ...
338 Sets the alternate assign for drum set. For example, if you
339 want to pronounce Hi-Hat cymbals (note number 42, 44 and 46) in
340 the drumset 0 exclusively to each others, specify:
341
342 drumset 0
343 altassign 42 44 46
344
345 Note that alternate assign of drumset 0 is used by default.
346
347 #extension comm program comment
348 Specifies the comment comment for the tone number program.
349 These comments are displayed in the indicator line when TiMid‐
350 ity++ is booted with option -int, -iTt.
351
352 #extension timeout program second
353 Specifies the time-out value of the program. If any notes
354 played with the tone number program are suspended for more than
355 second seconds, TiMidity++ kills the notes.
356
357 #extension copydrumset drumset
358 Copies all settings of the drumset to the current drumset.
359
360 #extension copybank bank
361 Copies all settings of the bank to the current bank.
362
363 #extension copymap to-MapID from-MapID
364 Copies all settings of the banks defined for the map from-MapID
365 to the map to-MapID.
366
367 #extension HTTPproxy hostname:port
368 Specifies the proxy of the HTTP protocol. hostname and port are
369 of the proxy host's.
370
371 #extension FTPproxy hostname:port
372 Specifies the proxy of the FTP protocol. Same as HTTP.
373
374 #extension mailaddr your-mail-address
375 Specifies user's mail address. This address is sent to the FTP
376 server if TiMidity++ access any file via FTP.
377
378 #extension opt option
379 Sets the value of boot-time options.
380
381 #extension undef progno
382 Undefines the tone progno of current tone bank.
383
384 #extension legato progno {0|1}
385 Specifies whether legato is enable (1) or disable (0) on progno.
386
387 #extension level progno tva_level
388 Sets the standard value of changing amplification when process‐
389 ing Drum Instrument TVA Level of NRPN. Unless Drum Instrument
390 TVA Level is specified at playing, the amplification is not
391 influenced. progno can carry out package specification by `,'
392 and/or [start]-[end]. If start and end are omitted, they are
393 assumed to be 0 and 127 respectively.
394
395 #extension damper progno {0|1}
396 Specifies whether redamper and half-damper are enable (1) or
397 disable (0) on progno.
398
399 #extension playnote progno note
400 Sets the frequency of pronounce to note. If the frequency of
401 pronounce is specified by GS SysEx Play Note, the pitch is
402 changed appropriately according to the value. progno can carry
403 out package specification by `,' and/or [start]-[end]. If start
404 and end are omitted, they are assumed to be 0 and 127 respec‐
405 tively.
406
407 For example:
408 drumset 0
409 #extension playnote -37,39,44-46,55-60
410
411 #extension delaysend progno level
412 #extension chorussend progno level
413 #extension reverbsend progno level
414 Sets the send level when drum part effect is enable. All ini‐
415 tial value are 127. If one of delay, chorus and reverb is at
416 least set up, the effect which is not set as the tone will
417 become the initial value 0. progno can carry out package speci‐
418 fication by `,' and/or [start]-[end]. If start and end are
419 omitted, they are assumed to be 0 and 127 respectively.
420
421 #extension rnddelay progno msec
422 For every pronunciation, it is random and less than a maximum of
423 msec delay. The distribution of random value is pink noise (1/f
424 fluctuation) rather than a white noise.
425
426 These #extension statements are beginning with character `#' that is
427 the comment flag of old TiMidity (version 0.2i or earlier). So these
428 statements are treated as comment line.
429 The latest TiMidity++ treats #extension as white-space. So you can
430 omit it.
431
432 If any file-name expression ended with character `|' (Ascii 0x7c), the
433 file-name is treated as command and outputs of the command are also
434 examined as arguments of statements.
435 source command| causes the output of command becomes the argument of
436 source. It is convenient to choose settings of TiMidity++ according to
437 environment. In addition, if a space enters on the way like command |,
438 it will be divided at the time of setting file reading, and will no
439 longer be regarded as a command. This function is applicable to all
440 the places that can specify a file name.
441
442 timidity 'cat fild.mid|'
443
444 will read from the output of cat fild.mid.
445
447 /etc/timidity/timidity.cfg
448
450 timidity(1), lsmidiprog(1), mididump(1), patinfo(1), sf2text(1),
451 wav2pat(1)
452
454 Copyright (C) 1999-2004 Masanao Izumo <iz@onicos.co.jp>
455 Copyright (C) 1995 Tuukka Toivonen <tt@cgs.fi>
456
457 The original version was developed by Tuukka Toivonen <tt@cgs.fi> until
458 the release of TiMidity-0.2i. His development was discontinued because
459 of his being busy with work.
460
461 This program is free software; you can redistribute it and/or modify it
462 under the terms of the GNU General Public License as published by the
463 Free Software Foundation; either version 2 of the License, or (at your
464 option) any later version.
465
466 This program is distributed in the hope that it will be useful, but
467 WITHOUT ANY WARRANTY; without even the implied warranty of MER‐
468 CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
469 Public License for more details.
470
471 You should have received a copy of the GNU General Public License along
472 with this program; if not, write to the Free Software Foundation, Inc.,
473 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
474
476 The latest release is available on the TiMidity++ Page,
477
478 URL http://www.timidity.jp/
479
480
481
4822.13.0 April 25 2004 timidity.cfg(5)