Create  Edit  Diff  (en)TiMidity++ Document Project  Indexes  Search  Changes  RSS  Source  Admin

timidity.1.en

(en)MANPAGE of TIMIDITY

NAME

TiMidity++ - MIDI to WAVE converter and player

SYNOPSIS

timidity [options] filename [...]

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. .br 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. For example,

% timidity some/where/

plays all files in the directory some/where/.

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

For example:

% timidity 'file.zip#file.mid'

Plays file.mid in file.zip

% timidity 'file.lzh#*.mid'

Plays any files that match the wildcard expression *.mid in file.lzh

% 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 (*.tar)
  • tar+gzip (*.tar.gz, *.tgz)
  • zip (*.zip)
  • lzh (*.lzh *.lha) (lh0, lh1, lh2, lh3, lh4, lh5, lh6, lzs, lz4, lz5 available)

Other archives can be expanded if expander command is specified on the compile phase. TiMidity++ will pipe that command.

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++ recognizes MIME multi part 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 "mime:"

The following MIME-types are allowed:

uu-encoded 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://example.com/midi/example.mid

ftp://example.com/midi/example.mid

Play the file specified in the URL.

For example:

% timidity http://www.goice.co.jp/member/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, .rmi (Format 0, 1, 2)
Standard MIDI File
.rcp, .r36, .g18, .g36 (Recomposer formats)
The Windows version converts these with rcpcv.dll.
.mfi (MFi - 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)

OPTIONS

The following command line options are accepted by TiMidity++:

-A [n][,m](a)

--amplification n

--drumpower m

--[no-]volume-compensation

Multiplies the master volume by n%. Default value is 70%. Higher amplification makes louder sounds. The allowed values of amplification range from 0(no sound) to 800.

You can specify the drum power, ratio of drum volume from the other channels. It also ranges from 0(no drum) 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.

For example:

-A90
volume 90%, drum power 100%, compensation is off
-A,120
volume 70%, drum power 120%, compensation is off
-A90,120
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
-A,120a
volume 70%, drum power 120%, compensation is on
-A90,120a
volume 90%, drum power 120%, compensation is on

-a, --[no-]anti-alias

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

-B, --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, --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, --config-file file

Reads an extra configuration file.

-D, --drum-channel n

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.

-d, --interface-path dir

Specifies the directory containing installed dynamic-link interface modules.

-E, --ext mode

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

w/W, --[no-]mod-wheel

Enable/disable modulation controlling.

p/P, --[no-]portamento

Enable/disable portamento controlling.

v/V, --[no-]vibrato

Enable/disable NRPM vibration.

s/S, --[no-]ch-pressure

Enable/disable channel pressure controlling.

e/E, --[no-]mod-envelope

Enable/disable modulation envelope controlling.

t/T, --[no-]trace-text-meta

Enable/disable tracing all Text Meta Events.

o/O, --[no-]overlap-voice

Accept/reject pronouncing multiple same notes.

z/Z, --[no-]temper-control

Enable/disable MIDI Tuning Standard temperament controling.

m, --default-mid 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 respectively.

M, --system-mid HH

Sets the system manufacturer ID to HH (where HH are two hex-digits).

In this option, the manufacuture ID is set unchangable. Manufacuture ID from the input file would be ignored.

b, --default-bank n

Use tone bank n as the default.

B, --force-bank n

Sets the bank number of all channels to bank.

i, --default-program n[/m]

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

If n is followed by /m the default program number of the channel m is specified by n.

I, --force-program n[/m]

Similar to ``--default-progrm'' but this ignores all program changes.

F args

For effects. See below. In args option, you can specify following effect options:

delay=, --delay (d|l|r|b)[,msec]

Sets delay type.

d, 0
Disabled delay effect (default).
l, 1
Left delay.
r, 2
Right delay.
b, 3
Swap left & right.

Optional msec is the delay time.

chorus=, --chorus (d|n|s)[,level]
d, 0
disable this effect.
n, 1
Enable MIDI chorus effect control.
s, 2
Surround sound, chorus detuned to a lesser degree (default).

The optional parameter level specifies the chorus level 0 to 127.

reverb=, --reverb (d|n|g|f|G)[,level]
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 (default).
G, 4
Global freeberb

The optional parameter level specifies the reverb level 0 to 127

vlpf=, --voice-lpf (d|c|m)
d, 0
Disable this effect.
c, 1
Chamberlin resonant LPF (12dB/oct)(default).
m, 2
Moog resonant low-pass VCF (24dB/oct)
ns=, --noise-shaping n

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 2. Default value is 2.

resamp=, --resample (d|l|c|L|n|g)
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 \fB\-N\fP option.

-e, --evil

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.

-F, --[no-]fast-panning

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, --[no-]fast-decay

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

-g, --spectrogram sec

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

-H, --force-keysig n

Specify the number of key signature. MIDI file is performed with transposition to the key of the number of sharp (when n is positive) or flat (when n is negative). Valid values of n are in the interval from -7 to 7. For example, if n is 1, MIDI file with any tonality will be performed transposing to 1 flat (i.e., F major or D minor). Therefore, it is convenient to use for the accompaniment when practicing a musical instrument by the tonality which is easy to perform.

-h, --help

Show the help message.

-i, --interface mode

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.
-iW
TWSYNTH? Windodws synthesizer interface
-iP
PortMIDI? Synthesizer mode
-iw
Win32 GUI mode
-ip
UMP? mode

Interface options

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

v, --verbose=n

Increases verbosity level. This option is cumulative.

q, --quiet=n

Decreases verbosity level. This option is cumulative.

t, --[no-]trace

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, --[no-]loop

Loop playing (some interfaces ignore this option)

r, --[no-]random

Randomize file list arguments before playing

s, --[no-]sort

Sort file list arguments before playing

D, --[no-]background

Daemonize TiMidity++ in background (for alsaseq only)

--realtime-priority=n

Set the realtime priority (for alsaseq only)

--sequencer-ports=n

Set the number of opened sequencer ports, default = 4 (for alsaseq only)

-j, --[no-]realtime-load

Enable the loading of patch files during play.

-K, --adjust-key n

Adjusts key (i.e., transposes the song) by n half tones. Ranges from -24 to 24.

-k, --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, --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, --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 the file.

-m, --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 (default).

-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, --interpolation n

Sets interpolation parameter. This option depends on the --resample option's value.

cspline, lagrange

Toggles 4-point linear interpolation (default on).

newton

n+1 point interpolation using Newton polynomials. \fIn\fP must be an odd number from 1 to 57 *2.

gauss

n+1 point modified Gauss interpolation. ranges 0(disable) to 34(max), default to 0.

In either way, linear interpolation is used if audio queue < 99%

-O, --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. 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:

-OrU
u-Law
-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

-Oe

EsounD

-Op

PortAudio?

-Oj

JACK

-Or

aRts

-OA

Alib

-Ov

Ogg Vorbis

Format options

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

S, --output-stereo

Stereo

M, --output-mono

Monophonic

s, --output-signed

Signed output

u, --output-unsigned

Unsigned output

1, --output-16bit

16-bit sample width

8, --output-8bit

8-bit sample width

l, --output-linear

Linear encoding

U, --output-ulaw

uLaw (8-bit) encoding

A, --output-alaw

A-Law encoding

x, --[no-]output-swab

Byte-swapped output

--flac-verify

(FLAC only) Verify generated data (will be a bit slower)

--flac-padding=n

(FLAC only) Set the size of header padding (default: 4096)

--flac-compression-level=n

(FLAC only) Compression level (0 to 8). default n=5

--oggflac

(FLAC only) Enable OggFLAC output

--speex-quality=n

(Speex only) Compression quality (0 to10). default n=8

--speex-vbr

(Speex only) Enable VBR output

--speex-abr=n

(Speex only) Enable ABR output and set the Raito to n

--speex-vad

(Speex only) Enable VAD(voice activity detection)

--speex-dtx

(Speex only) Enable DTX(discontinuous transmission)

--speex-complexity=n

(Speex only) Set encoding complexity (0 to 10). default=3

--speex-nframes=n

(Speex only) Frames in a single Ogg packet (0 to 10). default=1

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

-P, --patch-file file

Use patch file for all programs.

-p [n](a)

--polyphony n

--[no-]polyphony-reduction

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.

-Q n[,...](t)

--mute n[,...]

--temper-mute n[,...]

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, --audio-buffer seq/n

On the other hand, to put 't' character after \-Q option or to use \-\-temper\-mute describes temperament mute. This mutes channels of the specific temperament. n can range 0 to 7.

-R msec

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

-S, --cache-size n

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, --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, --adjust-tempo n

Adjust tempo to n%; 120=play MOD files with an NTSC Amiga's timing.

-t, --output-charset 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.

-U, --[no-]unload-instruments

Unload all instruments from memory between MIDI files. This can reduce memory requirements when playing many files in succession.

-V, --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: ~2).

-v, --version

Show the version string.

-W, --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

R[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=file

Use file as WRD file only no file matching *.wrd is found.

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, --rcpcv-dll mode

Extended mode for MS Windows. The following options are available:

-w r
Use rcpcv.dll to play RCP/R36 files.
-w R
Do not use rcpcv.dll (default).

-x --config-string str

Configure TiMidity with str. The format of str 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 carriage return.

-Z, --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 intonation.

-Zpure, --pure-intonation [n(m)]

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 `a' character along with -Zpure option.

--module n

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
113-126
Reserved for TiMidity++ specification purposes
127
TiMidity++ Debug

SEE ALSO

lsmidiprog(1), mididump(1), patinfo(1), sf2text(1), wav2pat(1), timidity.cfg(5)

COPYRIGHT

  • Copyright (C) 1999-2004 Masanao Izumo <iz@onicos.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.

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

AVAILABILITY

The latest release is available on the TiMidity++ Page,

URL http://www.timidity.jp/

BUGS

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

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 <nagano@i.kyushu-u.ac.jp>

Last Modified:Sat Apr 24 20:32:30 JST 2004
Keyword:
References:[(en)TiMidity++ Document Project] [(en)options] [NEWS-2.13.0] [(en)MANPAGE of TIMIDITY.CFG]