OSDN Git Service

[filter] Fix AVX builds
[timidity41/timidity41.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 887a6de..7937bc8 100644 (file)
--- a/INSTALL
+++ b/INSTALL
-==============================================================================
-                                  TiMidity++
-                              Installation guide
-
-                                       Masanao Izumo <mo@goice.co.jp>
-                                       Last updated on Feb.4.1999
-==============================================================================
-
-  This document describes how to install TiMidity++(version 1.3.0 or
-later) for your UNIX-like machine.  Methods for Macintosh are not
-described in this document.
-
-  This version or later, It is enabled to configure and make
-timidity.exe on CYGNUS + egcs-compiler(gcc) environment of
-Windows98/95/NT.  If you are in Windows, install cygnus and egcs (or
-mingw) if you don't have them (which is available from
-http://www.cygnus.com), and run `cygnus' on MS-DOS console, and make
-symbolik link /bin/sh to bash.
-
-Installing process:
-
-  1. configure
-  2. edit common.makefile, Makefile, timidity.h (not necessary)
-  3. make              (required:GNU make)
-  4. installation
-  5. search for various voice data :)
-
-  Each processes are explained in following sections.
-(Note that '%' is the shell prompt.)
-
-1. configure
-------------
-  First, execute the following command:
-
-% sh configure --help
-
-  Many options of configure will be displayed. Main of these are the
-following:
-
-  --help
-       Displays help messages.
-
-  --prefix=PREFIX
-       Specifies the base of installing directory. By default,
-       PREFIX is "/usr/local/".
-       Any files are installed in : 
-         PREFIX/bin : executable file
-         PREFIX/lib : configuration files and patches
-         PREFIX/man : online manual
-       
-       Example:
-       % sh configure --prefix=/opt/gnu
-       # installs to /opt/gnu/bin, /opt/gnu/lib, /opt/gnu/man
-
-  --x-includes=DIR
-       Specifies include directory of X library.
-
-  --x-libraries=DIR       X library files are in DIR
-       Specifies library directory of X library.
-
-  --enable-debug
-       Compiles TiMidity++ with debugging methods/informations.
-
-  --disable-dynamic
-       Disables the feature of dynamic loading interface.
-
-  --with-x
-       You should specify this option if you have X Window environment.
-       --with-x is `yes' by default.
-
-  --without-x
-       You must specify this option if you don't have X Window environment.
-
-  --with-tcl-includes=dir
-       Specifies include directory of Tcl.
-       (If you fail to detect it automatically, try to specify this.)
-
-  --with-tcl-libs=dir
-       Specifies library directory of Tcl.
-       (If you fail to detect it automatically, try to specify this.)
-
-  --with-tk-includes=dir
-       Specifies include directory of Tk.
-       (If you fail to detect it automatically, try to specify this.)
-
-  --with-tk-libs=dir
-       Specifies library directory of Tk.
-       (If you fail to detect it automatically, try to specify this.)
-
-  --enable-audio
-       Enables TiMidity++ to play MIDI files.
-       If --enable-audio=no, TiMidity++ is only the MIDI-to-WAVE
-       converter.
-
-  --enable-nas
-       Enables TiMidity++ to play MIDI files using NAS (Network Audio System).
-
-  --enable-esd
-       Enables TiMidity++ to play MIDI files using EsounD.
-
-  --enable-ncurses
-       Includes Ncurses interface.  If you build this interface as dinamic
-       link interface, please specify --enable-ncurses=dynamic.
-
-  --enable-slang
-       Includes slang interface.  If you build this interface as dinamic
-       link interface, please specify --enable-slang=dynamic.
-
-  --enable-motif
-       Includes Motif interface.  If you build this interface as dinamic
-       link interface, please specify --enable-motif=dynamic.
-       If you don't have Motif for the lack of a fund:), lesstif is
-       the another answer.
-
-  --enable-tcltk
-       Includes Tcl/Tk interface.  If you build this interface as dinamic
-       link interface, please specify --enable-tcltk=dynamic.
-
-  --enable-emacs
-       Includes Emacs interface.  If you build this interface as dinamic
-       link interface, please specify --enable-emacs=dynamic.
-       If you want use TiMidity++ on Emacs, install this interface
-       and press M-x timidity.
-       And you should edit timidity.el and install to appropriate
-       directory.
-
-  --enable-vt100
-       Includes VT100 interface.  If you build this interface as dinamic
-       link interface, please specify --enable-vt100=dynamic.
-       This is the full-screen interface using VT100 terminal control
-       codes.
-
-  --enable-xaw
-       Includes X Athena Widget interface.  If you build this interface
-       as dinamic link interface, please specify --enable-xaw=dynamic.
-
-  --enable-xskin
-       Includes skin interface.  This is the small X interface using skins
-       of WinAmp/x11amp.  If you build this interface as dinamic link
-       interface, please specify --enable-xaw=dynamic.
-
-  --enable-gtk
-       Includes Gtk+ interface.  If you build this interface as dinamic link
-       interface, please specify --enable-gtk=dynamic.
-
-  --enable-w32gui
-       Build TiMidity++ as Windows GUI.
-
-  --enable-network
-       This option allows TiMidity++ to play MIDI file getting via 
-       network. You can specify the location of MIDI files by
-       http://foo.bar/baz.mid - like format.
-
-  --enable-spectrogram
-       This option allows TiMidity++ to open the sound-spectrogram
-       window in X.
-
-  --enable-wrd
-       Includes WRD interface(on X). WRD is Japanese local lyric-
-       contents format.
-
-
-  For example, including all functions:
-
-% sh configure --with-x --enable-audio \
-               --enable-ncurses --enable-slang  --enable-motif \
-               --enable-tcltk --enable-emacs --enable-vt100 --enable-xaw \
-               --enable-xskin --enable-gtk \
-               --enable-network --enable-spectrogram --enable-wrd --enable-nas
-
-
-  Some of MIDI file eats too much CPU power. If you choose correct
-optimizing method, TiMidity++ can play such MIDI files
-smoothly. Optimizing options can specify in configuration:
-
- (for example : super-sparc/gcc)
-
- (csh, tcsh)
-% env CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer -msupersparc -DAUDIO_FILLING_MILSEC=5000' sh configure [configure-options]...
-
-(sh, bash)
-% CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer -msupersparc -DAUDIO_FILLING_MILSEC=5000' sh configure [configure-options]...
-
-
-
-2. edits common.makefile, Makefile, timidity.h
-------------------------------
-  If configure failed or compile not complete successfully, edit
-common.makefile, Makefile, and timidity.h to appropriate value.
-
-
-
+======================================================================
+       TiMidity++ Installation guide
+
+                                       Masanao Izumo
+                                       <iz@onicos.co.jp>
+                                       Mar.01.2004
+                                       version 2.13.0 or later
+======================================================================
+
+This document describes how to install TiMidity++ for your UNIX-like
+machine.
+
+You can configure and make timidity.exe on the Cygwin environment of
+Windows 95/98/Me/NT/2000/XP/2003.  If you are in Windows, install
+Cygwin (or mingw) if you do not have them.
+
+Today's Macintosh has FreeBSD userland, so things described here would
+fly.  Methods for older Macintosh ("Classic") are not described here.
+
+======================================================================
+Basic Installation
+======================================================================
+
+TiMidity++ uses GNU autotools to build.  So the simplest way to
+compile this package is:
+
+1. "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.
+2. Type "make" to compile the package.
+   NOTE: this make method requires GNU make.  So if your system has it
+         as gamke, type "gmake" instead.
+3. Type "make install" to install the programs and any data files and
+   documentation.
+
+======================================================================
+More complecated way
+======================================================================
+
+The full installation process is:
+
+1. configre
+2. edit common.makefile, Makefile, timidity.h if necessery
 3. make
--------
-  Once finished above setting, type
+4. installation
+5. set up voice data
+
+Each processes are explained in following sections.  Note that % is
+the shell prompt.
+
+======================================================================
+Configure
+======================================================================
+
+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:
+
+--enable-debug
+  Enables debug.  Things will be compiled with debugging methods/
+  informations.
+
+--without-x
+  TiMidity++ uses X by default.  So you must specify this option to
+  prevent linker from linking X libraries.
+
+--enable-audio[=audio_list]
+  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.
+
+  * default: Automatically select audio device.
+  * oss: OSS /dev/dsp
+  * sun: SunOS /dev/audio
+  * hpux: hp-ux /dev/audio
+  * irix: IRIX audio library
+  * mme: OSF/1 MME
+  * sb_dsp: BSD/OS 2.0 /dev/sb_dsp
+  * w32: Windows MMS
+  * darwin: darwin(Mac OS X)'s CoreAudio frameowrk
+  * alsa: ALSA pcm device
+  * alib: hp-ux network audio (Alib)
+  * nas: NAS
+  * portaudio: PortAudio
+  * jack: JACK
+  * arts: aRts
+  * esd: EsounD
+  * vorbis: ogg vorbis
+  * gogo: mp3 Gogo-No-Coder (Windows only)
 
-% make
+--enable-interface[=interface_list]
+--enable-dynamic[=interface_list]
+  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.
 
-  This make method requires GNU make. Some system has it as gmake.
+  You can select one or more interfaces listed below.
 
-Note: Some system announces warnings 
+  * ncurses: ncurses interface.
+  * slang: S-Lang interface.
+  * motif: Motif interface.  Motif interface also works under Lestiff.
+  * tcltk: Tcl/Tk interface.
+  * emacs: Emacs front-end.  Type M-x timidity to invoke.
+  * vt100: The full-screen interface using vt100 terminal control codes.
+  * xaw: X Athena Widget interface.
+  * xskin: X skin interface.
+  * gtk: GTK+ interface.
+  * w32gui: Build as Windows GUI binary.
+  * winsyn: Build as TiMidity++ Windows Synthesizer server.
+  * alsaseq: Build as ALSA sequencer client.
 
-vendorShellClassRec
-vendorShellWidgetClass
+  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 ...
 
-in linking XAW. But it makes no matter. Don't worry.
+--enable-network
+  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.
 
+--enable-spectrogram
+  With this option specified, TiMidity++ can open a window on X and
+  show sound-spectrogram there.
 
-4. install
-----------
-  On UNIX, you can type `make install' to install all files. Or you
-can select follows:
+--enable-wrd
+  WRD is a Japanese local lyric-contents format.  This option enables
+  WRD interface.
 
-  make install.bin    - installs executable files
-  make install.tk     - installs Tcl/Tk interface
-  make install.el     - installs Emacs interface
-  make install.man    - installs man files
-  make install        - installs all files
+* Environment variables and flags to pass to configure
 
-  I recommend to check the install directories and files by executing 
+Some MIDI files eat too much CPU power.  If you choose correct
+optimizing method, TiMidity++ can play such MIDI files smoothly.
 
-% make -n ...
+You can tell configure which optimizing method to use by following
+environmental variables:
 
-  On Windows, `make install' is not worked in current version
-(v1.3.0).  So please copy timidity/timidity.exe to any where by hand.
+CC
+  the C compiler command e.g. "/usr/bin/gcc"
 
-
-5. Search for various voice data
-
-  TiMidity++ uses GUS/patch (Glavis Ultrasound) as the voice data to
-play.  You must get GUS/patch files, and make the configuration file.
-You must make the configuration file (*.cfg).  By default,
-timidity.cfg is /usr/local/lib/timidity/timidity.cfg (or
-C:\WINDOWS\TIMIDITY.CFG on Windows).  And please check the following
-sites for many voice(patch) data:
-
-
-http://www.goice.co.jp/timidity/gus/                   (33M patch)
-http://www.goice.co.jp/timidity/dist/cfg/              (Some samples of *.cfg)
-http://www.i.h.kyoto-u.ac.jp/~shom/timidity/           (10M or 4M patch)
-ftp://ftp.cdrom.com/pub/gus/sound/patches/files/       (GUS site)
-
-If you got funny voice archive, extract it to appropriate directory
-and configure *.cfg files with the name and path of these voice dates.
-
-
-
-==============================================================================
-                       configuration of  timidity.h 
-==============================================================================
-  Edit CONFIG_FILE to your convenience. By default, 
+CFLAGS
+  flags to pass to ${CC} e.g. "-O2 -pipe"
+
+LDFLAGS
+  flags to pass to linker e.g. "-L/usr/gnu/lib"
+
+CPPFLAGS
+  flags to pass to preprocessor e.g. "-traditional-cpp"
+
+Your compiler may have many optimization 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]...
+
+and the binary will (hopefully) run faster.
+
+======================================================================
+Edit some files
+======================================================================
+
+If make fails, or if you want to change some parameters, edit
+common.makefile, Makefile, or timidity.h manually.
+
+* Parameters in timidity.h
+
+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.
+
+** CONFIG_FILE
+
+Edit CONFIG_FILE to your convenience.  By default,
 
 #define CONFIG_FILE DEFAULT_PATH "/timidity.cfg"
 
-are recommended. DEFAULT_PATH is the same as TIMID_DIR in Makefile.
+are recommended.  DEFAULT_PATH is the same as TIMID_DIR in Makefile.
+
 If you want to place it to another path, specify as the following:
 
 #define CONFIG_FILE "/etc/timidity.cfg"
 
+** DECOMPRESSOR_LIST
 
-  The next configuration is the file extractor (please ignore in Windows).
-By default:
+The file extractor (please ignore in Windows).  By default:
 
 #define DECOMPRESSOR_LIST { \
-                             ".gz", "gunzip -c %s", \
-                             ".bz2", "bunzip2 -c %s", \
-                             ".Z", "zcat %s", \
-                             ".zip", "unzip -p %s", \
-                             ".lha", "lha -pq %s", \
-                             ".lzh", "lha -pq %s", \
-                             ".shn", "shorten -x %s -", \
-                            0 }
+               ".gz", "gunzip -c %s", \
+               ".bz2", "bunzip2 -c %s", \
+               ".Z", "zcat %s", \
+               ".zip", "unzip -p %s", \
+               ".lha", "lha -pq %s", \
+               ".lzh", "lha -pq %s", \
+               ".shn", "shorten -x %s -", \
+               0 }
 
-TiMidity++ can handle some of archive format directly. But other format
-will use this extractor.
+TiMidity++ can handle some of archive format directly.  But other
+format will use this extractor.
 
+** PATCH_CONVERTERS
 
-  Next, configuration of patch file converter(please ignore in Windows).
+Configuration of of patch file converter (please ignore in Windows).
 By default:
 
 #define PATCH_CONVERTERS { \
-                            ".wav", "wav2pat %s", \
-                            0 }
+               ".wav", "wav2pat %s", \
+               0 }
 
+** PATCH_EXT_LIST
 
-  Next, configuration of extensions of GUS/patch file. If specified in
-this configuration, the extension can omit in all *.cfg. By default:
+Configuration of extensions of GUS/patch file.  If specified in this
+configuration, the extension can omit in all *.cfg.  By default:
 
 #define PATCH_EXT_LIST { \
-                          ".pat", \
-                          ".shn", ".pat.shn", \
-                          ".gz", ".pat.gz", \
-                          ".bz2", ".pat.bz2", \
-                          0 }
+               ".pat", \
+               ".shn", ".pat.shn", \
+               ".gz", ".pat.gz", \
+               ".bz2", ".pat.bz2", \
+               0 }
 
+** DEFAULT_PROGRAM
 
-  Next, configuration of default instrument. By default:
+Configuration of default instrument.  By default:
 
 #define DEFAULT_PROGRAM 0
 
 If no Program Change event, this program name are adopted.  Usually 0
 is Piano.
 
+** DEFAULT_DRUMCHANNELS
 
-  Next, configuration of drum channel. By default:
+Configuration of drum channel.  By default:
 
 #define DEFAULT_DRUMCHANNELS {10, -1}
 
-Numbers is the list of drum channels, and -1 is the terminator.  For
+Numbers are the list of drum channels, and -1 is the terminator.  For
 example, if you wish to default drum channel be 10 and 16,
 
 #define DEFAULT_DRUMCHANNELS {10, 16, -1}
 
 This channel can change in command line option.
 
+** FLOAT_T
 
-  Next, type of floating point number. Choose one of these:
+Type of floating point number.  Choose one of these:
 
-typedef double FLOAT_T;
-typedef float FLOAT_T;
+typedef double FLOAT_T;
+typedef float FLOAT_T;
 
 Many machine which has FPU results faster operations with double than
-that with float. But some machine results contrary.
+that with float.  But some machine results contrary.
 
+** (MAX|MIN)_OUTPUT_RATE
 
-  Next, minimum and max range of playing sample rate. By default:
+Minimum/maximum range of playing sample rate.  By default:
 
-#define MIN_OUTPUT_RATE        4000
-#define MAX_OUTPUT_RATE        65000
+#define MIN_OUTPUT_RATE 4000
+#define MAX_OUTPUT_RATE 65000
 
+** DEFAULT_AMPLIFICATION
 
-  Next, default value of master volume. By default:
+Default value of master volume.  By default:
 
-#define DEFAULT_AMPLIFICATION  70
+#define DEFAULT_AMPLIFICATION 70
 
-This number is the percentage of max volume. This default value will
+This number is the percentage of max volume.  This default value will
 be nice in any occasions.  This number can specify in command line
 option (-A).
 
+** DEFAULT_RATE
 
-  Next, default sampling rate. By default:
+Default sampling rate.  By default:
 
-#define DEFAULT_RATE   32000
+#define DEFAULT_RATE 44100
 
-If you have much CPU power, CD quality GUS/patch and want to listen
+If you have much CPU power, DAT quality GUS/patch and want to listen
 funny sound,
 
-#define DEFAULT_RATE   44100
+#define DEFAULT_RATE 48000
 
 is good solution.
 
+** DEFAULT_VOICES
 
-  Next, configuration of max polyphony numbers. By default:
+Configuration of default polyphony numbers.  By default:
 
-#define DEFAULT_VOICES 32
-#define MAX_VOICES     256
+#define DEFAULT_VOICES 256
 
-DEFAULT_VOICE is the polyphony number in boot-time. This value is
-configurable by the command line option (-p) from 0 to MAX_VOICES.  If
-your machine has much CPU power,
+DEFAULT_VOICE is the polyphony number in boot-time.  This value is
+configurable by the command line option (-p) from 1 to until memory is
+allowed.  If your machine has much CPU power,
 
-#define DEFAULT_VOICES 64
+#define DEFAULT_VOICES 512
 
 enables good harmony.
 
+** AUDIO_BUFFER_BITS
 
-  Next, size of internal buffer. By default:
+Size of internal buffer.  By default:
 
-#define AUDIO_BUFFER_BITS 11
+#define AUDIO_BUFFER_BITS 12
 
 I guess this values no need to change.
 
+** CONTROLS_PER_SECOND
 
-  Next, value of CONTROLS_PER_SECOND. By default:
+TiMidity++ do not calculate every envelope changes, but calculate some
+samples at one time.  Small controls yields better quality sound, but
+also eat much CPU time.  By default:
 
 #define CONTROLS_PER_SECOND 1000
 
+This can be changed from command line.  Leave as it is.
+
+** DEFAULT_RESAMPLATION
+
+Type of interpolation engine.  By default:
+
+#define DEFAULT_RESAMPLATION resample_gauss
+
+This definition cause TiMidity++ to Gauss-like interpolation in re-
+sampling, and the quality of sound would be nice.  But it eats CPU
+powers.  I recommend define it if your machine has much power.  Other
+choices are (sorted by their speed):
+
+#define DEFAULT_RESAMPLATION resample_none
+#define DEFAULT_RESAMPLATION resample_linear
+#define DEFAULT_RESAMPLATION resample_lagrange
+#define DEFAULT_RESAMPLATION resample_cspline
+#define DEFAULT_RESAMPLATION resample_gauss
+#define DEFAULT_RESAMPLATION resample_newton
 
- Next, interpolation in  re-sampling. By default:
+Interpolation methods are changeable from the command line.  If you
+want to prevent users from doing so, uncomment next line and define as
+this:
 
-#define LINEAR_INTERPOLATION
+#define FIXED_RESAMPLATION
 
-This definition cause TiMidity++ to linear interpolation in
-re-sampling, and the quality of sound would be nice. But it eats CPU
-powers.  I recommends define it if your machine has much power.
+** USE_DSP_EFFECT
 
+Configuration of USE_DSP_EFFECT to refine chorus, delay, EQ and
+insertion effect.  Default enabled.
 
-  Next, configuration of LOOKUP_HACK. By default, this features are
-undefined like this:
+** LOOKUP_HACK
 
-/* #define LOOKUP_HACK
-   #define LOOKUP_INTERPOLATION */
+Configuration of LOOKUP_HACK.  By default, this features are undefined
+like this:
+
+/* #define LOOKUP_HACK */
+/* #define LOOKUP_INTERPOLATION */
 
 This option saves a little CPU power, but sound quality would decrease
 noticeably.  If your machine suffers from lack of CPU power, enable
 it.
 
+** SMOOTH_MIXING
+
+Defining this greatly reduces popping due to large volume/pan changes.
+This is definitely worth the slight increase in CPU usage.
+
+** FAST_DECAY
 
-  Next, configuration of FAST_DECAY. By default:
+Configuration of FAST_DECAY.  By default:
 
 /* #define FAST_DECAY */
 
@@ -404,101 +384,119 @@ This option makes envelopes twice as fast and saves CPU power.  But
 since the release time of voices is shorten, the sound would be poor.
 This feature is controllable in command line option.
 
+** FRACTION_BITS
 
-  Next, configuration of FRACTION_BITS. By default:
+TiMidity++ uses fixed-point calculation.  Its default is
 
 #define FRACTION_BITS 12
 
-I recommend leave this value.
+and you don't have to change this value.
 
+** ADJUST_SAMPLE_VOLUMES
 
-  Next, configuration of adjusting amplitude of GUS/patch. By default:
+Configuration of adjusting amplitude of GUS/patch.  By default:
 
 #define ADJUST_SAMPLE_VOLUMES
 
 This option makes TiMidity to adjust amplitudes of each GUS/patch to
 same volume.
 
+** DENGEROUS_RENICE
 
-  Next, configuration of DANGEROUS_RENICE. By default this feature
-is disabled:
+By default this feature is disabled:
 
 /* #define DANGEROUS_RENICE -15 */
 
 If you want to increase process priority of TiMidity++ by using setuid
-root enable this option. This option is only available in UNIX. Once
-you enabled this option, you should install timidity with the
-following procedure:
+root enable this option.  This option is only available in UNIX.  Once
+you enabled this option, you should install timidity with the follow-
+ing procedure:
 
 # chown root /usr/local/bin/timidity
 # chmod u+s /usr/local/bin/timidity
 
-Note: You should not set setuid to timidity if DANGEROUS_RENICE isn't 
+Note: You should not set setuid to timidity if DANGEROUS_RENICE isn't
       enabled.
 
+** MAX_DIE_TIME
 
-  Next, configuration of MAX_DIE_TIME. By default:
+If this value is too small, click noise would be come.  Default is:
 
 #define MAX_DIE_TIME 20
 
-If this value is too small, click noise would be come. I recommend
-this value leave to this.
+and I recommend this value leave to this.
+
+** LOOKUP_SINE
+
+#define LOOKUP_SINE
 
+On some machines (especially PCs without math coprocessors), looking
+up sine values in a table will be significantly faster than computing
+them on the fly.  I recommend define it.
 
-  Next, configuration of optimizing re-sampling. By default:
+** PRECALC_LOOPS
+
+Configuration of optimizing re-sampling.  By default:
 
 #define PRECALC_LOOPS
 
-This option saves some CPU power only in some system.
+These may not in fact be faster on your particular machine and
+compiler.
 
+** USE_LDEXP
 
-  Next, configuration of use of ldexp(). By default this feature 
-if disabled:
+Configuration of use of ldexp().  By default this feature is disabled:
 
 /* #define USE_LDEXP */
 
 If your machine can multiply floating point number with ldexp() faster
 than other method, enable this option.
 
+** DEFAULT_CACHE_DATA_SIZE
 
-  Next, configuration of size of pre-re-sampling cache. By default:
+Size of pre-re-sampling cache.  By default:
 
 #define DEFAULT_CACHE_DATA_SIZE (2*1024*1024)
 
+This can be changed from command line, so you don't have to change
+here.
+
+* Configurations about network
+
+TiMidity++ can access any files via networks with URL.  This feature
+are configurable in Makefile.  If you have enabled this feature in
+Makefile (configure --enable-network), configure the following macros:
+
+** MAIL_DOMAIN
 
-  Next, configuration about networks. TiMidity++ can access any files
-via networks with URL. This feature are configurable in Makefile.  If
-you have enabled this feature in Makefile(configure --enable-network),
-configure the following macros:
+specifies domain name of your name address.  If your name address is
+"iz@onicos.co.jp" set the macro:
 
- MAIL_DOMAIN
-  specifies domain name of your name address.  If your name address is:
-  "mo@goice.co.jp" set the macro:
-  #define MAIL_DOMAIN "@goice.co.jp"
+#define MAIL_DOMAIN "@onicos.co.jp"
 
- MAIL_NAME
-  specifies mail name of yours if in Windows. In UNIX, uncomment it.
-  For example, your name address is "mo@goice.co.jp" set the macro:
-  #define MAIL_NAME "mo"
+** MAIL_NAME
 
- This mail addresses are used when TiMidity++ access to anonymous FTP
- sites.
+specifies mail name of yours if in Windows.  In UNIX, uncomment it.
+For example, your name address is "iz@onicos.co.jp" set the macro:
 
+#define MAIL_NAME "iz"
 
-  Next, configuration of temporary directory. By default, this option
-is disabled:
+** TMPDIR
+
+Configuration of temporary directory.  By default, this option is
+disabled:
 
 /* #define TMPDIR "/var/tmp" */
 
- In UNIX, if this option is disabled TiMidity++ creates temporary files
- in the path specified by the environment variable TMPDIR.
- If environment variable TMPDIR also isn't defined, TiMidity++ creates
- temporary files in /tmp .
- In Windows, TMPDIR variable are ignored. So you should specify the
- temporary path with this macro.
+In UNIX, if this option is disabled TiMidity++ creates temporary files
+in the path specified by the environment variable TMPDIR.  If environ-
+ment variable TMPDIR also isn't defined, TiMidity++ creates temporary
+files in /tmp.  In Windows, TMPDIR variable are ignored.  So you
+should specify the temporary path with this macro.
 
+** GS_DRUMPART
 
-  Next, recognizing GS drum part by GS exclusive message.
+Recognizing GS drum part by GS exclusive message.
 
 #define GS_DRUMPART
 
@@ -508,89 +506,126 @@ enables to recognize GS exclusive message to set drum part.
 
 disables this feature.
 
+* Japanese-text-handling related options
+
+There are some options for Japanese handling.
+
+** JAPANESE
 
-  Next, output text code. If your system is in Japanese environment,
-define
+If your system is in Japanese environment, define
 
 #define JAPANESE
 
-or comment out it like
+otherwise comment it out like
 
 /* #define JAPANESE */
 
-  Next, specifies output text code (in Japanese environment).  You
-should specify appropriate code name to OUTPUT_TEXT_CODE macro.  The
-following strings are available:
-
-"AUTO" - Auto conversion by `LANG' environment variable (UNIX only)
-"ASCII"        - Convert unreadable characters to '.'(0x2e)
-"NOCNV"        - No conversion
-"EUC"  - EUC
-"JIS"  - JIS
-"SJIS" - shift JIS
+** OUTPUT_TEXT_CODE
+
+specifies output text code (in Japanese environment).  You should
+specify appropriate code name to OUTPUT_TEXT_CODE macro.  The follow-
+ing strings are available:
+
+AUTO
+  Auto conversion by `LANG' environment variable (UNIX only)
+ASCII
+  Convert unreadable characters to '.' (0x2e)
+NOCNV
+  No conversion
+1251
+  Convert from windows-1251 to koi8-r
+EUC
+  eucJP
+JIS
+  JIS
+SJIS
+  shift-JIS
 
 In Japanized UNIX system, all of above are available.  In Windows,
 "ASCII", "NOCNV", "SJIS" are available.  If your environment cannot
 handle Japanese, specify "ASCII" or "NOCNV" alternatively.
 
-
-  Next, controllers of MIDI actions. By default:
+** MODULATION_WHEEL_ALLOW
+** PORTAMENTO_ALLOW
+** NRPN_VIBRATO_ALLOW
+** REVERB_CONTROL_ALLOW
+** FREEVERB_CONTROL_ALLOW
+** CHORUS_CONTROL_ALLOW
+** SURROUND_CHORUS_ALLOW
+** GM_CHANNEL_PRESSURE_ALLOW
+** VOICE_CHAMBERLIN_LPF_ALLOW
+** VOICE_MOOG_LPF_ALLOW
+** MODULATION_ENVELOPE_ALLOW
+** ALWAYS_TRACE_TEXT_META_EVENT
+** OVERLAP_VOICE_ALLOW
+** TEMPER_CONTROL_ALLOW
+
+Controllers of MIDI actions.  By default:
 
 #define MODULATION_WHEEL_ALLOW
 #define PORTAMENTO_ALLOW
 #define NRPN_VIBRATO_ALLOW
-#define REVERB_CONTROL_ALLOW
+/* #define REVERB_CONTROL_ALLOW */
+#define FREEVERB_CONTROL_ALLOW
 #define CHORUS_CONTROL_ALLOW
+/* #define SURROUND_CHORUS_ALLOW */
 /* #define GM_CHANNEL_PRESSURE_ALLOW */
-/* #define XG_BANK_SELECT_LSB_ALLOW */
+#define VOICE_CHAMBERLIN_LPF_ALLOW
+/* #define VOICE_MOOG_LPF_ALLOW */
+/* #define MODULATION_ENVELOPE_ALLOW */
 /* #define ALWAYS_TRACE_TEXT_META_EVENT */
 #define OVERLAP_VOICE_ALLOW
+#define TEMPER_CONTROL_ALLOW
 
-  These values are configurable in command line options. So you may
+These values are configurable in command line options.  So you may
 leave these in default value.
 
- MODULATION_WHEEL_ALLOW
-  Enables modulation wheel by default.
-  (-Ew:on -EW:off)
+======================================================================
+Make
+======================================================================
 
- PORTAMENTO_ALLOW
-  Enables portamento by default.
-  (-Ep:on -EP:off)
+Make section has nothing particular to write.  Just say "make"
 
- NRPN_VIBRATO_ALLOW
-  Enables NRPN vibration by default.
-  (-Ev:on -EV:off)
+...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.
 
- REVERB_CONTROL_ALLOW
-  Enable reverb control by default. This feature requires too much 
-  CPU power. So this option prevents TiMidity++ from playing in real
-  time if this option is enabled (in command line / this define).
-  (-Er:on -ER:off)
+Installation
 
- CHORUS_CONTROL_ALLOW
-  Enables chorus control by default. This feature also requires a 
-  mount of CPU power too.
-  (-Ec:on -EC:off)
+On UNIX and clones, you can type "make install" to install all files.
+Or you can select following targets:
 
- GM_CHANNEL_PRESSURE_ALLOW
-  Enables Channel pressure by default.
-  (-Es:on -ES:off)
+install.bin
+  installs executable filles
+install.tk
+  installs Tcl/Tk interface
+install.el
+  installs Emacs interface
+install.man
+  installs man files
+install
+  installs everything
 
- XG_BANK_SELECT_LSB_ALLOW
-  Enables XG bank select by default.
-  (-Ex:on -EX:off)
+I strongly recommend you to check the install destinations and files
+by setteing -n flag like
 
- ALWAYS_TRACE_TEXT_META_EVENT
-  Enables tracing the Text Meta Event by default.
-  (-Et:on -ET:off)
+% make -n
 
- OVERLAP_VOICE_ALLOW
-  Enables allowing pronouncing overlapped voice.
-  (-Eo:on -EO:off)
+======================================================================
+Search for voice data
+======================================================================
 
+TiMidity++ uses Either GUS/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 (or
+C:\WINDOWS\TIMIDITY.CFG on Windows).  And please check the following
+sites for many voice(patch) data:
 
--------------------------------------------------------------------------
-This document is translated from original INSTALL.jp (written in Japanese).
-Translator: NAGANO Daisuke <breeze_geo@geocities.co.jp>
-            (And modified by Masanao Izumo <mo@goice.co.jp>)
-If you have any comment for this translation, please tell me.
+* http://www.onicos.com/staff/iz/timidity/link.html#gus
+* http://www.onicos.com/staff/iz/timidity/dist/cfg/ (Some sample *.cfg's)
+* http://www.i.h.kyoto-u.ac.jp/~shom/timidity/ (10M and 4M patches)
+* ftp://ftp.cdrom.com/pub/gus/sound/patches/files/ (GUS site)
+
+If you got funny voice archive, extract it to appropriate directory
+and configure *.cfg files with the name and path of these voice datas.