1 ======================================================================
2 TiMidity++ Installation guide
7 version 2.13.0 or later
8 ======================================================================
10 This document describes how to install TiMidity++(version 2.13.0 or
11 later) for your UNIX-like machine. Methods for Macintosh are not
12 described in this document.
14 It is enabled to configure and make timidity.exe on the Cygwin
15 environment of Windows98/95/NT. If you are in Windows, install cygnus
16 and egcs (or mingw) if you don't have them (which is available from
17 http://sourceware.cygnus.com/cygwin/), and run `cygnus', and make
18 symbolic link /bin/sh to bash.
23 2. edit common.makefile, Makefile, timidity.h (not necessary)
24 3. make (required:GNU make)
26 5. search for various voice data :)
28 Each processes are explained in following sections.
29 (Note that '%' is the shell prompt.)
33 First, execute the following command:
35 % /bin/sh configure --help
37 Many options of configure will be displayed. Main of these are the
41 Displays help messages.
44 Specifies the base of installing directory. By default, PREFIX is
46 Any files are installed in:
47 PREFIX/bin: executable files
48 PREFIX/share/timidity: configuration files and patches
49 PREFIX/lib/timidity: libraries and dynamic link interfaces.
50 PREFIX/man: online manuals
52 % sh configure --prefix=/opt/gnu
53 # installs to /opt/gnu/bin, /opt/gnu/man, /opt/gnu/...
56 Specifies include directory of X library.
59 Specifies library directory of X library.
62 Compiles TiMidity++ with debugging methods/informations.
65 You should specify this option if you have X Window environment.
66 --with-x is `yes' by default.
69 You must specify this option if you don't have X Window environment.
71 --with-tcl-includes=dir
72 Specifies include directory of Tcl.
73 (If you fail to detect it automatically, try to specify this.)
76 Specifies library directory of Tcl.
77 (If you fail to detect it automatically, try to specify this.)
79 --with-tk-includes=dir
80 Specifies include directory of Tk.
81 (If you fail to detect it automatically, try to specify this.)
84 Specifies library directory of Tk.
85 (If you fail to detect it automatically, try to specify this.)
87 --enable-audio[=mode_list]
88 Enables TiMidity++ to play MIDI files.
89 If --enable-audio=no, TiMidity++ is only the MIDI-to-WAVE converter.
90 You can specify multi-audio device from follows (specify comma
92 default: Automatically select audio device. (default)
96 irix: IRIX audio library
98 sb_dsp: BSD/OS 2.0 /dev/sb_dsp
100 alsa: ALSA pcm device
101 alib: HPUX network audio (Alib)
102 nas: NAS - Network Audio System
106 Enables TiMidity++ to play MIDI files using NAS (Network Audio
110 Enables TiMidity++ to play MIDI files using EsounD.
112 --enable-interface=[Comma separated interface list]
113 Specifies interface list (Comma separated). Choose interfaces from
115 ncurses,slang,motif,tcltk,emacs,vt100,xaw,xskin,gtk,w32gui,server
117 --enable-interface=INTERFACE1,INTERFACE2,...
119 --enable-INTERFACE1=yes --enable-INTERFACE2=yes ...
121 --enable-dynamic[=Comma separated interface list]
122 Specifies dynamic link interface list.
124 --enable-dynamic=INTERFACE1,INTERFACE2,...
126 --enable-INTERFACE1=dynamic --enable-INTERFACE2=dynamic ...
129 Includes Ncurses interface. If you build this interface as dinamic
130 link interface, please specify --enable-ncurses=dynamic.
133 Includes slang interface. If you build this interface as dinamic
134 link interface, please specify --enable-slang=dynamic.
137 Includes Motif interface. If you build this interface as dinamic
138 link interface, please specify --enable-motif=dynamic.
139 If you don't have Motif for the lack of a fund:), lesstif is the
143 Includes Tcl/Tk interface. If you build this interface as dinamic
144 link interface, please specify --enable-tcltk=dynamic.
147 Includes Emacs interface. If you build this interface as dinamic
148 link interface, please specify --enable-emacs=dynamic.
149 If you want use TiMidity++ on Emacs, install this interface and
151 And you should edit timidity.el and install to appropriate
155 Includes VT100 interface. If you build this interface as dinamic
156 link interface, please specify --enable-vt100=dynamic.
157 This is the full-screen interface using VT100 terminal control
161 Includes X Athena Widget interface. If you build this interface
162 as dinamic link interface, please specify --enable-xaw=dynamic.
165 Includes skin interface. This is the small X interface using
166 skins of WinAmp/x11amp. If you build this interface as dinamic
167 link interface, please specify --enable-xaw=dynamic.
170 Includes Gtk+ interface. If you build this interface as dinamic
171 link interface, please specify --enable-gtk=dynamic.
174 Build TiMidity++ as Windows GUI.
177 Build TiMidity++ as ALSA sequencer client.
180 This option allows TiMidity++ to play MIDI file getting via
181 network. You can specify the location of MIDI files by
182 http://foo.bar/baz.mid - like format.
185 This option allows TiMidity++ to open the sound-spectrogram window
189 Includes WRD interface(on X). WRD is Japanese local lyric-contents
194 % ./configure --enable-ncurses --enable-slang --enable-motif \
195 --enable-tcltk --enable-emacs --enable-vt100 --enable-xaw \
196 --enable-xskin --enable-gtk \
197 --enable-network --enable-spectrogram --enable-wrd
199 Some of MIDI file eats too much CPU power. If you choose correct
200 optimizing method, TiMidity++ can play such MIDI files smoothly.
201 Optimizing options can specify in configuration:
203 (for example: super-sparc/gcc)
206 % env CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer \
207 -msupersparc /bin/sh configure [configure-options]...
210 % CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer \
211 -msupersparc /bin/sh configure [configure-options]...
213 2. edits common.makefile, Makefile, timidity.h
214 ----------------------------------------------
215 If configure failed or compile not complete successfully, edit
216 common.makefile, Makefile, and timidity.h to appropriate value.
217 All of definition of variables are orverwrited by common.makefile.
221 Once finished above setting, type
225 This make method requires GNU make. Some system has it as gmake.
227 Note: Some system announces warnings
230 vendorShellWidgetClass
232 in linking XAW. But it makes no matter. Don't worry.
236 On UNIX, you can type `make install' to install all files. Or you
239 make install.bin - installs executable files
240 make install.tk - installs Tcl/Tk interface
241 make install.el - installs Emacs interface
242 make install.man - installs man files
243 make install - installs all files
245 I recommend to check the install directories and files by executing
249 5. Search for various voice data
250 --------------------------------
251 TiMidity++ uses GUS/patch (Glavis Ultrasound) as the voice data to
252 play. You must get GUS/patch files, and make the configuration file.
253 You must make the configuration file (*.cfg). By default,
254 timidity.cfg is /usr/local/share/timidity/timidity.cfg (or
255 C:\WINDOWS\TIMIDITY.CFG on Windows). And please check the following
256 sites for many voice(patch) data:
258 http://www.goice.co.jp/member/mo/timidity/link.html#gus
259 http://www.goice.co.jp/member/mo/timidity/dist/cfg/ (Some samples of *.cfg)
260 http://www.i.h.kyoto-u.ac.jp/~shom/timidity/ (10M or 4M patch)
261 ftp://ftp.cdrom.com/pub/gus/sound/patches/files/ (GUS site)
263 If you got funny voice archive, extract it to appropriate directory
264 and configure *.cfg files with the name and path of these voice dates.
266 ==============================================================================
267 configuration of timidity.h
268 ==============================================================================
270 Edit CONFIG_FILE to your convenience. By default,
272 #define CONFIG_FILE DEFAULT_PATH "/timidity.cfg"
274 are recommended. DEFAULT_PATH is the same as TIMID_DIR in Makefile.
275 If you want to place it to another path, specify as the following:
277 #define CONFIG_FILE "/etc/timidity.cfg"
279 The next configuration is the file extractor (please ignore in
280 Windows). By default:
282 #define DECOMPRESSOR_LIST { \
283 ".gz", "gunzip -c %s", \
284 ".bz2", "bunzip2 -c %s", \
286 ".zip", "unzip -p %s", \
287 ".lha", "lha -pq %s", \
288 ".lzh", "lha -pq %s", \
289 ".shn", "shorten -x %s -", \
292 TiMidity++ can handle some of archive format directly. But other
293 format will use this extractor.
295 Next, configuration of patch file converter (please ignore in
296 Windows). By default:
298 #define PATCH_CONVERTERS { \
299 ".wav", "wav2pat %s", \
302 Next, configuration of extensions of GUS/patch file. If specified in
303 this configuration, the extension can omit in all *.cfg. By default:
305 #define PATCH_EXT_LIST { \
307 ".shn", ".pat.shn", \
309 ".bz2", ".pat.bz2", \
312 Next, configuration of default instrument. By default:
314 #define DEFAULT_PROGRAM 0
316 If no Program Change event, this program name are adopted. Usually 0
319 Next, configuration of drum channel. By default:
321 #define DEFAULT_DRUMCHANNELS {10, -1}
323 Numbers is the list of drum channels, and -1 is the terminator. For
324 example, if you wish to default drum channel be 10 and 16,
326 #define DEFAULT_DRUMCHANNELS {10, 16, -1}
328 This channel can change in command line option.
330 Next, type of floating point number. Choose one of these:
332 - typedef double FLOAT_T;
333 - typedef float FLOAT_T;
335 Many machine which has FPU results faster operations with double than
336 that with float. But some machine results contrary.
338 Next, minimum and max range of playing sample rate. By default:
340 #define MIN_OUTPUT_RATE 4000
341 #define MAX_OUTPUT_RATE 65000
343 Next, default value of master volume. By default:
345 #define DEFAULT_AMPLIFICATION 70
347 This number is the percentage of max volume. This default value will
348 be nice in any occasions. This number can specify in command line
351 Next, default sampling rate. By default:
353 #define DEFAULT_RATE 44100
355 If you have much CPU power, DAT quality GUS/patch and want to listen
358 #define DEFAULT_RATE 48000
362 Next, configuration of default polyphony numbers. By default:
364 #define DEFAULT_VOICES 256
366 DEFAULT_VOICE is the polyphony number in boot-time. This value is
367 configurable by the command line option (-p) from 1 to until memory
368 is allowed. If your machine has much CPU power,
370 #define DEFAULT_VOICES 512
372 enables good harmony.
374 Next, size of internal buffer. By default:
376 #define AUDIO_BUFFER_BITS 12
378 I guess this values no need to change.
380 Next, value of CONTROLS_PER_SECOND. By default:
382 #define CONTROLS_PER_SECOND 1000
384 Next, interpolation in re-sampling. By default:
386 #define DEFAULT_RESAMPLATION resample_gauss
388 This definition cause TiMidity++ to Gauss-like interpolation in
389 re-sampling, and the quality of sound would be nice. But it eats CPU
390 powers. I recommend define it if your machine has much power. The
391 following algorighms are available:
393 #define DEFAULT_RESAMPLATION resample_none
394 #define DEFAULT_RESAMPLATION resample_linear
395 #define DEFAULT_RESAMPLATION resample_cspline
396 #define DEFAULT_RESAMPLATION resample_lagrange
397 #define DEFAULT_RESAMPLATION resample_newton
398 #define DEFAULT_RESAMPLATION resample_gauss
400 This option is configurable by the command line option (-EFresamp).
401 To disallow users to choose the resamplation algorithm:
403 #define FIXED_RESAMPLATION
405 Next, configuration of USE_DSP_EFFECT to refine chorus, delay, EQ and
406 insertion effect. By default:
408 #define USE_DSP_EFFECT
410 Next, configuration of LOOKUP_HACK. By default, this features are
413 /* #define LOOKUP_HACK */
414 /* #define LOOKUP_INTERPOLATION */
416 This option saves a little CPU power, but sound quality would decrease
417 noticeably. If your machine suffers from lack of CPU power, enable
420 Next, configuration of FAST_DECAY. By default:
422 /* #define FAST_DECAY */
424 This option makes envelopes twice as fast and saves CPU power. But
425 since the release time of voices is shorten, the sound would be poor.
426 This feature is controllable in command line option.
428 Next, configuration of FRACTION_BITS. By default:
430 #define FRACTION_BITS 12
432 I recommend leave this value.
434 Next, configuration of adjusting amplitude of GUS/patch. By default:
436 #define ADJUST_SAMPLE_VOLUMES
438 This option makes TiMidity to adjust amplitudes of each GUS/patch to
441 Next, configuration of DANGEROUS_RENICE. By default this feature
444 /* #define DANGEROUS_RENICE -15 */
446 If you want to increase process priority of TiMidity++ by using setuid
447 root enable this option. This option is only available in UNIX. Once
448 you enabled this option, you should install timidity with the
451 # chown root /usr/local/bin/timidity
452 # chmod u+s /usr/local/bin/timidity
454 Note: You should not set setuid to timidity if DANGEROUS_RENICE isn't
457 Next, configuration of MAX_DIE_TIME. By default:
459 #define MAX_DIE_TIME 20
461 If this value is too small, click noise would be come. I recommend
462 this value leave to this.
464 Next, configuration of LOOKUP_SINE. By default:
468 On some machines (especially PCs without math coprocessors), looking
469 up sine values in a table will be significantly faster than computing
470 them on the fly. I recommend define it.
472 Next, configuration of optimizing re-sampling. By default:
474 #define PRECALC_LOOPS
476 This option saves some CPU power only in some system.
478 Next, configuration of use of ldexp(). By default this feature is
481 /* #define USE_LDEXP */
483 If your machine can multiply floating point number with ldexp() faster
484 than other method, enable this option.
486 Next, configuration of size of pre-re-sampling cache. By default:
488 #define DEFAULT_CACHE_DATA_SIZE (2*1024*1024)
490 Next, configuration about networks. TiMidity++ can access any files
491 via networks with URL. This feature are configurable in Makefile. If
492 you have enabled this feature in Makefile (configure --enable-network),
493 configure the following macros:
496 specifies domain name of your name address. If your name address
497 is "iz@onicos.co.jp" set the macro:
498 #define MAIL_DOMAIN "@onicos.co.jp"
501 specifies mail name of yours if in Windows. In UNIX, uncomment it.
502 For example, your name address is "iz@onicos.co.jp" set the macro:
503 #define MAIL_NAME "iz"
505 This mail addresses are used when TiMidity++ access to anonymous FTP
508 Next, configuration of temporary directory. By default, this option
511 /* #define TMPDIR "/var/tmp" */
513 In UNIX, if this option is disabled TiMidity++ creates temporary files
514 in the path specified by the environment variable TMPDIR. If
515 environment variable TMPDIR also isn't defined, TiMidity++ creates
516 temporary files in /tmp. In Windows, TMPDIR variable are ignored. So
517 you should specify the temporary path with this macro.
519 Next, recognizing GS drum part by GS exclusive message.
523 enables to recognize GS exclusive message to set drum part.
525 /* #define GS_DRUMPART */
527 disables this feature.
529 Next, output text code. If your system is in Japanese environment,
534 or comment out it like
536 /* #define JAPANESE */
538 Next, specifies output text code (in Japanese environment). You
539 should specify appropriate code name to OUTPUT_TEXT_CODE macro. The
540 following strings are available:
542 "AUTO" - Auto conversion by `LANG' environment variable (UNIX only)
543 "ASCII" - Convert unreadable characters to '.'(0x2e)
544 "NOCNV" - No conversion
549 In Japanized UNIX system, all of above are available. In Windows,
550 "ASCII", "NOCNV", "SJIS" are available. If your environment cannot
551 handle Japanese, specify "ASCII" or "NOCNV" alternatively.
553 Next, controllers of MIDI actions. By default:
555 #define MODULATION_WHEEL_ALLOW
556 #define PORTAMENTO_ALLOW
557 #define NRPN_VIBRATO_ALLOW
558 /* #define REVERB_CONTROL_ALLOW */
559 #define FREEVERB_CONTROL_ALLOW
560 #define CHORUS_CONTROL_ALLOW
561 /* #define SURROUND_CHORUS_ALLOW */
562 /* #define GM_CHANNEL_PRESSURE_ALLOW */
563 #define VOICE_CHAMBERLIN_LPF_ALLOW
564 /* #define VOICE_MOOG_LPF_ALLOW */
565 /* #define MODULATION_ENVELOPE_ALLOW */
566 /* #define ALWAYS_TRACE_TEXT_META_EVENT */
567 #define OVERLAP_VOICE_ALLOW
568 #define TEMPER_CONTROL_ALLOW
570 These values are configurable in command line options. So you may
571 leave these in default value.
573 - MODULATION_WHEEL_ALLOW
574 Enables modulation wheel by default.
577 Enables portamento by default.
580 Enables NRPN vibration by default.
582 - REVERB_CONTROL_ALLOW
583 Enable standard reverb control by default. This feature requires a
585 (-EFreverb=1:on -EFreverb=0:off)
586 - FREEREVERB_CONTROL_ALLOW
587 Enable Freeverb control by default. This feature requires too much
588 CPU power. So this option prevents TiMidity++ from playing in real
589 time if this option is enabled (in command line / this define).
590 (-EFreverb=3:on -EFreverb=0:off)
591 - CHORUS_CONTROL_ALLOW
592 Enables standard chorus control by default. This feature also
593 requires a little CPU power too.
594 (-EFchorus=1:on -EFchorus=0:off)
595 - SURROUND_CHORUS_ALLOW
596 Enables surround chorus control by default. This feature also
597 requires a little CPU power too.
598 (-EFchorus=2:on -EFchorus=0:off)
599 - GM_CHANNEL_PRESSURE_ALLOW
600 Enables Channel pressure by default.
602 - GM_CHANNEL_PRESSURE_ALLOW
603 Enables channel pressure by default.
605 - VOICE_CHAMBERLIN_LPF_ALLOW
606 Enables Chamberlin resonant LPF (12dB/oct) by default.
607 (-EFvlpf=1:on -EFvlpf=0:off)
608 - VOICE_MOOG_LPF_ALLOW
609 Enables Moog resonant lowpass VCF (24dB/oct) by default.
610 (-EFvlpf=2:on -EFvlpf=0:off)
611 - MODULATION_ENVELOPE_ALLOW
612 Enables modulation envelope by default.
614 - ALWAYS_TRACE_TEXT_META_EVENT
615 Enables tracing the Text Meta Event by default.
617 - OVERLAP_VOICE_ALLOW
618 Enables allowing pronouncing overlapped voice.
620 - TEMPER_CONTROL_ALLOW
621 Enables temperament control in MIDI Tuning Standard by default.
624 ----------------------------------------------------------------------
625 This document is translated from the original INSTALL.jp (written in
627 Translator: NAGANO Daisuke <breeze_geo@geocities.co.jp>
628 (And modified by Masanao Izumo <mo@goice.co.jp>)
629 If you have any comments on or corrections for this translation,