home *** CD-ROM | disk | FTP | other *** search
/ MacPeople 1999 February 15 / MACPEOPLE-1999-02-15.ISO.7z / MACPEOPLE-1999-02-15.ISO / オンラインウエア / 厳選オンラインウエア100 / サウンド / TiMidity++1.0.0.68k.sit / TiMidity++1.0.0.68k / doc / INSTALL < prev    next >
Text File  |  1999-01-06  |  17KB  |  617 lines

  1. ==============================================================================
  2.                                   TiMidity++
  3.                               Installation guide
  4.  
  5.                     Masanao Izumo <mo@goice.co.jp>
  6.                     Last updated on Jan.6.1999
  7. ==============================================================================
  8.  
  9.  This document describes how to install TiMidity++(version 1.0.0 or later)
  10.  for your UNIX-like machine. Methods for Windows and Macintosh are not
  11.  described in this document.
  12.  
  13.  
  14.  Installing process:
  15.  
  16.   1. ./configure
  17.   2. edit Makefile and timidity.h (not necessary)
  18.   3. make              (required:GNU make)
  19.   4. make install      (required:GNU make)
  20.   5. search for various voice data :)
  21.  
  22.  Each processes are explained in following sections.
  23.  
  24. Note: '%' is the shell prompt.
  25.  
  26.  
  27. 1. configure
  28. ------------
  29.  First, execute the following command:
  30.  
  31. % sh configure --help
  32.  
  33.  Many options of configure will be displayed. Main of these are the 
  34.  following:
  35.  
  36.   --help
  37.     Displays help messages.
  38.  
  39.   --prefix=PREFIX
  40.     Specifies the base of installing directory. By default,
  41.     PREFIX is "/usr/local/".
  42.     Any files are installed in : 
  43.       PREFIX/bin : executable file
  44.       PREFIX/lib : configuration files and patches
  45.       PREFIX/man : online manual
  46.     
  47.     Example:
  48.     % sh configure --prefix=/opt/gnu
  49.     # installs to /opt/gnu/bin, /opt/gnu/lib, /opt/gnu/man
  50.  
  51.   --x-includes=DIR
  52.     Specifies include directory of X library.
  53.  
  54.   --x-libraries=DIR       X library files are in DIR
  55.     Specifies library directory of X library.
  56.  
  57.   --enable-debug
  58.     Compiles TiMidity++ with debugging methods/informations.
  59.  
  60.   --disable-dynamic
  61.     Disables the feature of dynamic loading interface.
  62.  
  63.   --with-x
  64.     You should specify this option if you have X Window environment.
  65.  
  66.   --with-tcl-includes=dir
  67.     Specifies include directory of Tcl.
  68.     (If you fail to detect it automatically, try to specify this.)
  69.  
  70.   --with-tcl-libs=dir
  71.     Specifies library directory of Tcl.
  72.     (If you fail to detect it automatically, try to specify this.)
  73.  
  74.   --with-tk-includes=dir
  75.     Specifies include directory of Tk.
  76.     (If you fail to detect it automatically, try to specify this.)
  77.  
  78.   --with-tk-libs=dir
  79.     Specifies library directory of Tk.
  80.     (If you fail to detect it automatically, try to specify this.)
  81.  
  82.   --enable-audio
  83.     Enables TiMidity++ to play MIDI files.
  84.     If this option is omitted, TiMidity++ is only the MIDI-to-WAVE
  85.     converter. This option should not be specified if target machine
  86.     does not support audio device.
  87.  
  88.   --enable-ncurses
  89.     Includes Ncurses interface.  If you build this interface as dinamic
  90.     link interface,    please specify --enable-ncurses=dynamic.
  91.  
  92.   --enable-slang
  93.     Includes slang interface.  If you build this interface as dinamic
  94.     link interface,    please specify --enable-slang=dynamic.
  95.  
  96.   --enable-motif
  97.     Includes Motif interface.  If you build this interface as dinamic
  98.     link interface,    please specify --enable-motif=dynamic.
  99.     If you don't have Motif for the lack of a fund:), lesstif is
  100.     the another answer.
  101.  
  102.   --enable-tcltk
  103.     Includes Tcl/Tk interface.  If you build this interface as dinamic
  104.     link interface,    please specify --enable-tcltk=dynamic.
  105.  
  106.   --enable-emacs
  107.     Includes Emacs interface.  If you build this interface as dinamic
  108.     link interface,    please specify --enable-emacs=dynamic.
  109.     If you want use TiMidity++ on Emacs, install this interface
  110.     and press M-x timidity.
  111.     And you should edit timidity.el and install to appropriate
  112.     directory.
  113.     
  114.   --enable-vt100
  115.     Includes VT100 interface.  If you build this interface as dinamic
  116.     link interface,    please specify --enable-vt100=dynamic.
  117.     This is the full-screen interface using VT100 terminal control
  118.     codes.
  119.  
  120.   --enable-xaw
  121.     Includes X Athena Widget interface.  If you build this interface
  122.     as dinamic link    interface, please specify --enable-xaw=dynamic.
  123.  
  124.   --enable-xskin
  125.     Includes skin interface.  This is the small X interface using skins
  126.     of WinAmp/x11amp.  If you build this interface as dinamic link
  127.     interface, please specify --enable-xaw=dynamic.
  128.  
  129.   --enable-gtk
  130.     Includes Gtk+ interface.  If you build this interface as dinamic link
  131.     interface, please specify --enable-gtk=dynamic.
  132.  
  133.   --enable-network
  134.     This option allows TiMidity++ to play MIDI file getting via 
  135.     network. You can specify the location of MIDI files by
  136.     http://foo.bar/baz.mid - like format.
  137.  
  138.   --enable-spectrogram
  139.     This option allows TiMidity++ to open the sound-spectrogram
  140.     window in X.
  141.  
  142.   --enable-wrd
  143.     Includes WRD interface(on X). WRD is Japanese local lyric-
  144.     contents format.
  145.  
  146.  
  147.  For example, including all functions:
  148.  
  149.  % sh configure --with-x --enable-audio ¥
  150.                 --enable-ncurses --enable-slang  --enable-motif ¥
  151.                 --enable-tcltk --enable-emacs --enable-vt100 --enable-xaw ¥
  152.                 --enable-xskin --enable-gtk ¥
  153.                 --enable-network --enable-spectrogram --enable-wrd
  154.  
  155.  
  156.  Some of MIDI file eats too much CPU power. If you choose correct optimizing
  157.  method, TiMidity++ can play such MIDI files smoothly. Optimizing options
  158.  can specify in configuration:
  159.  
  160.  (for example : super-sparc/gcc)
  161.  
  162.  (csh, tcsh)
  163. % env CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer -msupersparc -DAUDIO_FILLING_MILSEC=5000' sh configure [configure-options]...
  164.  
  165. (sh, bash)
  166. % CFLAGS='-O3 -Wall -mv8 -funroll-all-loops -fomit-frame-pointer -msupersparc -DAUDIO_FILLING_MILSEC=5000' sh configure [configure-options]...
  167.  
  168.  
  169.  
  170. 2. edits Makefile, timidity.h
  171. ------------------------------
  172.  If configure failed or compile not complete successfully, edit
  173.  Makefile and timidity.h to appropriate value.
  174.  
  175.  
  176.  
  177. 3. make
  178. -------
  179.  Once finished above setting, type
  180.  
  181. % make
  182.  
  183.  This make method requires GNU make. Some system has it as gmake.
  184.  
  185.  Note: Some system announces warnings 
  186.  
  187. vendorShellClassRec
  188. vendorShellWidgetClass
  189.  
  190.  in linking XAW. But it makes no matter. Don't worry.
  191.  
  192.  
  193. 4. install
  194. ----------
  195.  make install.bin    - installs executable files
  196.  make install.tk     - installs Tcl/Tk interface
  197.  make install.el     - installs Emacs interface
  198.  make install        - installs all files
  199.  
  200.  I recommend to check the install directories and files by executing 
  201.  
  202. % make -n ...
  203.  
  204.  
  205.  
  206. 5. Search for various voice data
  207.  
  208.  This package contains only Piano and Guitar patch. Please check
  209.  the following sites for many voice(patch) data:
  210.  
  211. http://www.goice.co.jp/timidity/gus/
  212. http://www.i.h.kyoto-u.ac.jp/~shom/timidity/
  213. ftp://ftp.cdrom.com/pub/gus/sound/patches/files/    (GUS site)
  214.  
  215.  If you got funny voice archive, extract it to appropriate directory and
  216.  configure *.cfg files with the name and path of these voice dates.
  217.  
  218.  
  219.  
  220. ==============================================================================
  221.                        configuration of  timidity.h 
  222. ==============================================================================
  223.  Edit CONFIG_FILE to your convenience. By default, 
  224.  
  225. #define CONFIG_FILE DEFAULT_PATH "/timidity.cfg"
  226.  
  227.  are recommended. DEFAULT_PATH is the same as TIMID_DIR in Makefile.
  228.  If you want to place it to another path, specify as the following:
  229.  
  230. #define CONFIG_FILE "/etc/timidity.cfg"
  231.  
  232.  
  233.  The next configuration is the file extractor (please ignore in Windows).
  234.  By default:
  235.  
  236. #define DECOMPRESSOR_LIST { ¥
  237.                   ".gz", "gunzip -c %s", ¥
  238.                   ".bz2", "bunzip2 -c %s", ¥
  239.                   ".Z", "zcat %s", ¥
  240.                   ".zip", "unzip -p %s", ¥
  241.                   ".lha", "lha -pq %s", ¥
  242.                   ".lzh", "lha -pq %s", ¥
  243.                   ".shn", "shorten -x %s -", ¥
  244.                  0 }
  245.  
  246.  TiMidity++ can handle some of archive format directly. But other format
  247.  will use this extractor.
  248.  
  249.  
  250.  Next, configuration of patch file converter(please ignore in Windows).
  251.  By default:
  252.  
  253. #define PATCH_CONVERTERS { ¥
  254.                  ".wav", "wav2pat %s", ¥
  255.                  0 }
  256.  
  257.  
  258.  Next, configuration of extensions of GUS/patch file. If specified in
  259.  this configuration, the extension can omit in all *.cfg. By default:
  260.  
  261. #define PATCH_EXT_LIST { ¥
  262.                ".pat", ¥
  263.                ".shn", ".pat.shn", ¥
  264.                ".gz", ".pat.gz", ¥
  265.                ".bz2", ".pat.bz2", ¥
  266.                0 }
  267.  
  268.  
  269.  Next, configuration of default instrument. By default:
  270.  
  271. #define DEFAULT_PROGRAM 0
  272.  
  273.  If no Program Change event, this program name are adopted.
  274.  Usually 0 is Piano.
  275.  
  276.  
  277.  Next, configuration of drum channel. By default:
  278.  
  279. #define DEFAULT_DRUMCHANNELS {10, -1}
  280.  
  281.  Numbers is the list of drum channels, and -1 is the terminator.
  282.  For example, if you wish to default drum channel be 10 and 16,
  283.  
  284. #define DEFAULT_DRUMCHANNELS {10, 16, -1}
  285.  
  286.  This channel can change in command line option.
  287.  
  288.  
  289.  Next, configuration of presence hack option. This option is enabled
  290.  if PRESENCE_HACK is defined. By default:
  291.  
  292. #define PRESENCE_HACK -1
  293.  
  294.  -1 is means that only enables if -b command line option is specified.
  295.  If defined with 0 to 2, the effect is following:
  296.  
  297. #define PRESENCE_HACK 0 /* mainly heard from right */
  298. #define PRESENCE_HACK 1 /* mainly heard from left */
  299. #define PRESENCE_HACK 2 /* changes voices right and left each 10 second */
  300.  
  301.  And the following define PRESENCE_DECAY is the delay number for making
  302.  presence effects. This number can specify in command line option by
  303.  following -b? option in millisecond.
  304.  
  305.  
  306.  Next, type of floating point number. Choose one of these:
  307.  
  308.  typedef double FLOAT_T;
  309.  typedef float FLOAT_T;
  310.  
  311.  Many machine which has FPU results faster operations with double
  312.  than that with float. But some machine results contrary.
  313.  
  314.  
  315.  Next, minimum and max range of playing sample rate. By default:
  316.  
  317. #define MIN_OUTPUT_RATE     4000
  318. #define MAX_OUTPUT_RATE     65000
  319.  
  320.  
  321.  Next, default value of master volume. By default:
  322.  
  323. #define DEFAULT_AMPLIFICATION     70
  324.  
  325.  This number is the percentage of max volume. This default value
  326.  will be nice in any occasions.
  327.  This number can specify in command line option (-A).
  328.  
  329.  
  330.  Next, default sampling rate. By default:
  331.  
  332. #define DEFAULT_RATE    32000
  333.  
  334.  If you have much CPU power, CD quality GUS/patch and want to listen 
  335.  funny sound,
  336.  
  337. #define DEFAULT_RATE    44100
  338.  
  339.  is good solution.
  340.  
  341.  
  342.  Next, configuration of max polyphony numbers. By default:
  343.  
  344. #define DEFAULT_VOICES    32
  345. #define MAX_VOICES    256
  346.  
  347.  DEFAULT_VOICE is the polyphony number in boot-time. This value is
  348.  configurable by the command line option (-p) from 0 to MAX_VOICES.
  349.  If your machine has much CPU power, 
  350.  
  351. #define DEFAULT_VOICES    64
  352.  
  353.  enables good harmony.
  354.  
  355.  
  356.  Next, size of internal buffer. By default:
  357.  
  358. #ifdef __WIN32__
  359. #define AUDIO_BUFFER_BITS 12
  360. #else
  361. #define AUDIO_BUFFER_BITS 11
  362. #endif
  363.  
  364.  I guess this values no need to change.
  365.  
  366.  
  367.  Next, value of CONTROLS_PER_SECOND. By default:
  368.  
  369. #define CONTROLS_PER_SECOND 1000
  370.  
  371.  
  372.  Next, interpolation in  re-sampling. By default:
  373.  
  374. #define LINEAR_INTERPOLATION
  375.  
  376.  This definition cause TiMidity++ to linear interpolation in
  377.  re-sampling, and the quality of sound would be nice. But it eats 
  378.  CPU powers.
  379.  I recommends define it if your machine has much power.
  380.  
  381.  
  382.  Next, configuration of LOOKUP_HACK. By default, this features are
  383.  undefined like this:
  384.  
  385. /* #define LOOKUP_HACK
  386.    #define LOOKUP_INTERPOLATION */
  387.  
  388.  This option saves a little CPU power, but sound quality would decrease
  389.  noticeably.
  390.  If your machine suffers from lack of CPU power, enable it.
  391.  
  392.  
  393.  Next, configuration of FAST_DECAY. By default:
  394.  
  395. /* #define FAST_DECAY */
  396.  
  397.  This option makes envelopes twice as fast and saves CPU power.
  398.  But since the release time of voices is shorten, the sound
  399.  would be poor.
  400.  This feature is controllable in command line option.
  401.  
  402.  
  403.  Next, configuration of FRACTION_BITS. By default:
  404.  
  405. #define FRACTION_BITS 12
  406.  
  407.  I recommend leave this value.
  408.  
  409.  
  410.  Next, configuration of adjusting amplitude of GUS/patch. By default:
  411.  
  412. #define ADJUST_SAMPLE_VOLUMES
  413.  
  414.  This option makes TiMidity to adjust amplitudes of each GUS/patch to
  415.  same volume.
  416.  
  417.  
  418.  Next, configuration of DANGEROUS_RENICE. By default this feature
  419.  is disabled:
  420.  
  421. /* #define DANGEROUS_RENICE -15 */
  422.  
  423.  If you want to increase process priority of TiMidity++ by using
  424.  setuid root enable this option. This option is only available in
  425.  UNIX. 
  426.  Once you enabled this option, you should install timidity with the
  427.  following procedure:
  428.  
  429. # chown root /usr/local/bin/timidity
  430. # chmod u+s /usr/local/bin/timidity
  431.  
  432.  Note: You should not set setuid to timidity if DANGEROUS_RENICE isn't 
  433.        enabled.
  434.  
  435.  
  436.  Next, configuration of MAX_DIE_TIME. By default:
  437.  
  438. #define MAX_DIE_TIME 20
  439.  
  440.  If this value is too small, click noise would be come. I recommend 
  441.  this value leave to this.
  442.  
  443.  
  444.  Next, configuration of optimizing re-sampling. By default:
  445.  
  446. #define PRECALC_LOOPS
  447.  
  448.  This option saves some CPU power only in some system.
  449.  
  450.  
  451.  Next, configuration of use of ldexp(). By default this feature 
  452.  if disabled:
  453.  
  454. /* #define USE_LDEXP */
  455.  
  456.  If your machine can multiply floating point number with ldexp() faster
  457.  than other method, enable this option.
  458.  
  459.  
  460.  Next, configuration of size of pre-re-sampling cache. By default:
  461.  
  462. #define DEFAULT_CACHE_DATA_SIZE (2*1024*1024)
  463.  
  464.  
  465.  Next, configuration about networks. TiMidity++ can access any files
  466.  via networks with URL. This feature are configurable in Makefile.
  467.  
  468.  If you have enabled this feature in Makefile(configure --enable-network),
  469.  configure the following macros:
  470.  
  471.  MAIL_DOMAIN
  472.   specifies domain name of your name address.  If your name address is:
  473.   "mo@goice.co.jp" set the macro:
  474.   #define MAIL_DOMAIN "@goice.co.jp"
  475.  
  476.  MAIL_NAME
  477.   specifies mail name of yours if in Windows. In UNIX, uncomment it.
  478.   For example, your name address is "mo@goice.co.jp" set the macro:
  479.   #define MAIL_NAME "mo"
  480.  
  481.  This mail addresses are used when TiMidity++ access to anonymous FTP
  482.  sites.
  483.  
  484.  
  485.  Next, configuration of temporary directory. By default, this option
  486.  is disabled:
  487.  
  488. /* #define TMPDIR "/var/tmp" */
  489.  
  490.  In UNIX, if this option is disabled TiMidity++ creates temporary files
  491.  in the path specified by the environment variable TMPDIR.
  492.  If environment variable TMPDIR also isn't defined, TiMidity++ creates
  493.  temporary files in /tmp .
  494.  In Windows, TMPDIR variable are ignored. So you should specify the
  495.  temporary path with this macro.
  496.  
  497.  
  498.  Next, configuration of existence of union semun. If your system
  499.  has it, 
  500.  
  501. #define HAVE_UNION_SEMUN
  502.  
  503.  or
  504.  
  505. /* #define HAVE_UNION_SEMUN */
  506.  
  507.  
  508.  
  509.  Next, configuration of existence of volatile declaration. If your
  510.  compiler supports volatile declaration,
  511.  
  512. /* #define NO_VOLATILE */
  513.  
  514.  otherwise,
  515.  
  516. #define NO_VOLATILE
  517.  
  518.  
  519.  
  520.  Next, recognizing GS drum part by GS exclusive message.
  521.  
  522. #define GS_DRUMPART
  523.  
  524.  enables to recognize GS exclusive message to set drum part.
  525.  
  526. /* #define GS_DRUMPART */
  527.  
  528.  disables this feature.
  529.  
  530.  
  531.  Next, output text code. If your system is in Japanese environment,
  532.  define
  533.  
  534. #define JAPANESE
  535.  
  536.  or comment out it like
  537.  
  538. /* #define JAPANESE */
  539.  
  540.  Next, specifies output text code (in Japanese environment).
  541.  You should specify appropriate code name to OUTPUT_TEXT_CODE macro.
  542.  The following strings are available:
  543.  
  544. "AUTO"    - Auto conversion by `LANG' environment variable (UNIX only)
  545. "ASCII"    - Convert unreadable characters to '.'(0x2e)
  546. "NOCNV"    - No conversion
  547. "EUC"    - EUC
  548. "JIS"    - JIS
  549. "SJIS"    - shift JIS
  550.  
  551.  In Japanized UNIX system, all of above are available.
  552.  In Windows, "ASCII", "NOCNV", "SJIS" are available.
  553.  If your environment cannot handle Japanese, specify "ASCII" or "NOCNV"
  554.  alternatively.
  555.  
  556.  
  557.  Next, controllers of MIDI actions. By default:
  558.  
  559. #define MODULATION_WHEEL_ALLOW
  560. #define PORTAMENTO_ALLOW
  561. #define NRPN_VIBRATO_ALLOW
  562. /* #define REVERB_CONTROL_ALLOW */
  563. /* #define CHORUS_CONTROL_ALLOW */
  564. /* #define GM_CHANNEL_PRESSURE_ALLOW */
  565. /* #define XG_BANK_SELECT_LSB_ALLOW */
  566. /* #define ALWAYS_TRACE_TEXT_META_EVENT */
  567. #define OVERLAP_VOICE_ALLOW
  568.  
  569.  These values are configurable in command line options. So you may leave
  570.  these in default value.
  571.  
  572.  MODULATION_WHEEL_ALLOW
  573.   Enables modulation wheel by default.
  574.   (-Ew:on -EW:off)
  575.  
  576.  PORTAMENTO_ALLOW
  577.   Enables portamento by default.
  578.   (-Ep:on -EP:off)
  579.  
  580.  NRPN_VIBRATO_ALLOW
  581.   Enables NRPN vibration by default.
  582.   (-Ev:on -EV:off)
  583.  
  584.  REVERB_CONTROL_ALLOW
  585.   Enable reverb control by default. This feature requires too much 
  586.   CPU power. So this option prevents TiMidity++ from playing in real
  587.   time if this option is enabled (in command line / this define).
  588.   (-Er:on -ER:off)
  589.  
  590.  CHORUS_CONTROL_ALLOW
  591.   Enables chorus control by default. This feature also requires a 
  592.   mount of CPU power too.
  593.   (-Ec:on -EC:off)
  594.  
  595.  GM_CHANNEL_PRESSURE_ALLOW
  596.   Enables Channel pressure by default.
  597.   (-Es:on -ES:off)
  598.  
  599.  XG_BANK_SELECT_LSB_ALLOW
  600.   Enables XG bank select by default.
  601.   (-Ex:on -EX:off)
  602.  
  603.  ALWAYS_TRACE_TEXT_META_EVENT
  604.   Enables tracing the Text Meta Event by default.
  605.   (-Et:on -ET:off)
  606.  
  607.  OVERLAP_VOICE_ALLOW
  608.   Enables allowing pronouncing overlapped voice.
  609.   (-Eo:on -EO:off)
  610.  
  611.  
  612. -------------------------------------------------------------------------
  613. This document is translated from original INSTALL.jp (written in Japanese).
  614. Translator: NAGANO Daisuke <breeze_geo@geocities.co.jp>
  615.             (And modified by Masanao Izumo <mo@goice.co.jp>)
  616. If you have any comment for this translation, please tell me.
  617.