TiMidity++ - MIDI to WAV converter and player
timidity [-options] filename [filenames ...]
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 Ultra-
sound-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.
You can use the following expressions as the filename argument:
- Read a MIDI file from standard input.
Read a MIDI file from the specified path on a filesystem.
Read and play all MIDI files in the specified directory.
Extract and play the file(s) in the archive. If you want to specify a certain MIDI
file in the archive, append #<MIDI-filename> to the archive name. The expression
after # can use regular expressions (case insensitive).
Plays file.mid in file.zip
Plays any files that match the regular expression '*.mid' in file.zip
This expression is the same as
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:
tar + gzip (*.tar.gz, *.tgz)
lzh (*.lzh, *.lha)
(lh0, lh1, lh2, lh3, lh4, lh5, lh6, lzs, lz5, lz4 are available)
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 news-
TiMidity parses MIME Multi-part messages.
The following MIME-types are allowed:
"begin" is required
"Content-Transfer-Encoding base64" is required
"Content-Transfer-Encoding quoted-string" is required
Mac BinHex format
only 'HQX' format is available
Play the file specified in the URL.
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.
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)
The following command line options are accepted by TiMidity:
Multiplies the master volume by amplification %. Default value is 70%. Higher
amplification makes louder sounds. The allowed values of amplification range from
0 to 800%.
-a Turns on antialiasing. Samples are run through a lowpass filter before playing,
which reduces aliasing noise at low resampling frequencies.
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 chop-
piness 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 sta-
tus display off sync. Specify a fragments number of 0 to use the maximum number of
Sets the ratio of sampling and control frequencies. This determines how often
envelopes are recalculated -- small ratios yield better quality but use more CPU
Reads an extra configuration file.
Marks channel as a drum channel. If channel is negative, channel -channel is
marked as an instru- mental channel. If channel is 0, all channels are marked as
-d dir Specifies the directory containing installed dynamic-link interface 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.
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.
t/T Enable/disable tracing all Text Meta Events.
o/O Accept/reject pronouncing multiple same notes.
m HH Sets the manufacturer ID to HH (where HH are two hex-digits).
HH values of GM/gm, GS/gs or XG/xg are understood as 41, 43 and 7e respec-
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 balance rapidly between left and right, which can cause severe
popping 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 sup-
port for the X Window System.
-h Show the help message.
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
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
Environment variable TIMIDITY_SKIN must be set to the path of the skin data
(compressed data are also supported).
-ig GTK interface
-ir Launch timidity as MIDI server.
-iA Launch timidity as ALSA sequencer client.
Option characters may be added immediately after the interface identifier.
The following options are recognized:
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
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.
Specify audio queue time limit to reduce voices. If the remaining 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.
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.
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, volume ramping is the
same as normal stage 3.
-m 0 Disable sustain ramping, causes constant volume sustains (default).
A note at full volume will decay for 3 seconds once it begins to be sus-
tained (assuming the regular stage 3 rate would not cause it to decay even
longer). Softer notes will of course die sooner.
Enables Noise Shaping Filter. degree ranges from 0 (min) to 4 (max).
Selects the output mode from the compiled-in alternatives. mode 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 supported. Common for-
-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 popu-
lar 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 for-
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
s Signed output
u Unsigned output
x Byte-swapped output
Note that some options have no effect on some modes. For example, you cannot gen-
erate a byte-swapped RIFF WAVE file, or force uLaw output on a Linux PCM device.
Place output on filename, which may be a file, device, or HP-UX audio server,
depending on the output mode selected with the -O option. The special filename
``-'' causes output to be placed on stdout.
-P Use patch file for all programs.
Sets polyphony (maximum number of simultaneous voices) to voices.
-p a Toggle automatic polyphony reduction.
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
-R n Enables Pseudo Reverb Mode. It sets every instrument's release to n ms. If n=0, n
is set to 800 (default).
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).
Sets the resampling frequency (Hz or kHz). Not all sound devices are capable of
all frequencies -- an approximate frequency may be selected, depending on the
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 timing.
-U Unload all instruments from memory between MIDI files. This can reduce memory
requirements when playing many files in succession.
Extended mode for MS Windows. The following options are available:
-wr Use rcpcv.dll to play RCP/R36 files.
-wR Do not use rcpcv.dll (default).
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
Sets WRD options:
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 emu-
lation levels are:
-WRd=0 do not emulate any bugs of MIMPI
-WRd=1 only emulate some bugs (default)
-WRd=2 emulate all known bugs
Use filename as WRD file only no file matching *.wrd is found.
Uses filename as WRD file.
Configure TiMidity with string. The format of string is the same as timidity.cfg.
-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 carriage return.
Cause the table of frequencies to be read from file. This is useful to define a
tuning different from the occidental temperate scale.
In -EF <arg> option, you can specify following effect options:
Swap left & right.
Disabled delay effect.
Enable MIDI chorus effect control.
The optional parameter `level' specifies the chorus level [0..127]
Surround sound, chorus detuned to a lesser degree (default).
The optional parameter `level' specifies the chorus level [0..127].
Disable MIDI reverb effect control.
Enable MIDI reverb effect control.
The optional parameter `level' specifies the reverb level [0..127] This
effect is only available in stereo (default).
Global reverb effect.
Enable the n th degree noiseshaping filter. Valid values of n are in the
This effect is only available for 8-bit linear encoding
lsmidiprog(1), mididump(1), patinfo(1), sf2text(1), wav2pat(1), timidity.cfg(5)
Copyright (C) 1999-2002 Masanao Izumo <firstname.lastname@example.org> Copyright (C) 1995 Tuukka Toivonen
The original version was developed by Tuukka Toivonen <email@example.com> until the release of
TiMidity-0.2i. His development was discontinued because of his being busy with work.
This program 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 ver-
sion 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General 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
The latest release is available on the TiMidity++ Page,
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 :-)
Version 0.2i and earlier:
Tuukka Toivonen <firstname.lastname@example.org>
Vincent Pagel <email@example.com>
Takashi Iwai <firstname.lastname@example.org>
Davide Moretti <email@example.com>
Chi Ming HUNG <firstname.lastname@example.org>
Riccardo Facchetti <email@example.com>
IZUMO Masanao <firstname.lastname@example.org>
HARADA Tomokazu <email@example.com>
YAMATE Keiichirou <firstname.lastname@example.org>
KIRYU Masaki <email@example.com>
AOKI Daisuke <firstname.lastname@example.org>
MATSUMOTO Shoji <email@example.com>
KOYANAGI Masaaki <firstname.lastname@example.org>
IMAI Kunihiko <email@example.com>
NOGAMI Takaya <firstname.lastname@example.org>
WATANABE Takanori <email@example.com>
TAKEKAWA Hiroshi <firstname.lastname@example.org>
NAGANO Daisuke <email@example.com>
YAMAHATA Isaku <firstname.lastname@example.org>
KINOSHITA kosuke <email@example.com>
ARAI Yoshishige <firstname.lastname@example.org>
Glenn Trigg <email@example.com>
and other many people sent information and bug-fixes.
The english version of this man page was written by NAGANO Daisuke
If you have any comments or suggestions or complaints :) about this man page, please tell
2.11.0 Nov 10 2001 TiMidity++(1)