timidity.cfg - configuration file of TiMidity++

DESCRIPTION
     The file timidity.cfg  describes the runtime environments of
     timidity(1),   including  the   paths   of  sound   patches,
     instruments  configurations  etc.   TiMidity looks  for  the
     configuration file timidity.cfg at startup before processing
     any options.  If it can't  be accessed, and the library path
     is changed  with a -L option  on the command  line, then the
     default file will be sought again along the new library path
     after processing  all options, unless  another configuration
     file was specified with the -c option.

     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.



FORMAT
     The following statements can be used in a configuration file:


     dir directory
          Adds directory to the search path in the same manner as
          the  -L command  line option.   Archive files  are also
          allowed. For example:

          dir /usr/local/lib/timidity/inst/foo.zip#
          1 baz.pat
          2 zoo.pat
          0 bar.pat

          Here, dir specifies the  archive name (followed by '#')
          for the  path of  patch files in  the archive  (in this
          case,           "/usr/local/lib/timidity/inst/foo.zip").
          TiMidity recognize  the path is an archive  file if the
          expression  has '#'  as  the last  character, and  also
          reads the files contained  in the archive file.  In the
          example  the patch files  bar.pat, baz.pat  and zoo.pat
          contained in the foo.zip are installed.


     source file
          Reads   another  configuration  file,   then  continues
          processing the current one.


     bank number
          Selects the  tone bank to modify.   Patch mappings that
          follow will affect this tone bank.


     progbase number
          Sets  and  displays  the  tone number  from  number  to
          number+128.  If  progbase 1 is  specified, tone numbers
          that follow are set and displayed as the numbers from 1
          to 128.


     drumset number
          Selects the  drum set  to modify.  Patch  mappings that
          follow will affect this drum set.


     number file [options]
          Specifies that  the MIDI program number  in the current
          tone bank or drum set  should be played using the patch
          file.  Options may be any of the following:


          amp=amplification
               Amplifies the instrument's volume by amplification
               percent.  If  no  value  is specified, one will be
               automatically determined whenever  the  instrument
               is loaded.


          note=note
               Specifies a  fixed MIDI  note to use  when playing
               the instrument.  If note is 0, the instrument will
               be  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 will be used.


          pan=panning
               Sets  the instrument's  default  panning.  panning
               may be left, right,  center, or an integer between
               -100 and 100, designating full left and full right
               respectively.   If  no  value  is  specified,  the
               default in the patch file will be used.  Note that
               panning controls in  MIDI files will override this
               value.


          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.   keep can be used to
               prevent  stripping  envelope  or loop  data.   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 con-
               figuration file.


          strip={loop|env|tail}
               Force removal of loop or envelope information from
               all patches in the  instrument, or strip the tail,
               i.e.  all data after  the loop.   Some third-party
               instruments have  garbage after the  loop, as evi-
               denced  by a clicking  noise whenever  the instru-
               ment  is played, so  adding the  strip=tail option
               will markedly improve sound quality.

     The following statements are available only in the latest
     version of TiMidity.


     #extension altassign program1 program2 ...
          Sets the  alternate assign for drum  set.  For example,
          if  you  want  to  play  Hi-Hat  cymbals  (note  number
          42/44/46)  in  drumset 0  exclusively  to each  others,
          specify:

          drumset 0
          altassign 42 44 46

     #extension comm program second
          Specifies  the  comment for  the  tone number  program.
          These comments are displayed in the indicater line when
          TiMidity is invoked with options -iNt, -iTt.


     #extension timeout program second
          Specifies the  time-out value  of the program.   If any
          notes  produced  with   the  tone  number  program  are
          suspended more than  second seconds, TiMidity kills the
          notes.


     #extension copydrumset drumset
          Copies all settings of the drumset to the current drum-
          set.


     #extension copybank bank
          Copies all settings of the bank to the current bank.


     #extension HTTPproxy hostname:port
          Specifies the proxy of  the HTTP protocol. hostname and
          port refer to the proxy host.


     #extension FTPproxy hostname:port
          Specifies the proxy of the FTP protocol. Same as HTTP.


     #extension mailaddr your-email-address
          Specifies user's email address. This address is sent to
          the FTP server if TiMidity accesses any files via FTP.


     #extension [-]{option} [optarg]
          Sets the value of startup-time options.


     #extension undef progno
          Undefine the tone progno of current tone bank.

     These "#extension"  statements begin with  the character '#'
     which is  the comment flag of the  original TiMidity program
     (versions 0.2i or earlier).  So these statements are treated
     like comment  lines by those versions.   The latest TiMidity
     treats "#extension" as white-space, so you can omit it.

     If any  filename expression  ends with character  '|' (Ascii
     0x7c), the filename  is treated as a command  and outputs of
     the command are also examined as arguments of statements.