timidity (1)





NAME

       TiMidity++ - MIDI to WAV converter and player


SYNOPSIS

       timidity [-options] filename [filenames ...]


DESCRIPTION

       TiMidity++  is  a converter that converts some of MIDI files (supported
       formats: Standard MIDI files (*.MID), Recomposer files  (*.RCP,  *.R36,
       *.G18,  *.G36)  and  Module  files  (*.mod)) into formatted audio files
       (e.g. RIFF WAVE).  TiMidity  uses  Gravis  Ultrasound-compatible  patch
       files  or Soundfonts (*.sfx, *.sf2) to generate digital audio data from
       MIDI files.  The digital audio data generated by TiMidity can be stored
       in  a  file  for  processing,  or  played in real time through an audio
       device.
       In real time playing, TiMidity can show the lyrics contained in KAR  or
       WRD files.


FILENAME

       You can use the following expressions as the filename argument:

       -      Read a MIDI file from standard input.

       /path/filename
              Read a MIDI file from the specified path on a filesystem.

       dir:directory
       directory/
              Read and play all MIDI files in the specified directory.

       Archive File
              Extract  and  play  the  file(s) in the archive.  If you want to
              specify a certain MIDI file in the archive, append  #<MIDI-file-
              name> to the archive name.  The expression after # can use regu-
              lar expressions (case insensitive).

              For example:

              timidity 'file.zip#file.mid'
                     Plays file.mid in file.zip

              timidity 'file.lzh#*.mid'
                     Plays any files that match the regular expression '*.mid'
                     in file.zip

              timidity 'file.tgz#*'
                     This expression is the same as
                     timidity 'file.tgz'

              Since  these mechanism are contained in TiMidity itself, you can
              use this syntax even in the MS Windows environment.

              TiMidity can handle the following archive formats:


       news://news-server[:port]/Message-ID
       news://news-server[:port]/newsgroup[/first-last]
              Play  the MIDI file in the specified article on the news server.
              If a newsgroup is specified TiMidity plays all MIDI files  found
              in any article posted to that newsgroup.
              TiMidity parses MIME Multi-part messages.
              The following MIME-types are allowed:

              uuencoded file
                     "begin" is required

              base64 encoded
                     "Content-Transfer-Encoding base64" is required

              quoted-string
                     "Content-Transfer-Encoding quoted-string" is required

              Mac BinHex format
                     only 'HQX' format is available

       http://url
       ftp://url
              Play the file specified in the URL.

              For example:

              "timidity                            http://www.goice.co.jp/mem-
              ber/mo/dist/midi/impromptu.mid"

              plays the specified MIDI-file directly from the network.

              If these expression are used in the *.cfg files,  you  can  even
              use patch-files (and others) from remote machines.


INPUT FILE

       Timidity can handle the following file formats:

        .MID (Format 0, 1, 2)
              Standard MIDI File

        .RCP,  .R36,  .G18, .G36 (Recomposer formats (product of COME ON MUSIC
       co.))
              The Windows version converts these with rcpcv.dll.

        .KAR (Karaoke format)
              Displays the lyrics as a Lyric Meta Event message.

        .MOD, MOD.* (module file)

        .WRD (WRD format)


       -a     Turns on antialiasing.  Samples are run through a lowpass filter
              before playing, which reduces aliasing noise at  low  resampling
              frequencies.

       -B fragments[,buffer-bits]
              For the Linux/FreeBSD/OSS/ALSA/Windows sound driver, selects the
              number of buffer fragments in interactive mode.  Increasing  the
              number  of  fragments  may reduce choppiness when many processes
              are running.  It will make TiMidity seem to  respond  sluggishly
              to  fast forward, rewind, and volume controls, and it will throw
              the status display off sync.  Specify a fragments number of 0 to
              use the maximum number of fragments available.

       -b mode
              (obsoleted)

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

       -c filename
              Reads an extra configuration file.

       -D channel
              Marks  channel as a drum channel.  If channel is negative, chan-
              nel -channel is marked as an instru- mental channel.  If channel
              is 0, all channels are marked as instrumental.

       -d dir Specifies the directory containing installed dynamic-link inter-
              face modules.

       -e     Make TiMidity evil.  For the Win32 version, this  increases  the
              task  priority  by  one.   It  can give better playback when you
              switch tasks at the expense of slowing all other tasks down.

       -E mode
              Set TiMidity extend modes.  The following  modes  are  available
              (capitalized switch means disable this feature):

              w/W    Enable/disable modulation controlling.

              p/P    Enable/disable portamento controlling.

              v/V    Enable/disable NRPM vibration.

              s/S    Enable/disable channel pressure controlling.

              b n    Use tone bank n as the default.

              B bank Sets the bank number of all channels to bank.

              F args For effects.  See below.

       -F     Turns  on  fast  panning  to accommodate MIDI pieces that expect
              panning adjustments to affect notes that  are  already  playing.
              Some  files that don't expect this have a habit of flipping bal-
              ance rapidly between left and right, which can cause severe pop-
              ping when the -F flag is used.
              In the current version of TiMidity this option is a toggle.

       -f     Toggles  fast  envelopes.  This option makes TiMidity faster but
              the release time of the notes are shortened.

       -g sec Open the Sound-Spectrogram window.  This option is activated  if
              the system has support for the X Window System.

       -h     Show the help message.

       -I voice[/c]
              Use  the  program number as the default instrument.  Any Program
              Change events in MIDI files will override this option.
              If voice is followed by /c the default  program  number  of  the
              channel c is specified by voice.

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

              -id    dumb interface

              -in    ncurses interface

              -is    S-Lang interface

              -ia    X Athena Widget interface

              -ik    Tcl/Tk interface

              -im    Motif interface

              -iT    vt100 interface

              -ie    Emacs interface (use M-x timidity in Emacs)

              -ii    skin interface

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

              v      Increases verbosity level.  This option is cumulative.

              q      Decreases verbosity level.  This option is cumulative.

              t      Toggles trace mode.  In trace mode, TiMidity attempts  to
                     display  its  current  state in real time.  For the Linux
                     sound driver, this is accomplished  through  the  use  of
                     short DMA buffer fragments, which can be tuned via the -B
                     option.

              l      Loop playing (some interfaces ignore this option)

              r      Randomize file list arguments before playing

              s      Sort file list arguments before playing

       -j     Enable the loading of patch files during play.

       -k  msec
              Specify audio queue time limit to reduce voices.  If the remain-
              ing  audio buffer is less than msec milliseconds, TiMidity tries
              to kill some voices.  This feature makes  it  possible  to  play
              complicated MIDI files on slow CPUs.  Setting msec to zero tells
              TiMidity to never remove any voices.

       -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.

       -m time
              Modify  envelope  volume decay time.  time is the minimum number
              of milliseconds to sustain a sustained note.

              -m 1   Effectively behaves as if all sustains are ignored,  vol-
                     ume ramping is the same as normal stage 3.

              -m 0   Disable  sustain ramping, causes constant volume sustains
                     (default).

              -m 3000
                     A note at full volume will decay for 3  seconds  once  it
                     begins to be sustained (assuming the regular stage 3 rate
                     would not cause it to decay even longer).   Softer  notes
                     will of course die sooner.

              must  begin  with  one of the supported output mode identifiers.
              Run TiMidity with the -h option to see the list.  The  following
              identifiers are available in all versions:

              -Od    Outputs via audio device (default)

              -Or    Generate  raw waveform data.  All format options are sup-
                     ported.  Common formats include:

                      -OrU   uLaw

                      -Or1sl 16-bit signed linear PCM

                      -Or8ul 8-bit unsigned linear PCM

              -Ou    Generate Sun Audio (au) data

              -Oa    Generate AIFF data

              -Ow    Generate RIFF WAVE format output.  If output is  directed
                     to  a  non-seekable  file,  or if TiMidity 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 data directly to sox for
                     on-the-fly conversion to other formats.

              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      6-bit sample width

                      l      Linear encoding

                      U      uLaw (8-bit) encoding

                      M      Monophonic

                      S      Stereo

                      s      Signed output

                      u      Unsigned output

                      x      Byte-swapped output

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

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

       -p a   Toggle automatic polyphony reduction.

       -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.

       -q m/n Specify audio buffer in seconds.  m: maximum size of buffer,  n:
              percentage  filled  at the beginning (default is 5.0/100%) (size
              of 100% equals the whole device buffer size)

       -R n   Enables Pseudo Reverb Mode.  It sets every instrument's  release
              to n ms.  If n=0, n is set to 800 (default).

       -S size
              Sets  the  re-sample cache size to size bytes.  If size equals 0
              any sample caches are disabled.  The default value  of  size  is
              2097152 (2MB).

       -s frequency
              Sets  the  resampling  frequency  (Hz  or  kHz).   Not all sound
              devices are capable of all frequencies --  an  approximate  fre-
              quency may be selected, depending on the implementation.

       -t code
              Sets  output  coding  of Japanese text.  Possible values of code
              are:

              auto   determined by the LANG environment variable.

              ascii  Translates non-ASCII code to period.

              nocnv  No conversion.

              1251   Convert from windows-1251 to koi8-r.

              euc    Outputs EUC (Japan) coding.

              jis    Outputs JIS coding.

              sjis   Outputs SJIS coding.

       -T n   Adjust tempo to n%; 120=play MOD files with an NTSC Amiga's tim-
              ing.


              -wr    Use rcpcv.dll to play RCP/R36 files.

              -wR    Do not use rcpcv.dll (default).

       -W mode
              Play WRD file.  Allowed values of mode are:

              x      X Window System mode

              t      TTY mode

              d      Dumb mode (outputs WRD events directory)

              -      do not trace WRD
       WRD mode must also use trace mode (option -i?t) or the  timing  of  the
       WRD events will be terrible.

       -WR[opts]
              Sets WRD options:

              a1=b1,a2=b2, ...
                     Sets the WRD options.  an is the name of option and bn is
                     the value.

              d="n"  Emulates timing (@WAIT,@WMODE) bugs of the original MIMPI
                     player.  The emulation levels are:

                      -WRd=0 do not emulate any bugs of MIMPI

                      -WRd=1 only emulate some bugs (default)

                      -WRd=2 emulate all known bugs

              F="filename"
                     Use  filename  as WRD file only no file matching *.wrd is
                     found.

              f="filename"
                     Uses filename as WRD file.

       -x string
              Configure TiMidity with string.  The format  of  string  is  the
              same as timidity.cfg.

              For example:
              -x'bank 0\n0 violin.pat'
              Sets the instrument number 0 to violin.

              Character  \  (Ascii  0x5c)  in  the string is treated as escape
              character like in C literals.  For example \n is treated as car-
              riage return.

       In -EF <arg> option, you can specify following effect options:

              -EFdelay=l
                     Left delay.

              -EFdelay=r
                     Right delay.

              -EFdelay=b
                     Swap left & right.

              -EFdelay=0
                     Disabled delay effect.

              -EFchorus=1[,level]
                     Enable MIDI chorus effect control.
                     The optional parameter `level' specifies the chorus level
                     [0..127]

              -EFchorus=2[,level]
                     Surround  sound,  chorus  detuned  to  a  lesser   degree
                     (default).
                     The optional parameter `level' specifies the chorus level
                     [0..127].

              -EFreverb=0
                     Disable MIDI reverb effect control.

              -EFreverb=1[,level]
                     Enable MIDI reverb effect control.
                     The optional parameter `level' specifies the reverb level
                     [0..127]   This   effect  is  only  available  in  stereo
                     (default).

              -EFreverb=2
                     Global reverb effect.

              -EFns=n
                     Enable the n th degree noiseshaping filter.  Valid values
                     of n are in the interval [0..4].
                     This effect is only available for 8-bit linear encoding


SEE ALSO

       lsmidiprog(1),  mididump(1), patinfo(1), sf2text(1), wav2pat(1), timid-
       ity.cfg(5)


COPYRIGHT

       Copyright (C) 1999-2002 Masanao Izumo  <mo@goice.co.jp>  Copyright  (C)
       1995 Tuukka Toivonen <tt@cgs.fi>

       The original version was developed by Tuukka Toivonen <tt@cgs.fi> until
       the release of TiMidity-0.2i.  His development was discontinued because
       of his being busy with work.
       Public License for more details.

       You should have received a copy of the GNU General Public License along
       with this program; if not, write to the Free Software Foundation, Inc.,
       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


AVAILABILITY

       The latest release is available on the TiMidity++ Page,
       URL http://www.goice.co.jp/member/mo/timidity/


BUGS

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

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

       This  man  page was translated from Japanese to English by me with poor
       English skill :-)


AUTHORS

       Version 0.2i and earlier:
       Tuukka Toivonen <toivonen@clinet.fi>
       Vincent Pagel <pagel@loria.fr>
       Takashi Iwai <iwai@dragon.mm.t.u-tokyo.ac.jp>
       Davide Moretti <dmoretti@iper.net>
       Chi Ming HUNG <cmhung@insti.physics.sunysb.edu>
       Riccardo Facchetti <riccardo@cdc8g5.cdc.polimi.it>

       TiMidity++:
       IZUMO Masanao <mo@goice.co.jp>
       HARADA Tomokazu <harada@prince.pe.u-tokyo.ac.jp>
       YAMATE Keiichirou <keiich-y@is.aist-nara.ac.jp>
       KIRYU Masaki <mkiryu@usa.net>
       AOKI Daisuke <dai@y7.net>
       MATSUMOTO Shoji <shom@i.h.kyoto-u.ac.jp>
       KOYANAGI Masaaki <koyanagi@okilab.oki.co.jp>
       IMAI Kunihiko <imai@leo.ec.t.kanazawa-u.ac.jp>
       NOGAMI Takaya <t-nogami@happy.email.ne.jp>
       WATANABE Takanori <takawata@shidahara1.planet.kobe-u.ac.jp>
       TAKEKAWA Hiroshi <sian@big.or.jp>
       NAGANO Daisuke <breeze.geo@geocities.co.jp>
       YAMAHATA Isaku <yamahata@kusm.kyoto-u.ac.jp>
       KINOSHITA kosuke <kino@krhm.jvc-victor.co.jp>
       ARAI Yoshishige <ryo2@on.rim.or.jp>
       Glenn Trigg <ggt@netspace.net.au>

       and other many people sent information and bug-fixes.

       The english version of this man page  was  written  by  NAGANO  Daisuke
       breeze.nagano@nifty.ne.jp>.
       If you have any comments or suggestions or complaints :) about this man
       page, please tell me it.