Independent ALSA and linux audio support site

Gt

From the ALSA wiki

Jump to: navigation, search

NAME
====
     gt - version of TiMidity MIDI to WAVE converter and player


SYNOPSIS
========
     gt [-options] [directoryname | filenames ...] [-options]


DESCRIPTION
===========
     Gt is a MIDI to WAVE converter using  Gravis  Ultrasound-compatible
     patch files, extended GUS patch files, or AWE-compatible SoundFonts
     to generate digital audio data from General MIDI files.

     The data can be stored in a file for processing,  or played in real
     time  through  an  audio device.   Gt will generate 6 and 4 channel
     sound output on systems with capable Alsa drivers  and  soundcards.
     Currently, there is only a single output driver, for Alsa.

     It's  not  necessary to give any filenames on the command line;  if
     there are midi files in the current directory,  gt will  find  them
     and  play  them.    You can also give a single directory name,  and
     gt will look in that directory for midi  files.    (This  automatic
     construction of play lists will not work for compressed files.)

     The  default display interface uses the ncurses library to show the
     notes being played and give other information.  The alternatives to
     this interface are described below under the  -i option  (they  are
     -int for ncurses in non-tracing mode,  and -id or -idt for the dumb
     interface).  As songs are playing, a moderate amount of control can
     be  exerted  with  keys  and the mouse (if the mouse works for your
     display window).  Key q or end or F10 exits.  Key V or up-arrow and
     v or down-arrow adjust the volume.   The space bar  pauses  playing
     or  resumes playing when paused.   Key n or page-down or F9 goes to
     the next midi song.   Key p or page-up goes to  the  previous  midi
     song.    Key r or home restarts the current midi song at the begin-
     ning.  Key f or right-arrow skips forward in the current song.  Key
     b or left-arrow skips backward in the current song.   Shifted  kays
     left-arrow  and  right-arrow  adjust the voices ceiling.   Kays F2,
     F3, and F4 change the interpolation algorithm.   Kays F5,  F6,  F7,
     and F8 change the patch set.   Key F11 toggles between wet and  dry
     mode.


     Here is what is shown on the ncurses display:

     line 1
          Program title.

     line 2
          Current  patchset,   interpolation  method,  loading mode.   A
          different patchset can be chosen with function keys F5-F8,  as
          indicated on the bottom line of  the  display.    A  different
          interpolation method can be chosen with function keys F2-F4 --
          also as indicated on the bottom line of the display.   Loading
          mode is either fast or full.   With fast  loading,   only  the
          first  velocity layer is loaded from extended GUS patches (for
          ordinary GUS patches, loading mode makes no difference).   You
          can toggle the loading mode with the shifted F key.

     line 3
          Program status messages and karaoke lyrics or other midi  text
          messages.    Fatal error messages are red if your display does
          color, otherwise they are shown in bold.   (And all the colors
          mentioned below come out in bold face on a non-color display.)
          Loading progress for patch files required for the next song is
          shown in cyan.  If there is a limit on the amount of memory to
          use for patches (see the -r option), the loading line displays
          the  proportion  of  available  memory  that  has  been  used.
          (Patches  used  for previous songs are purged from memory when
          necessary.) Lyrics and other midi text messages are in yellow.

     line 4
          Midi file being played or about to be played.   Just after the
          file name,  [GM],  [GS],  or [XG] may be shown,  which is  the
          synthesizer  type,   if  that  was specified in the midi file.
          After that, as screen space permits, a title,  copyright,  and
          author may be shown.

     line 5
          Elapsed time for the current song and the total time  it  will
                                   -3-
          take  to  play  it.    You can fast forward or rewind with the
          right or left arrow keys.  Key signature, time signature,  and
          tempo are shown in the middle of the line.   At the  right  is
          the master volume,  which will be adjusted by some midi songs,
          or you can adjust it yourself with the up and down arrow keys.
          You can use the clipping rate as a guide to how far  you  want
          to turn up the volume.



     line 7
          The  Ch means  midi  channel  number and is a label for the 16
          numbers below it,  referring to the 16 midi channels.   To the
          right is a predominantly blue voices bar indicating  how  many
          simultaneous  notes  are  being  played,   i.e.,   the current
          polyphony.  The very left part of the voices bar is shown with
          yellow + marks and indicates how full the Alsa  output  buffer
          is.  (If the buffer gets too low,  that means gt can't produce
          output fast enough,  and you may anticipate dropouts.)   Some-
          times  the bar will have a green middle part -- this shows the
          number of notes that were actually in the  music.    The  blue
          part  indicates notes added for various effects (reverb,  cho-
          rus, stereo, or tutti).

          A < mark on the voices bar shows where the voices ceiling  has
          been set.  The ceiling is the target maximum polyphony,  i.e.,
          number  of  simultaneously  sounding  notes,  that gt tries to
          remain below.   The number can be adjusted up or down with the
          shifted right and left arrow keys.    Higher  polyphony  gives
          better  sound  quality  but means more work for the cpu.   The
          default ceiling is 128,  and the default absolute  maximum  is
          256.

          To  the  right  of  the  voices bar are labels for the columns
          below.   The labels are Bnk for midi bank number ('0'  is  not
          shown;  percussion banks are shown below in yellow,  XG varia-
          tion  bank  numbers in cyan,  and the XG sfx bank in magenta),
          Prg for midi program number,  Vol for  the  midi  volume  con-
          troller,   Exp for  the  expression  controller,   Pan for the
          left-right panning controller,  S for the sustain pedal  (also
          shows portamento, sostenuto,  legato,  and soft pedal),  B for
          pitch bend (also shows modulation wheel with *).  R for rever-
          beration, C for chorus depth, c for celeste effect,  and X for
          miscellaneous, mostly unimplemented controllers.

          Though  they  are  displayed,   the legato and soft pedal con-
          trollers are not yet implemented.   You  can  click  with  the
          mouse on the R, C, or c labels to toggle reverberation, chorus
          effect, or celeste effect on or off.   (For XG songs,  celeste
          effect  is  actually variation effect,  and in the c column is
          shown with a V.)


     lines 9-24
          These 16 lines show events on  the  16  basic  midi  channels.
          Gt can  play  on  up to 64 channels,  for midi files that have
          port commands to play on several synthesizers,  but  there  is
          only room to show the first 16 in full on the display.   Notes
          from  higher  channels  do show up,  though,  and are shown in
          cyan.  After the number of the midi channel is the name of the
          patch chosen with the midi program command.   The  name  given
          here  is  the  name  for  the patch given in the configuration
          file, for non-percussion channels.   For a percussion channel,
          it's the drumset name.  If there is no name,  that means there
          was no program command given,  and  the  default  Grand  Piano
          program is being used, or the default drumset 0, for a percus-
          sion channel.  Or, for a drumset,  the absence of any name may
          be because no name for the drumset was given in the configura-
          tion file.

          In the middle area of the midi channel display the  notes  are
          shown.    Lower notes are to the left and higher to the right.
          There isn't room to show very high or very low notes, so these
          are clipped.   A digit from 1-9 indicates the  note  velocity.
          At the onset of the note, if it's playing a stereo patch, it's
          shown  in  magenta,  otherwise it's shown in red for a melodic
          note and yellow for a percussion note.   The decay and release
          phases of a note are shown in green,  and the sustain phase in
          blue.

          After that is the midi bank number in use on the channel, from
          000 to 127,  which for percussion channels is shown in yellow.
          The 000 for melodic bank 0 is left implicit.   Numbers in cyan
          are for XG variation banks.   The XG  sfx  bank  is  shown  as
          magenta  sfx  (if  your  configuration  does not supply an sfx
          bank, but you do have a bank 120, bank 120 is used for the sfx
          bank).   After this come the midi program number  and  current
          values for some midi controllers.

     bottom line
          Shown  here  are  labels for the function keys.   The Help and
          Mixer keys bring up subwindows.  In the Mixer window,  you can
          adjust speaker balance by mouse-clicking to the left or  right
          of  the  speaker letters.   Small letter l and r stand for the
          left and right rear speakers.

     lines 26 on
          If there is room in the display window, below the midi channel
          display,  the current play list of midi files is shown.    You
          can select a new song to play by clicking in the list.




OPTIONS
=======
     The  following  command line options are accepted by version 0.1 of
     gt:

     -h   Help.   This shows a one-page summary  of  the  options  being
          described here.  The path name of the current default configu-
          ration file is also shown,  and,  if you have set up alternate
          patch sets with if statements in your configuration file,  the
          names  of  these alternate patch sets are also shown (they can
          be chosen with the command line option -#\fInumber).

     -v   Copyright statement from Tuukko Toivonen.

     -o filename
          Place output on filename.    Assumes  output  mode  ``w  was
          selected  with  the  -Ow  option.   The special filename ``-
          causes output to be placed on stdout.

     -O mode
          Selects the output mode  from  the  compiled-in  alternatives.
          mode  must begin with one of the supported output mode identi-
          fiers. Run gt with the -h option to see a list.  The following
          identifier should be available in all versions:

     -Ow  Generate RIFF WAVE format output.   If output is directed to a
          non-seekable file,  or if gt is interrupted before closing the
          file,  the file header will contain 0xFFFFFFFF in the RIFF and
          data block length fields. The popular sound conversion utility
          sox is able to read such malformed files,   so  you  can  pipe
                                   -6-
          data  directly  to sox for on-the-fly conversion to other for-
          mats.


     Format options
          Option characters may be  added  immediately  after  the  mode
          identifier to change the output format.  The following options
          are recognized:



     8    8-bit sample width

     1    16-bit sample width

     l    Linear encoding

     U    uLaw (8-bit) encoding

     M    Monophonic

     S    Stereo

     q    Quadraphonic

     s    Signed output

     u    Unsigned output

     x    Byte-swapped output

     Note that some options have no effect on some modes.   For example,
     you  cannot  generate a byte-swapped RIFF WAVE file,  or force uLaw
     output on a Linux PCM device.


     -s frequency
          Sets the resampling frequency.   Not  all  sound  devices  are
          capable  of all frequencies -- an approximate frequency may be
          selected, depending on the implementation.

     -a   Turns on antialiasing.   Samples are  run  through  a  lowpass
          filter  before  playing,   which reduces aliasing noise at low
          resampling frequencies.   (With the sampling rate set  to  the
                                   -7-
          standard 44,100 samples per second,  there's no point to using
          this.)

     -k number
          Select  interpolation algorithm for resampling:   0 for linear
          interpolation,  1 for cspline interpolation,  2  for  LaGrange
          interpolation.

     -r number
          Set maximum of ram in megabytes to use up keeping patches from
          previously played midi files.   This should presumably be less
          than your total ram plus disk cache size.   The default is  60
          megabytes.  It probably doesn't matter unless you're using big
          sf2 soundfont patchsets.

     -F   Toggles fast loading mode.  With fast loading,  only the first
          velocity  layer is loaded in extended GUS patches.   It's lots
          faster -- quality suffers.

     -f   Toggles fast envelopes.   Some MIDI files  sound  better  when
          notes decay slower -- it gives the impression of reverb, which
          gt doesn't currently fully support.

     -d   Sets  "dry"  mode.   After notes are released,  their decay is
          governed by the patch data rather than  the  volume  envelope.
          This  is  economical  of polyphony,  but for some instruments,
          typically vibraphone,  ocarina,  and mandolin,  notes  may  be
          terminated  too suddenly.   Non-dry,  or "wet" mode is the de-
          fault.


     -S separation
          Tunes surround sound  separation.    Lower  values  give  more
          separation.    For 5.1 surround,  the default is 64.   For 4.0
          surround, the default is 95.

     -p voices
          Sets polyphony (maximum  number  of  simultaneous  voices)  to
          voices.

     -A amplification
          Multiplies the master volume by amplification%.

     -X curve
          With  the  value 0, the midi expression controller affects the
          volume linearly.  With 1 (the default) or 2, it affects volume
          exponentially.   Values 3, 4, or 5 use tables specific to  GM,
          GS, and XG.

     -V curve
          With  the  value  0,  the  midi  volume controller affects the
          volume linearly.  With 1 (the default) or 2, it affects volume
          exponentially.   Values 3, 4, or 5 use tables specific to  GM,
          GS, and XG.

     -C ratio
          Sets  the  ratio  of  sampling and control frequencies.   This
          determines how  often  envelopes  are  recalculated  --  small
          ratios yield better quality but use more CPU time.

     -# number
          Selects  patchset  when the configuration file has been set up
          appropriately.   See the FILES section below under if and else
          for how to do this.

     -L directory
          Adds directory to the library path.  Patch, configuration, and
          MIDI files are searched along this path.    Directories  added
          last will be searched first.   Note that the current directory
          is always searched first before the library path.

     -c file
          Reads an extra configuration file.

     -I number
          Uses the program number as the default instrument. Any Program
          Change events in MIDI files will override this option.

     -P file
          Uses  the patch file for every program except drums.   Program
          Change events will be ignored.  This is useful for testing new
          patches.

     -D channel
          Marks channel as a drum channel.    If  channel  is  negative,
          channel  -channel  is  marked as an instrumental channel.   If
          channel is 0, all channels are marked as instrumental.    (Sy-
                                   -9-
          sex  dumps  in  GS or XG midi files may mark channels as drums
          and will override this flag.)


     -Q channel
          Causes channel to be quiet.   If channel is negative,  channel
          -channel is turned back on.  If channel is 0, all channels are
          turned on.

     -U   Instructs gt to unload all  instruments  from  memory  between
          MIDI files.   This can reduce memory requirements when playing
          many files in succession.

     -i interface
          Selects  the user interface from the compiled-in alternatives.
          interface must begin  with  one  of  the  supported  interface
          identifiers.    Run gt with the -h option to see a list.   The
          following identifiers may be available:

     -id  The dumb interface -- plays files in sequence, prints messages
          according to verbosity level. The trace mode shows the current
          and total playing time.

     -in  The ncurses full-screen interface with interactive controls.

     Interface options
          Option characters may be added immediately after the interface
          identifier.  The following options are recognized:

     v    Increases verbosity.  This option is cumulative.

     q    Decreases verbosity.  This option is cumulative.

     t    Toggles trace mode.  Trace mode is the default for the ncurses
          interface,  so t turns it off.   Trace mode is not very useful
          for  the  dumb  interface.   The ncurses display in trace mode
          displays events in midi time.  That is, midi events, like note
          onsets, are displayed approximately at the time you hear them,
          though gt is working a second or so ahead in the song,  calcu-
          lating data to send to the output driver.   So midi time is  a
          little  behind  real time.   However,  the status of midi con-
          trollers is shown in real  time,   so  in  the  display,   the
          controllers  will  change  slightly  before you can hear their
          effects.

     -B fragments
          For the Linux sound driver,   selects  the  number  of  buffer
          fragments.    Increasing  the  number  of fragments may reduce
          choppiness when many processes are running.   Specify a  frag-
          ments  of  0 to use the maximum number of fragments available.
          The maximum number available is the default, and it's probably
          not useful to change that.


FILES
=====
     gt 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 instru-
     ment files.   Multiple files may be specified,  and  statements  in
     later  ones  will override earlier ones.   The following statements
     can be used in a configuration file:

     -p voices
          Sets polyphony (maximum  number  of  simultaneous  voices)  to
          voices.

     -A amplification
          Multiplies the master volume by amplification%.

     -X curve
          With  the  value 0, the midi expression controller affects the
          volume linearly.  With 1 (the default) or 2, it affects volume
          exponentially.

     -V curve
          With the value 0,  the  midi  volume  controller  affects  the
          volume linearly.  With 1 (the default) or 2, it affects volume
          exponentially.

     -C ratio
          Sets  the  ratio  of  sampling and control frequencies.   This
                                   -11-
          determines how  often  envelopes  are  recalculated  --  small
          ratios yield better quality but use more CPU time.


     -s frequency
          Sets  the  resampling  frequency.    Not all sound devices are
          capable of all frequencies -- an approximate frequency may  be
          selected, depending on the implementation.

     -k number
          Select  interpolation algorithm for resampling:   0 for linear
          interpolation,  1 for cspline interpolation,  2  for  LaGrange
          interpolation,   3  for  cspline  interpolation  with low-pass
          filtering.

     -r number
          Set maximum of ram in megabytes to use up keeping patches from
          previously played midi files.   This should presumably be less
          than  your total ram plus disk cache size.   The default is 60
          megabytes.  It probably doesn't matter unless you're using big
          sf2 soundfont patchsets.

     -O mode
          Same as corresponding commandline option.

     dir directory
          Adds directory to the search path in the same manner as the -L
          command line option.

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

     sf2 file [option]
          Reads the parameters and waveforms in an AWE-compatible Sound-
          Font  file.    Both  ".sbk" and ".sf2" SoundFonts can be used.
          Preceding patch mappings must list all patches that are to  be
          loaded from the file,  and the preceding bank/drumset keywords
          must  be  followed by sf2 or sbk (which are equivalent).   The
          options allowed are:

     banknumber
          The bank number given in the first preceding  "bank"/"drumset"
          statement  is to be used in place of the bank banknumber given
          in the SoundFont itself.


     bank number [option] [[#N ]name]
          Selects the tone bank to modify.   Patch mappings that  follow
          will  affect this tone bank.   The options allowed are sf2 and
          sbk,  which were described above.   The optional name  is  for
          the  sake  of the display interface,  so the bank can be shown
          with a meaningful name instead of just a  number.    The  name
          assigned  can  be  preceded  by  "#N ", for compatibility with
          Timidity++,  which otherwise complains about  the  extra  name
          argument.

     drumset number [option] [[#N ]name]
          Selects  the  drum set to modify.   Patch mappings that follow
          will affect this drum set.   The options allowed are  sf2  and
          sbk,   which were described above.   As for the bank statement
          described above, the name is for display.

     sfx  Selects the XG non-rhythm SFX bank to modify.   Patch mappings
          that follow will affect this tone bank.

     drumsfx1

     drumsfx2
          Select the XG rhythm SFX banks to modify.  Patch mappings that
          follow will affect these tone banks.

     number file [options]
          Specifies that the the MIDI program number in the current tone
          bank  or drum set should be played using the patch file.   op-
          tions 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 instru-
          ment.  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.


     tuning=cents
          Changes the pitch of the instrument.   cents is a signed quan-
          tity in units of 1/100th of a semitone,  so,   e.g.,   specify
          "+1200" to go up an octave.   The number must begin with a "+"
          or a "-".


     pan=panning
          Sets  the instrument's default panning.   panning may be left,
          right, center,  or an integer between -100 and 100,  designat-
          ing 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}
          Strangely  shaped  envelopes  are  removed  automatically from
          melodic instruments in GUS patches.    keep  can  be  used  to
          prevent stripping envelope or loop data.  (Stripping envelopes
          was  originally  the default for gt,  but in this version it's
          not.   So these options are no longer useful -- they are  kept
          for compatibility.  G.L.)


     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 evidenced by a clicking noise whenever the instrument
          is  played,   so  adding  the  strip=tail option will markedly
          improve sound quality.


     NOTE:   Whenever any filename ends in one of the  compiled-in  com-
     pression identifiers, such as .gz,  or .sht,  gt will pipe the file
     through  the  appropriate decompressor.   MIDI files often compress
     very well, so the ability to handle compressed files can be useful.

     The special filename ``- can be  used  on  the  command  line  to
     indicate that a MIDI file should be read from stdin.

COPYRIGHT
=========
     Copyright (C) 1995 Tuukka Toivonen.
     See AUTHORS below for additional copyrights.

     gt/TiMidity is free software; you can redistribute it and/or modify
     it  under  the terms of the GNU General Public License as published
     by the Free Software Foundation;  either version 2 of the  License,
     or (at your option) any later version.

     TiMidity  is  distributed  in the hope that it will be useful,  but
     WITHOUT ANY WARRANTY;  without even the implied  warranty  of  MER-
     CHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE. See the GNU
     General Public License for more details.

AVAILABILITY
============
     The latest release of the original  version  is  available  on  the
     TiMidity  Home Page,  URL http://www.clinet.fi/~toivonen/timidity/.
     (But the original version is no longer being maintained -- see  URL
     http://http://www.cgs.fi/~tt/discontinued.html.)      The   present
     modified  version  is at
     ftp://ling.lll.hawaii.edu/pub/greg/gt-0.3.tar.gz.


BUGS
====
     8-bit and low-rate output sounds worse than it should.

     Eats more CPU time than a small CPU-time-eating animal.

AUTHORS
=======
     Tuukka Toivonen <[email protected]>
     Surround  sound,   reading extended GUS patches implemented by Greg
     Lee.
     HP-UX audio code, X-Motif interface,  icons and antialiasing filter
     by Vincent Pagel <[email protected]>
     Tcl/Tk  interface  and  AWE  SoundFont  support  by  Takashi   Iwai
     <[email protected]>
     Windows 95/NT audio code by Davide Moretti <[email protected]>
     DEC audio code by Chi Ming HUNG <[email protected]>
     S-Lang    user    interface    by   Riccardo   Facchetti   <riccar-
     [email protected]>
     IW patchset support, karaoke,  AWE/XG enhancements,  much reworking
     of     the     code     by     Greg      Lee      <[email protected]>,
     <[email protected]>
     KDE  user  interface  "KMidi"  Copyright  (C)  1997  Bernd Johannes
     Wuebben <[email protected]>
     Effects filter by Nicolas Witczak <[email protected]>,  see  URL
     http://www.geocities.com/SiliconValley/Lab/6307/).
     Portamento,   mod  wheel,   and  other enhancements from TiMidity++
     Copyright  (C)  1999  Masanao  Izumo  <[email protected]>.    See  URL
     http://www.goice.co.jp/member/mo/hack-progs/timidity.html.
     alsa driver Copyright (C) 1999 Masanao Izumo <[email protected]>
     bsd20   driver   Written  by  Yamate  Keiichiro  <[email protected]
     nara.ac.jp>
     esd driver by Avatar <[email protected]>
     hpux_d driver Copyright 1997 Lawrence T. Hoff
     nas driver Copyright (C) 1999 Michael Haardt <[email protected]>
     XAW Interface from Tomokazu Harada <[email protected]>
     and Yoshishige Arai <[email protected]>
     GTK+ interface by Glenn Trigg 29 Oct 1998
     The  autoconf  script  is  (C)Copyright  1998  by  Hiroshi Takekawa
     <[email protected]>,  modified for automake  by  Isaku
     Yamahata  <[email protected]>,   modified for automake by
     Masanao Izumo <[email protected]> (1998.11).
     The m4 autoconf definitions:   Configure paths for  ESD  by  Manish
     Singh  98-9-30,   stolen back from Frank Belew,  stolen from Manish
     Singh, Shamelessly stolen from Owen Taylor.
     Configure Paths for Alsa by Christopher  Lansdown  ([email protected]
     fred.edu),   29/10/1998,   modified for TiMidity++ by Isaku Yamaha-
     ta([email protected]), 16/12/1998.

Retrieved from "http://alsa.opensrc.org/Gt"

Category: Software