This document describes how to install TiMidity++*1 for your UNIX-like machine.
You can configure and make timidity.exe on the Cygwin environment of Windows 98/95/NT. If you are in Windows, install Cygwin*2 (or mingw) if you do not have them.
Today's Macintosh has FreeBSD userland, so things described here would fly. Methods for older Macintosh*3 are not described here.
*1 Things in this document are for TiMidity++ version 2.12.0-pre1b or later.
*2 <URL:http://www.cygwin.com/>
*3 "Classic" environments
TiMidity++ uses GNU autotools to build. So the simplest way to compile this package is:
"cd" to the directory containing TiMidity++'s source code and type "./configure" to configure the package for your system. If you are using csh on an old version of System V, you might need to type "/bin/sh ./configure" instead to prevent csh from trying to execute configure itself.
Running configure takes a while. While running, it prints some messages telling which features it is checking for.
The full installation process is:
Each processes are explained in following sections. *4
First, execute the following command:
% /bin/sh ./configure --help
Many options of configure will be displayed. Most of them, such as --help, --prefix=PREFIX, and so on are the regular ones. They exisits on most package that uses autoconf and you do not have to worry about their behavior.
There also exists some options that is typical to TiMidity++. Main of these are the following:
Enables debug. Things will be compiled with debugging methods/informations.
TiMidity++ uses X by default. So you must specify this option to prevent linker from linking X libraries.
Enables TiMidity++ to play MIDI files. If --enable-audio=no, TiMidity++ acts as a MIDI-to-WAVE converter.
You can specify one or more audio-device listed below *6.
Specify which interface to use. If you use --enable-dynamic instead of --enable-interface, the interfaces specified will be linked dynamically and the binary size would become a bit smaller.
You can select one or more interfaces listed below *6.
Note that
--enable-interface=INTERFACE1,INTERFACE2,...
equals as
--enable-INTERFACE1=yes --enable-INTERFACE2=yes ...
and for the same way,
--enable-dynamic=INTERFACE1,INTERFACE2,...
equals as
--enable-INTERFACE1=dynamic --enable-INTERFACE2=dynamic ...
Enables network support. This will allow TiMidity++ to open a MIDI file via network. You can specify the location of MIDI files by http://foo.com.tw/bar/baz.mid - like format.
With this option specified, TiMidity++ can open a window on X and show sound-spectrogram there.
WRD is a Japanese local lyric-contents format. This option enables WRD interface (on X).
Some MIDI files eat too much CPU power. If you choose correct optimizing method, TiMidity++ can play such MIDI files smoothly.
You can tell configure which optimizing method to use by following environmental variables:
Your compiler may have many optimization flags. If you use gcc, gcc's online manual is available and there is the list of flags. For example, in case of ultrasparc/gcc, you can specify:
% env CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer -mcpu=ultrasparc' /bin/sh configure [configure-options]...
or in case of PowerPCG4/gcc3 you can specify:
% env CFLAGS='-O3 -Wall -std=gnu99 -funroll-all-loops -fomit-frame-pointer -fforce-addr -mcpu=7450 -mpowerpc-gpopt -mpowerpc-gfxopt -mmultiple' /bin/sh configure [configure-options]...
and the binary will (hopefully) run faster.
If make fails, or if you want to change some parameters, edit common.makefile, Makefile, or timidity.h manually.
There are some options that are hard-coded into timidity
binary. They are #define
-ed in timidity.h. You
have to change things there if you want to change these
flags...
Make section has nothing particular to write. Just sa "make"
...Oops, almost forgot, TiMidity++'s Makefile needs GNU version of make. If you do not have, get one first. If you have one in a different name than "make", type its true name instead.
On UNIX and clones, you can type"make install" to install all files. Or you can select following targets:
I strongly recommend you to check the install destinations and files by setteing -n flag like
% make -n ...
TiMidity++ uses Either GUS*11/patch, or SoundFont (,or both) as the voice data to play. You must get a SoundFont or GUS/patch files, and make the configuration file. You must make the configuration file (*.cfg). By default, timidity.cfg is /usr/local/share/timidity/timidity.cfg*12. And please check the following sites for many voice(patch) data:
If you got funny voice archive, extract it to appropriate directory and configure *.cfg files with the name and path of these voice dates.