==============================================================================
	   TiMidity++ -- MIDI to WAVE converter and player

					出雲正尚
					<mo@goice.co.jp>
					1999年4月28日
					バージョン 2.0.0
==============================================================================
  本ドキュメントは TiMidity++ 2.0.0 以降の説明を記述しています。

  本プログラムは全く無保証のフリーです。GPL に従い、自由に再配布／修正
することができます。ただし再配布する場合は、付属の COPYING、あるいは
GPL のファイル (バージョン 2 以降) を取り寄せ、本プログラムと一緒に配
布してください。

  本プログラムのオリジナルは Tuukka Toivonen <tt@cgs.fi> さんによって
作られた TiMidity です。その後、出雲氏、あるいは他の様々な人達の協力に
よって、TiMidity の改良版である TiMidity++ がリリースされました。

  TiMidity はもともと MIDI ファイルをソフトウェアのみで WAVE ファイル
に変換するツールとして開発されました。今ではただ単なる変換ではなく、リ
アルタイムに MIDI を演奏するプレイヤーとして利用されています。外部音源
なしにソフトウェアのみで MIDI を演奏するソフトウェアシーケンサとして動
作します。

  音源には、GUS/patch (Gravis Ultrasound) が用いられます。また SoundFont
と呼ばれる音源も利用できます。


* TiMidity++ の主な特徴
  - 外部 MIDI 音源なしで MIDI ファイルを演奏できる
  - MIDI ファイルを様々な PCM 形式のファイル (wav や au など) に変換できる
  - 音源には GUS/patch と呼ばれるファイルを用いる
  - SoundFont と呼ばれる音源も利用できる
  - リアルタイムに演奏中の状態が表示できる
  - ncurses, motif, xaw など、様々なユーザインターフェースがある
  - 日本語が表示できる (日本語をサポートしていないインターフェースは除く)
  - ネットワークを介して MIDI ファイルを演奏できる
  - アーカイブ/圧縮 ファイルを演奏できる
  - MIMPI の WRD ファイルの表示をサポート
  - SMF の他に、RCP/R36/G18/G36, MOD ファイルも演奏できる
  - 32 チャネル対応。
  - ユーザインターフェースをダイナミックリンク可能
  - サウンドスペクトログラムを表示できる
  - GM/GS/XG モードの認識
  - GS/XG のドラムパート自動判別
  - 音と表示の同期 (trace plaing)
  - 低負荷 (trace plaing でない時)
  - メモリを喰う (最低 20M bytes の空き容量は欲しい)
  - オルタネートアサインをサポート
  - リアルタイムに演奏することが困難になると、音数を自動的に減らし、
    処理の軽減を図る
  - ストリーム形式の MIDI を演奏できる。
  - 以下の MIDI イベントをサポート：
	NoteOn/Off, KeyPressure, Program, ChannelPressure, Pitchwheel,
	ToneBank, ModulationWheel, MainVolume, Panning, Expression,
	Sustain, Portamento, DataEntry, ReverbEffect, ChorusEffect,
	RPN+/-, NRPN, RPN, AllSoundsOff, ResetControllers, AllNotesOff,
	Mono/Poly Part, RandomPan, KeyShift,
	TempoChange, Lyric, InsertText, KARAOKE-Part(@KMIDI),
	MasterVolume, MIDI-Reset, SystemExclusiveMessages


* 起動
  - 形式: timidity [options] midi-filename

  - オプション:
      -A n		 音量を指定します．デフォルトでは n=70 です． 大き
			 な値を指定するほど大きな音になります．1〜800 の値
			 が有効です．

      -a		 アンチエイリアシングを有効にします．
			 低いレートで再生したときに，折り返し雑音と呼ばれる
			 不自然な成分が含まれることがあります．-a オプショ
			 ンで起動することでこの 不自然な成分を取り除くこと
			 ができます．

      -B n		 音源にデータを書き込む時の分割数を指定します． 0〜
			 1000 の値が有効です．このオプションは Linux,
			 FreeBSD, Windows のみで有効です．

      -b mode		 ヘッドホンやイヤホンで聞いた時の音の臨場感を 出す
			 ようにします． mode には以下のモードが有効です．
			 -bl  主に左から音が聞こえてきます．
			 -br  主に右から音が聞こえてきます．
			 -bb  ときどき，左右の音場が変化します．
			 -bc  この機能は無効になります．

      -C n		 制御レートを指定します．TiMidity++ では， エンベロー
			 プやトレモロなどの音量計算を 1 サンプル毎行うので
			 はなく， 複数のサンプルをまとめて計算することで高
			 速化をはかっています． n サンプル毎に，エンベロー
			 プやトレモロの音量が再計算されます． n の値を小さ
			 くすればするほど音質が良くなりますが，その分 CPU
			 パワー を必要とします．n は 1〜255 までの値を指定
			 することができます． デフォルトでは 1 ミリ秒に相当
			 するサンプル数となっており、再生サンプルレート に
			 よって変わってきます。

      -c file		 TiMidity++ の設定ファイル file を読み込みます．
			 TiMidity++ のデフォルトの設定ファルを読み込んだ後，
			 file が読み込まれます．

      -D n		 n チャネル目をドラムチャネルにします． -nとすると
			 n チャネル目がドラムではなくメロディーチャネルに
			 することできます．

      -d dir		 ダイナミックリンクインターフェース モジュールがイ
			 ンストールされているディレクトリを指定します．
      -e		 TiMidity++ のプライオリティをあげます．Windows のみ
			 で有効です． このオプションを有効にすると，
			 TiMidity++ 以外のプログラムがほとんど動作 しなくなり
			 ます．

      -E mode		 TiMidity++ の拡張モードを指定します(複数指定可)．
			 主に演奏時の機能に影響を与えます． 以下の mode が
			 指定できます．
			 w  モジュレーションコントロールを有効にします．
			 W  モジュレーションコントロールを無効にします．
			 p  ポルタメントコントロールを有効にします．
			 P  ポルタメントコントロールを無効にします．
			 v  NRPN ビブラートを有効にします．
			 V  NRPN ビブラートを無効にします．
			 r  リバーブエフェクトコントロールを有効にします．
			 R  リバーブエフェクトコントロールを無効にします．
			 c  コーラスエフェクトコントロールを有効にします．
			 cn 全てのチャネルのコーラスエフェクトを n で演奏
			    します．
			 C  コーラスフェクトコントロールを無効にします．
			 s  チャンネルプレッシャーを有効にします．
			 S  チャンネルプレッシャーを無効にします．
			 t  全てのテキストメタイベントをトレースします．
			 T  特定のテキストメタイベントをトレースします．
			 o  同一音の重複を許します．
			 O  同一音の重複は許しません．前の音は消音されま
			 す．
			 mHH  デフォルトのマニュファクチュア ID を 2 桁の16
			      数 HH で指定します．
			 mgm  デフォルトのマニュファクチュア ID を 0x7f
			      (GM) にします．
			 mgs  デフォルトのマニュファクチュア ID を 0x41
			      (GS) にします．
			 mxg  デフォルトのマニュファクチュア ID を 0x43
			      (XG) にします．
			 Bn   全てのチャネルをバンク n で演奏します． n を省
			      略するとデフォルトの動作に戻ります．
			 bn   全てのチャネルのデフォルトバンクを n に 設定し
			      ます．Bn と異なり，演奏中のバンクセレクト命令
			      を受け付けます．n を省略するとデフォルトの動作
			      に戻ります．

      -F		 このオプションを指定すると，Note ON のままの状態で
			 Midi control change 10: Panning が有効になります．
			 デフォルトではすぐには変化しないで，音量の再計算が
			 必要になったときに 変化します．改良版ではトグルオ
			 プションになっています．

      -f		 このオプションを有効にすると， エンベロープの変化
			 時間が半分になり高速に動作します．ただし， 音の立
			 ち上がりとリリース時間が短くなってしまいます．

      -g sec		 Sound-Spectrogram を表示する Window を開きます．
			 このオプションは X Window がサポートされている環境
			 のみで動作します． Sound-Spectrogram は声紋のよう
			 なもので，スペクトラムの時間変化を 表現したもので
			 す．

      -h		 オプションの説明を表示します．

      -I n		 デフォルトの楽器番号を指定します． デフォルトでは
      -I n/		 n=0 (通常はピアノ) となっています．改良版では， チ
			 ャネル毎にデフォルトの楽器番号を指定でき，チャネル
			 番号 cを nに続けて「n/c」と記述します．「/c」が 省
			 略されると，全チャネルのデフォルトの楽器番号が設定
			 されます．

      -i mode		 ユーザインターフェースを指定します． 環境によって
			 利用可能なインターフェースが異なります． 以下の
			 mode が存在します．
			 -id  dumb interface
			 -in  ncurses interface
			 -iN  NEW ncurses interface (拡張版のみ)
			 -is  slang interface
			 -ia  X Athena Widget interface (拡張版のみ)
			 -ik  Tcl/Tk interface
			 -im  motif interface
			 -iT  vt100 interface (拡張版のみ)
			 -ie  Emacs interface (拡張版のみ、Emacs 上から M-x
			 timidity により起動されます)
			 上記オプションに続けて(スペースを空けずに)， 以下
			 の文字列を追加することができます(複数指定化)．
			 v  冗長表示のレベルを上げます．
			 q  冗長表示のレベルを下げます．
			 t  トレース表示の on/off (トグル)．

      -j		 このオプションを有効にすると， 演奏しながらパッチ
			 ファイルを読み込みます．

      -L dir		 TiMidity++ のサーチパス dir を追加します．

      -n mode		 Noise Shaping Filter
			 8 bit linear 出力時の量子化誤差による歪みを改善し
			 ます．ただし， ノイズが増えます．
			 mode には 0〜4 の値が有効で， noise shaping filter
			 の次数を表します．0 の時はフィルタ無しです．

      -O mode		 出力モードやフォーマットを指定します． 以下の mode
			 が有効です．
			 -Od  オーディオデバイスに出力します(デフォルト)．
			 -Ow  Windows WAV ファイルを出力します．
			 -Or  ヘッダのないオーディオのデータ部分のみを出力
			      します．
			 -Ou  Sun Audio (au) ファイルを出力します(拡張版の
			      み)．
			 -Oa  AIFF ファイルを出力します(拡張版のみ)．
			      上記オプションに続けて(スペースを空けずに)， 
			      以下の文字を追加することで出力フォーマットを
			      指定できます(複数可)．
			 8  8-bit サンプル精度
			 1  16-bit サンプル精度 (数字のいち)
			 U  U-Law 符合化方式
			 A  A-Law 符合化方式 (拡張版のみ)
			 l  linear PCM 符合化方式 (英小文字のエル)
			 M  モノラル
			 S  ステレオ
			 s  符合付き整数
			 u  符合無し整数
			 x  バイト反転

      -o file		 出力ファイル名を指定します．出力先が ファイルでな
			 い場合はこのオプションは無視されます．

      -P file		 全ての楽器を file を用いて演奏します．file には
			 GUS のパッチファイルを指定します。

      -p n		 最大同時発音数を指定します．

      -Q n		 n チャネル目を演奏しないようにします．

      -R n		 エンベロープリリース を修正して音響効果を得ます．
			 0〜2 の値が指定可能で，nの値によってその効果が異な
			 ります．

      -r		 このオプションを有効にすると， リバーブ効果を得ま
			 す．

      -S size		 リサンプリングキャッシュの大きさを バイト数で指定
			 します． 頻繁に用いられるサンプルは予めリサンプリ
			 ングしておくことで 高速化しています．ただし，ビブ
			 ラートやピッチベンドなどによってピッチが 変化する
			 サンプルはキャッシュされません．0 を指定すると全く
			 キャッシュ しません．デフォルトでは n=2097152 (2M)
			 となっています．

      -s freq		 再生サンプルレート (Hz または kHz) を指定します．4
			 〜65 の場合は kHz、4000〜65000 の場合は Hz として
			 解釈されます。それ以外のレートはエラーとなります。

      -t code		 テキストの出力文字コードを指定します． 以下の code
			 が指定可能です(大文字小文字は区別されません)．
			 auto	LANG 環境変数によって，コードが決まります．
			 ascii	非可読 ASCII を ピリオド(0x2e) に変換して出
				力します．
			 nocnv	出力文字コードを変換しません．
			 euc	EUC コード(japan) で出力します．
			 jis	JIS コードで出力します．
			 sjis	SJIS コードで出力します．

      -U		 このオプションを有効にすると，毎曲， パッチに割り
			 当てられていたメモリを解放します．

      -W mode		 MIMPI の WRD ファイルのトレース表示する インターフ
			 ェースを指定します。以下の mode が有効です．
			 -W-  WRD ファイルを無視します(デフォルト)．W と
			 '-' にスペースを 入れないことに注意すること
			 -Wd  WRD コマンドを表示します． -Wt  vt100 や
			 kterm に基づいた制御コードを用いて、WRD のテキスト
			 表示の部分を表示します。 -Ww  Windows のコンソール
			 に基づいた制御コードを用いて、 WRD のテキスト表示
			 の部分を表示します。

      -W Ropts1,opts2,...MIMPI の WRD ファイルに関するオプションです。以下
			 の opts が指定可能です。
			 -WRd=level	MIMPI のバグエミュレーションレベル
					を指定します。以下の値を取ります。
				0  MIMPI のバグをエミュレーションしないで
				   規格通りに忠実に WRD をトレースします。
				   @WAIT 命令によって時間をさかのぼるような
				   WRD も、指定した時刻通りにタイミングを
				   合わせます。
				1  既知のバグのみをエミュレーションします。
				2  バグらしい部分までもエミュレーションしますが
				   今までタイミングのあっていたものが
				   ずれてしまうことがあります。
				3 以上
				   開発用に設けたレベルで、一部の特定の WRD
				   のみに対象を絞ってタイミングを合わせます。
			 -WRf=filename	WRD ファイルが見つからない場合の
			   み、 指定した filename が WRD ファイルとして用いら
			   れます。
			 -WRF=filename	常に指定した WRD ファイル filename
			   が用いられます。
			 -WRp=path  @MAG, @PLOAD のデフォルトパス path を指
			   定します。

      -w mode		 Windows 用の拡張モードのオプションです． 以下の
			 mode が有効です．
			 -w r  rcpcv.dll を使用します．
			 -w R  rcpcv.dll を使用しません(デフォルト)．

      -x str		 指定した文字列 str で設定を行います． 例えば
			 -x'bank 0\n0 violin.pat'
			 とすると 0 番をバイオリンにすることができます．


* アーカイブファイルの演奏
  TiMidity++ では、アーカイブファイルをそのまま読み込んで演奏
  することができます。以下のアーカイブ形式をサポートしています。

  - tar ファイル (*.tar) 
  - tar + gzip'ed ファイル (*.tar.gz, *.tgz) 
  - zip ファイル (*.zip) 
  - lzh ファイル (*.lzh)
	(lh0, lh1, lh2, lh3, lh4, lh5, lh6, lzs, lz5, lz4 対応) 

  アーカイブファイル中の個々のファイルを指定するには，アーカイブファイル名の
  後に続けて # を記述し，その後に続けて アーカイブ中のファイル名を指定します． 
  # の後は UNIX shell の正規表現のパターンになっていますが、大文字／小文字は
  区別されません。以下に例をいくつかあげます。
	      timidity 'file.zip#file.mid'
		  file.zip 中の file.mid ファイルを演奏します． 
	      timidity 'file.lzh#*.mid'
		  file.lzh 中の *.mid にマッチするファイルを演奏します． 
	      timidity 'file.tgz#*'
		  これは timidity 'file.tgz' と等価です． 


* MIDI ファイルのネットワークアクセス。
  TiMidity++ では、MIDI ファイルをネットワークを介してアクセスする
  ことができます。現在サポートしているプロトコルは HTTP, FTP, NNTP(NetNews)
  で、それぞれ、http://〜, ftp://〜, news://〜 のように指定します。
  ネットワーク上にアーカイブされた MIDI ファイルも同様な方法で指定すると
  演奏することができます。なお、NetNews によるアクセスにおいて、
  MessageID 部に NewsGroup 名を記述すると、その Group 中に投稿されている
  全ての MIDI ファイルを演奏します。また、投稿された MIDI ファイルは、
  uuencode されているか、あるいは Multipart 形式の uuencode/base64/hexbin
  でなければなりません。


* 入手元
  以下の場所から最新の TiMidity++ が入手できます。
    ・http://www.goice.co.jp/member/mo/timidity/
	(主に UNIX 用)
    ・http://www.asahi-net.or.jp/~gb7t-ngm/timidity/
	(Macintosh 版)
    ・http://www2.off.ne.jp/~dai/timidity/timidity-izumo.html
	(Windows 版)
    なお、オリジナル版である Tuukka Toivonen さんの TiMidity の公式な
    配付サイトは閉じてしまいました。もし、オリジナル版を入手したいならば、
    http://www.goice.co.jp/member/mo/timidity/dist/timidity-0.2i.tar.gz
    から得ることが出来ます。
