TiMidity -- Experimental MIDI to WAVE converter
Frequently Asked Questions with answers:
Question: What is it?
Answer: Where? Well Chris, TiMidity is a software-only synthesizer, MIDI
renderer, MIDI to WAVE converter, realtime MIDI player for UNIX machines,
even (I've heard) a Netscape helper application. It takes a MIDI file
and writes a WAVE or raw PCM data or plays it on your digital audio
device. It sounds much more realistic than FM synthesis, but you need a
~100Mhz processor to listen to 32kHz stereo music in the background while
you work. 11kHz mono can be played on a low-end 486, and, to some, it
still sounds better than FM.
Question: I don't have a GUS, can I use TiMidity?
Answer: Yes. That's the point. You don't need a Gravis Ultrasound to use
TiMidity, you just need GUS-compatible patches, which are freely
available on the Internet. See below for pointers.
Question: I have a GUS, can I use TiMidity?
Answer: The DOS port doesn't have GUS support, and TiMidity won't be taking
advantage of the board's internal synthesizer under other operating
systems either. So it kind of defeats the purpose. But you can use it.
Question: It doesn't work. It doesn't play anything, and it prints out error
messages and stuff.
Answer: Read the INSTALL file, or get someone to read it for you. Then go
through the rest of the documentation, there really isn't that much.
Once you've got it working in the distribution directory, here's a list
of further things to do:
Get a full General Midi set. Create a directory, say C:\TIMIDITY or
/usr/local/lib/timidity, and put all the *.pat files in it. Also toss
in all of the *.cfg files that came with the TiMidity distribution.
Then edit timidity.cfg:
Uncomment and edit the dir statement to read "dir c:\timidity" or
whatever, and uncomment the "source gravis.cfg" statement.
Now run the program: "timidity -L c:\timidity <midi files>"
That should do it really. Note that TiMidity always checks the current
directory first, so things might get confusing if you've got different
copies of the config files in various places. "timidity -idvv
<midifile>" will list all attempts to open patch files, which might
If it still doesn't work, email me and/or the author of the particular
port, if using a non-Unix version.
Question: I tried playing a MIDI file I got off the Net but all I got was a
dozen warnings saying "No instrument mapped to tone bank 0, program
xx - this instrument will not be heard". What's wrong?
Answer: The General MIDI standard specifies 128 melodic instruments and
some sixty percussion sounds. If you wish to play arbitrary General
MIDI files, you'll need to get more patch files.
There's a program called Midia for SGI's, which also plays MIDI
files and has a lot more bells and whistles than TiMidity. It uses
GUS-compatible patches, too -- so you can get the 8 MB set at
ftp://archive.cs.umbc.edu/pub/midia for pretty good GM compatibility.
There are also many excellent patches on the Ultrasound FTP sites.
I can recommend Dustin McCartney's collections gsdrum*.zip and
wow*.zip in the "[.../]sound/patches/files" directory. The huge
ProPats series (pp3-*.zip) contains good patches as well. General
MIDI files can also be found on these sites.
This site list is from the GUS FAQ:
> FTP Sites Archive Directories
> --------- -------------------
> Main N.American Site: archive.orst.edu pub/packages/gravis
> wuarchive.wustl.edu systems/ibmpc/ultrasound
> Main Asian Site: nctuccca.edu.tw PC/ultrasound
> Main European Site: src.doc.ic.ac.uk packages/ultrasound
> Main Australian Site: ftp.mpx.com.au /ultrasound/general
> South African Site: ftp.sun.ac.za /pub/packages/ultrasound
> Submissions: archive.epas.utoronto.ca pub/pc/ultrasound/submit
> Newly Validated Files: archive.epas.utoronto.ca pub/pc/ultrasound
> Mirrors: garbo.uwasa.fi mirror/ultrasound
> ftp.st.nepean.uws.edu.au pc/ultrasound
> ftp.luth.se pub/msdos/ultrasound
Question: This MIDI file used to work fine with version 0.0001z but now it
suddenly sounds weird. What happened?
Answer: Something changed in the way TiMidity interprets MIDI or patch
parameters. If you think it changed for the worse, try to find out
which patch/MIDI file is causing problems, exactly what is different,
and if possible, why :) Also, try another MIDI player or device to
hear how the file is played correctly. Then mail me.
If you just upgraded from 0.2c or lower, note that you'll need to
update your configuration files. See "gravis.cfg" for an example.
Question: Some files have awful clicks and pops.
Answer: Find out which patch is responsible for the clicking (try "timidity
-P<patch> <midi/test-decay|midi/test-panning>". Add "strip=tail" in
the config file after its name. If this doesn't fix it, mail me the
Question: I'm playing Fantasie Impromptu in the background. When I run Netscape,
the sound gets choppy and it takes ten minutes to load. What can I do?
Answer: Here are some things to try:
- Use a lower sampling rate.
- Use mono output. This can improve performance by 10-30%.
(Using 8-bit instead of 16-bit output makes no difference.)
- Use a smaller number of simultaneous voices.
- Make sure you compiled with FAST_DECAY and PRECALC_LOOPS enabled
- If you don't have hardware to compute sines, recompile with
LOOKUP_SINE enabled in config.h
- Recompile with LOOKUP_HACK enabled in config.h.
- Recompile with LINEAR_INTERPOLATION disabled in config.h.
- Recompile with DANGEROUS_RENICE enabled in config.h, and make
TiMidity setuid root. This will help only if you frequently play
music while other processes are running.
- Recompile with an Intel-optimized gcc for a 5-15%
- Use "bag".
Question: I made TiMidity setuid root. Starting Netscape now takes *twenty*
Question: I can't reach the WWW page. Is the URL okay?
Answer: The URL is fine, but clinet.fi is connected to the Internet via two
monkeys banging 5-bit PPP on a pair of teletypewriters. If you have
trouble connecting, please try again later in case they've gotten
banana in the mechanism or started eating the tape or something. The
source is also available at
ftp://sunsite.unc.edu/Linux/apps/sound/players/ although not every
release gets there. You can also try a mirror at
Other foreign mirror sites would be welcome -- if you can spare a few
megs of http space on your server, please email me!
Question: Is there any kind of TiMidity Contest where I could win great
prizes like a trip to Ístersundom, Finland to have dinner with the
author and have my picture taken with a polar bear and a free
year's subscription to TiMidity Inside Edition beta versions and...
Answer: Sure. Announcing the TIMIDITY PATCH TREASURE HUNT-AND-DESTROY!
You may already be a winner! All you have to do is find the
weirdest GUS patch you can, take it to your nearest Unix Prompt,
and say the magic words:
"cat weird.pat |
gzip -9 |
uuencode weird.pat.gz |
pnmscale 3 |
pbmtoascii -2x4 |
od -vb |
sed -e 's/,/....../' |
say -a -o -
uuencode contest_entry.au |
mail -s 'Contest Entry' John.R.Format-Designer@gravis.whatever"
[DISCLAIMER: Contestants must be under 18 months to enter. Rules not
available on request. You won't get a prize. Don't try this at home.
Winners will not be announced in the New York Times on July 10th, 1996.
Winners will not be informed privately. There are no winners, only
survivors. Void where not prohibited by common sense. Punishable by up
to three years imprisonment and/or a $500,000 fine. Don't send money.]
This page generated by A Justly Underrated Awk Script