Provided by: timidity_2.13.2-39build1_i386
TiMidity++ - MIDI-to-WAVE converter and player
timidity [options] filename [...]
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
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. For
% timidity some/where/
plays all files in the directory some/where/.
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 path after `#' allows
the use of the wildcard expressions (case insensitive).
You can use escape sequence \xHH, where `HH' is a ASCII number
in hexadecimal integer.
% timidity file.zip#file.mid
Plays file.mid in file.zip
% timidity file.lzh#*.mid
Plays any files that match the wildcard expression *.mid
% timidity file.tgz#*
This expression is the same as 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:
tar+gzip (*.tar.gz, *.tgz)
lzh (*.lzh, *.lha)
(lh0, lh1, lh2, lh3, lh4, lh5, lh6, lz4, lzs and lz5 are
Other archives can be expanded if expander command is specified
on the compile phase. TiMidity++ will pipe that command.
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 in case of news://*
scheme, extracts MIDI file that was post to that group, or in
case of normal file, you can explicitly handle MIME documents by
naming that file with *.mime extension, or prefix that file with
The following MIME-types are allowed:
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, .rmi (Format 0, 1, 2)
Standard MIDI File
.rcp, .r36, .g18, .g36 (Recomposer formats)
Recomposer format which is product for COME ON MUSIC co.
.mfi (MFi Version 3 - Melody Format for i-Mode)
i-Mode is Japanese local mobile phone
.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 n%. Default value is 70%.
Higher amplification makes louder sounds. You can specify the
drum power, ratio of drum volume from the other channels. The
allowed values of amplification range from 0 (no sound) to 800.
Optionally to put `a' character along with -a option, or to use
--volume-compensation, instructs TiMidity++ to regularize the
volume. You can easily gain dynamic range.
-A90 volume 90%, drum power 100%, compensation is off
-A,120 volume 70%, drum power 120%, compensation is off
volume 90%, drum power 120%, compensation is off
-Aa volume 70%, drum power 100%, compensation is on
-A90a volume 90%, drum power 100%, compensation is on
volume 70%, drum power 120%, compensation is on
volume 90%, drum power 120%, compensation is on
Turns on anti-aliasing. Samples are run through a lowpass
filter before playing, which reduces aliasing noise at low
-B n,m, --buffer-fragments=n,m
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.
-C n, --control-ratio=n
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.
-c file, --config-file=file
Reads an extra configuration file.
-D n, --drum-channel=n
Marks channel as a drum channel. If channel is negative,
channel -n is marked as an instrumental channel. If n is 0, all
channels are marked as instrumental.
-d dir, --interface-path=dir
Specifies the directory containing installed dynamic-link
-E mode, --ext=mode
Set TiMidity++ extend modes. The following modes are available
(capitalized switch means disable this feature):
Enable/disable modulation controlling.
Enable/disable portamento controlling.
Enable/disable NRPM vibration.
Enable/disable channel pressure controlling.
Enable/disable modulation envelope controlling.
Enable/disable tracing all Text Meta Events.
Accept/reject pronouncing multiple same notes.
Enable/disable MIDI Tuning Standard temperament
Sets the manufacturer ID to HH (where HH are two
HH values of GS/gs, XG/xg or GM/gm are understood as 41,
43 and 7e respectively.
Sets the system manufacturer ID to HH (where HH are two
In this option, the manufacture ID is set unchangeable.
Manufacture ID from the input file would be ignored.
Use tone bank n as the default.
Sets the bank number of all channels to n.
Use the program number as the default instrument. Any
Program Change events in MIDI files will override this
If n is followed by /m the default program number of the
channel m is specified by n.
Similar to -Ei but this ignores all program changes.
F args For effects. See below. In args option, you can specify
following effect options:
Sets delay type.
d, 0 Disabled delay effect.
l, 1 Left delay.
r, 2 Right delay.
b, 3 Swap left & right.
Optional msec is the delay time.
d, 0 Disable this effect.
n, 1 Enable MIDI chorus effect control.
s, 2 Surround sound, chorus detuned to a lesser
The optional parameter level specifies the chorus
level 0 to 127.
d, 0 Disable MIDI reverb effect control.
n, 1 Enable MIDI reverb effect control. This
effect is only available in stereo.
g, 2 Global reverb effect.
f, 3 Freeverb MIDI reverb effect control
G, 4 Global freeverb effect.
The optional parameter level specifies the reverb
level 0 to 127.
d, 0 Disable LPF effect.
c, 1 Chamberlin resonant LPF (12dB/oct)
m, 2 Moog resonant low-pass VCF (24dB/oct)
Enable the n th degree noiseshaping filter. The
distortion at decay stage is improved, but the
noise on human auditory feeling increases because
it shifts to a high frequency. In case of 8-bit
linear encoding, valid values of n are in the
interval from 0 (min) to 4 (max). Default value
is 4. In case of 16-bit linear encoding, valid
values of n are in the interval from 0 to 4.
According to the value, it works as following.
Default value is 4.
0 No noise shaping.
1 Traditional noise shaping.
2 Overdrive-like soft-clipping + new noise
3 Tube-amplifier-like soft-clipping + new
4 New noise shaping.
d, 0 No interpolation.
l, 1 Linear interpolation.
c, 2 Cubic spline interpolation.
L, 3 Lagrange method.
n, 4 Newton polynomial interpolation.
g, 5 Modified Gauss effect (default).
This option affects the behavior of -N option.
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.
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.
Toggles fast envelopes. This option makes TiMidity++ faster but
the release time of the notes are shortened.
-g sec, --spectrogram=sec
Open the Sound-Spectrogram window. This option is activated if
the system has support for the X Window System.
-H n, --force-keysig=n
Specify the key signature. MIDI playback is transposed to the
key with the same number of sharps (when n is positive) or flats
(when n is negative). Valid values for n range from -7 to 7.
For example, if n is 1, MIDI playback would transpose 1 flat
(i.e., F major or D minor).
Show the help message.
-i mode, --interface=mode
Selects the user interfaces from the compiled-in alternatives.
mode must be begun with one of the supported interface
identifiers. Run TiMidity++ with the -h option to see a list.
For ALSA sequencer interface, optionally to use
--realtime-priority, set the realtime priority by n, and to use
--sequencer-ports, set the number of opened sequencer ports.
Default value is 4.
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
-ig GTK+ interface
-ir Launch TiMidity++ as MIDI server.
-iA Launch TiMidity++ as ALSA sequencer client.
-iW Windows synthesizer interface
-iw Windows GUI interface
-iP PortMIDI synthesizer interface
-ip UMP interface
Option characters may be added immediately after the
interface identifier. The following options are
Increases verbosity level. This option is
Decreases verbosity level. This option is
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.
Loop playing (some interfaces ignore this option)
Randomize file list arguments before playing
Sort file list arguments before playing
Daemonize TiMidity++ in background (for alsaseq
Enable the loading of patch files during play.
-K n, --adjust-key=n
Adjusts key (i.e., transposes the song) by n half tones. Ranges
from -24 to 24.
-k msec, --voice-queue=msec
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.
-L path, --patch-path=path
Adds path 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 name, --pcm-file=name
TiMidity++ can play a PCM file instead of a MIDI file. If
``auto'' is specified, TiMidity++ tries to open foo.mid.wav or
foo.mid.aiff when playing foo.mid. If ``none'' is specified,
this feature is disabled. Otherwise just plays name.
-m msec, --decay-time=msec
Modify envelope volume decay time. msec is the minimum number
of milliseconds to sustain a sustained note.
-m0 Disable sustain ramping, causes constant volume sustains
-m1 Effectively behaves as if all sustains are ignored,
volume ramping is the same as normal stage 3.
-m3000 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.
-N n, --interpolation=n
Sets interpolation parameter. This option depends on the
-EFresamp option's value.
Toggles 4-point linear interpolation (default is on).
newton n point interpolation using Newton polynomials. n must
be an odd number from 1 to 57.
gauss n+1 point modified Gauss interpolation. Ranges 0
(disable) to 34 (max), default to 25.
In either way, linear interpolation is used if audio queue <
-O mode, --output-mode=mode
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.
Special in Ogg FLAC output mode, verifying generated data (will
be a bit slower), the size of header padding (default is 4096),
the compression level (0 to 8) (default is 5), and enabling
OggFLAC stream can be specified by --flac-verify,
--flac-padding, --flac-complevel and --oggflac options
Special in Ogg Speex output mode, the compression quality (0 to
10) (default is 8), Enabling VBR output, enabling ABR output and
setting the ratio to n, enabling VAD (voice activity detection),
enabling DTX (discontinuous transmission), the encoding
complexity (0 to 10) (default is 3), and frames in a single Ogg
packet (0 to 10) (default is 1) can be specified by
--speex-quality, --speex-vbr, --speex-abr, --speex-vad,
--speex-dtx, --speex-complexity and --speex-nframes options
The following identifiers are available in all versions:
-Od Outputs via audio device (default)
-Os Output to ALSA
-Or Generate raw waveform data. All format options are
supported. Common formats include:
-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.
-Ol List MIDI events
-OM MOD -> MIDI conversion
-Ov Ogg Vorbis
-OF Ogg FLAC
-OS Ogg Speex
Option characters may be added immediately after the mode
identifier to change the output format. The following
options are recognized:
16-bit sample width
24-bit sample width
8-bit sample width
u-Law (8-bit) encoding
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.
-o file, --output-file=file
Place output on file, 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
-P file, --patch-file=file
Use patch file for all programs.
Sets polyphony (maximum number of simultaneous voices) to n.
Optionally to put `a' character along with -p option, or to use
--polyphony-reduction, instructs TiMidity++ to enable automatic
polyphony reduction algorithm.
Cause channel n to be quiet. n can carry out package
specification by `,'. If n is 0, all channels are turned off.
Continuously, specifying -n, channel n is turned back on.
On the other hand, to put `t' character after -Q option or to
use --temper-mute describes temperament mute. This mutes
channels of specific temperament type n. For preset
temperament, n can range 0 to 3. For user-defined temperament,
n can range 4 to 7.
-q sec/n, --audio-buffer=sec/n
Specify audio buffer in seconds. sec maximum size of buffer, n
percentage filled at the beginning (default is 5.0/100) (size of
100% equals the whole device buffer size).
Enables Pseudo Reverb Mode. It sets every instrument's release
to msec ms. If msec is 0, msec is set to 800 (default).
-S n, --cache-size=n
Sets the re-sample cache size to n bytes. If n equals 0 any
sample caches are disabled. The default value of n is 2097152
-s freq, --sampling-freq=freq
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 implementation.
-T n, --adjust-tempo=n
Adjust tempo to n%; 120 play MOD files with an NTSC Amiga's
-t code, --output-charset=code
Sets output coding of Japanese text. Possible values of code
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.
Unload all instruments from memory between MIDI files. This can
reduce memory requirements when playing many files in
-V power, --volume-curve=power
Set the power of volume curve. The total amplification becomes
volume^power. 0 (default) uses the regular tables. Any
non-zero value causes all midi to use the new user defined
velocity/volume/expression curve (linear: 1, ideal: ~1.661, GS:
Show the version string
-W mode, --wrd=mode
Play WRD file.
Allowed values of mode are:
x X Window System mode
w Windows console mode
t TTY mode
d Dumb mode (outputs WRD events directory)
- do not trace WRD
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 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=file Use file as WRD file only no file matching *.wrd
f=file Uses file as WRD file.
WRD mode must also use trace mode (option -i?t) or the timing of
the WRD events will be terrible.
-w mode, --rcpcv-dll=mode
Extended mode for MS Windows. The following options are
-w r Use rcpcv.dll to play RCP/R36 files.
-w R Do not use rcpcv.dll (default).
-x str, --config-string=str
Configure TiMidity++ with str. The format of str is the same as
-x'bank 0\n0 violin.pat'
Sets the instrument number 0 to violin.
Character `\' (Ascii 0x5c) in the str is treated as escape
character like in C literals. For example \n is treated as
-Z file, --freq-table=file
Cause the table of frequencies to be read from file. This is
useful to define a tuning different from 12-equal temperament.
If ``pure'' is specified, TiMidity++ plays in trial pure
Play in trial pure intonation by Key Signature meta-event
in the MIDI file. You can specify the initial keysig by
hand, in case the MIDI file does not contains the
meta-event. Optionally, n is the number of key
signature. In case of sharp, n is positive. In case of
flat, n is negative. Valid values of n are in the
interval from -7 to 7. In case of minor mode, you should
put `m' character along with -Zpure option.
Simulate behavior of specific synthesizer module as much as
possible. For the moment, the value of n defined is as follows:
0 TiMidity++ Default
1 Roland SC-55
2 Roland SC-88
3 Roland SC-88Pro
4 Roland SC-8850
5-15 Reserved for GS family
16 YAMAHA MU-50
17 YAMAHA MU-80
18 YAMAHA MU-90
19 YAMAHA MU-100
20-31 Reserved for XG family
32 SoundBlaster Live!
33 SoundBlaster Audigy
34-111 Reserved for other synthesizer modules
112 TiMidity++ Special 1
Reserved for TiMidity++ specification purposes
127 TiMidity++ Debug
Copyright (C) 1999-2004 Masanao Izumo <email@example.com>
Copyright (C) 1995 Tuukka Toivonen <firstname.lastname@example.org>
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 version 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,
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>
KINOSHITA kosuke <firstname.lastname@example.org>
SHIGEMURA Norikatsu <email@example.com>
YAMAHATA Isaku <firstname.lastname@example.org>
ARAI Yoshishige <email@example.com>
Glenn Trigg <firstname.lastname@example.org>
Tim Allen <email@example.com>
Michael Haardt <firstname.lastname@example.org>
Eric A. Welsh <email@example.com>
Paolo Bonzini <firstname.lastname@example.org>
KIMOTO Masahiko <email@example.com>
IWAI Takashi <firstname.lastname@example.org>
SATO Kentaro <email@example.com>
TAMUKI Shoichi <firstname.lastname@example.org>
URABE Shohei <email@example.com>
SUENAGA Keishi <firstname.lastname@example.org>
SUZUKI Koji <email@example.com>
(titles omitted and an order different)
and other many people sends information and bug-fix codes.
The English version of this man page was written by NAGANO Daisuke
Now, TAMUKI Shoichi <firstname.lastname@example.org> and URABE Shohei
<email@example.com> are maintaining the man page.
If you have any comments or suggestions or complaints :) about this man
page, please tell us it.