| 1 |
============================================================================== |
| 2 |
TiMidity++ -- MIDI to WAVE converter and player |
| 3 |
|
| 4 |
出雲正尚 |
| 5 |
<mo@goice.co.jp> |
| 6 |
1999年4月28日 |
| 7 |
バージョン 2.0.0 |
| 8 |
============================================================================== |
| 9 |
本ドキュメントは TiMidity++ 2.0.0 以降の説明を記述しています。 |
| 10 |
|
| 11 |
本プログラムは全く無保証のフリーです。GPL に従い、自由に再配布/修正 |
| 12 |
することができます。ただし再配布する場合は、付属の COPYING、あるいは |
| 13 |
GPL のファイル (バージョン 2 以降) を取り寄せ、本プログラムと一緒に配 |
| 14 |
布してください。 |
| 15 |
|
| 16 |
本プログラムのオリジナルは Tuukka Toivonen <tt@cgs.fi> さんによって |
| 17 |
作られた TiMidity です。その後、出雲氏、あるいは他の様々な人達の協力に |
| 18 |
よって、TiMidity の改良版である TiMidity++ がリリースされました。 |
| 19 |
|
| 20 |
TiMidity はもともと MIDI ファイルをソフトウェアのみで WAVE ファイル |
| 21 |
に変換するツールとして開発されました。今ではただ単なる変換ではなく、リ |
| 22 |
アルタイムに MIDI を演奏するプレイヤーとして利用されています。外部音源 |
| 23 |
なしにソフトウェアのみで MIDI を演奏するソフトウェアシーケンサとして動 |
| 24 |
作します。 |
| 25 |
|
| 26 |
音源には、GUS/patch (Gravis Ultrasound) が用いられます。また SoundFont |
| 27 |
と呼ばれる音源も利用できます。 |
| 28 |
|
| 29 |
|
| 30 |
* TiMidity++ の主な特徴 |
| 31 |
- 外部 MIDI 音源なしで MIDI ファイルを演奏できる |
| 32 |
- MIDI ファイルを様々な PCM 形式のファイル (wav や au など) に変換できる |
| 33 |
- 音源には GUS/patch と呼ばれるファイルを用いる |
| 34 |
- SoundFont と呼ばれる音源も利用できる |
| 35 |
- リアルタイムに演奏中の状態が表示できる |
| 36 |
- ncurses, motif, xaw など、様々なユーザインターフェースがある |
| 37 |
- 日本語が表示できる (日本語をサポートしていないインターフェースは除く) |
| 38 |
- ネットワークを介して MIDI ファイルを演奏できる |
| 39 |
- アーカイブ/圧縮 ファイルを演奏できる |
| 40 |
- MIMPI の WRD ファイルの表示をサポート |
| 41 |
- SMF の他に、RCP/R36/G18/G36, MOD ファイルも演奏できる |
| 42 |
- 32 チャネル対応。 |
| 43 |
- ユーザインターフェースをダイナミックリンク可能 |
| 44 |
- サウンドスペクトログラムを表示できる |
| 45 |
- GM/GS/XG モードの認識 |
| 46 |
- GS/XG のドラムパート自動判別 |
| 47 |
- 音と表示の同期 (trace plaing) |
| 48 |
- 低負荷 (trace plaing でない時) |
| 49 |
- メモリを喰う (最低 20M bytes の空き容量は欲しい) |
| 50 |
- オルタネートアサインをサポート |
| 51 |
- リアルタイムに演奏することが困難になると、音数を自動的に減らし、 |
| 52 |
処理の軽減を図る |
| 53 |
- ストリーム形式の MIDI を演奏できる。 |
| 54 |
- 以下の MIDI イベントをサポート: |
| 55 |
NoteOn/Off, KeyPressure, Program, ChannelPressure, Pitchwheel, |
| 56 |
ToneBank, ModulationWheel, MainVolume, Panning, Expression, |
| 57 |
Sustain, Portamento, DataEntry, ReverbEffect, ChorusEffect, |
| 58 |
RPN+/-, NRPN, RPN, AllSoundsOff, ResetControllers, AllNotesOff, |
| 59 |
Mono/Poly Part, RandomPan, KeyShift, |
| 60 |
TempoChange, Lyric, InsertText, KARAOKE-Part(@KMIDI), |
| 61 |
MasterVolume, MIDI-Reset, SystemExclusiveMessages |
| 62 |
|
| 63 |
|
| 64 |
* 起動 |
| 65 |
- 形式: timidity [options] midi-filename |
| 66 |
|
| 67 |
- オプション: |
| 68 |
-A n 音量を指定します.デフォルトでは n=70 です. 大き |
| 69 |
な値を指定するほど大きな音になります.1〜800 の値 |
| 70 |
が有効です. |
| 71 |
|
| 72 |
-a アンチエイリアシングを有効にします. |
| 73 |
低いレートで再生したときに,折り返し雑音と呼ばれる |
| 74 |
不自然な成分が含まれることがあります.-a オプショ |
| 75 |
ンで起動することでこの 不自然な成分を取り除くこと |
| 76 |
ができます. |
| 77 |
|
| 78 |
-B n 音源にデータを書き込む時の分割数を指定します. 0〜 |
| 79 |
1000 の値が有効です.このオプションは Linux, |
| 80 |
FreeBSD, Windows のみで有効です. |
| 81 |
|
| 82 |
-b mode ヘッドホンやイヤホンで聞いた時の音の臨場感を 出す |
| 83 |
ようにします. mode には以下のモードが有効です. |
| 84 |
-bl 主に左から音が聞こえてきます. |
| 85 |
-br 主に右から音が聞こえてきます. |
| 86 |
-bb ときどき,左右の音場が変化します. |
| 87 |
-bc この機能は無効になります. |
| 88 |
|
| 89 |
-C n 制御レートを指定します.TiMidity++ では, エンベロー |
| 90 |
プやトレモロなどの音量計算を 1 サンプル毎行うので |
| 91 |
はなく, 複数のサンプルをまとめて計算することで高 |
| 92 |
速化をはかっています. n サンプル毎に,エンベロー |
| 93 |
プやトレモロの音量が再計算されます. n の値を小さ |
| 94 |
くすればするほど音質が良くなりますが,その分 CPU |
| 95 |
パワー を必要とします.n は 1〜255 までの値を指定 |
| 96 |
することができます. デフォルトでは 1 ミリ秒に相当 |
| 97 |
するサンプル数となっており、再生サンプルレート に |
| 98 |
よって変わってきます。 |
| 99 |
|
| 100 |
-c file TiMidity++ の設定ファイル file を読み込みます. |
| 101 |
TiMidity++ のデフォルトの設定ファルを読み込んだ後, |
| 102 |
file が読み込まれます. |
| 103 |
|
| 104 |
-D n n チャネル目をドラムチャネルにします. -nとすると |
| 105 |
n チャネル目がドラムではなくメロディーチャネルに |
| 106 |
することできます. |
| 107 |
|
| 108 |
-d dir ダイナミックリンクインターフェース モジュールがイ |
| 109 |
ンストールされているディレクトリを指定します. |
| 110 |
-e TiMidity++ のプライオリティをあげます.Windows のみ |
| 111 |
で有効です. このオプションを有効にすると, |
| 112 |
TiMidity++ 以外のプログラムがほとんど動作 しなくなり |
| 113 |
ます. |
| 114 |
|
| 115 |
-E mode TiMidity++ の拡張モードを指定します(複数指定可). |
| 116 |
主に演奏時の機能に影響を与えます. 以下の mode が |
| 117 |
指定できます. |
| 118 |
w モジュレーションコントロールを有効にします. |
| 119 |
W モジュレーションコントロールを無効にします. |
| 120 |
p ポルタメントコントロールを有効にします. |
| 121 |
P ポルタメントコントロールを無効にします. |
| 122 |
v NRPN ビブラートを有効にします. |
| 123 |
V NRPN ビブラートを無効にします. |
| 124 |
r リバーブエフェクトコントロールを有効にします. |
| 125 |
R リバーブエフェクトコントロールを無効にします. |
| 126 |
c コーラスエフェクトコントロールを有効にします. |
| 127 |
cn 全てのチャネルのコーラスエフェクトを n で演奏 |
| 128 |
します. |
| 129 |
C コーラスフェクトコントロールを無効にします. |
| 130 |
s チャンネルプレッシャーを有効にします. |
| 131 |
S チャンネルプレッシャーを無効にします. |
| 132 |
t 全てのテキストメタイベントをトレースします. |
| 133 |
T 特定のテキストメタイベントをトレースします. |
| 134 |
o 同一音の重複を許します. |
| 135 |
O 同一音の重複は許しません.前の音は消音されま |
| 136 |
す. |
| 137 |
mHH デフォルトのマニュファクチュア ID を 2 桁の16 |
| 138 |
数 HH で指定します. |
| 139 |
mgm デフォルトのマニュファクチュア ID を 0x7f |
| 140 |
(GM) にします. |
| 141 |
mgs デフォルトのマニュファクチュア ID を 0x41 |
| 142 |
(GS) にします. |
| 143 |
mxg デフォルトのマニュファクチュア ID を 0x43 |
| 144 |
(XG) にします. |
| 145 |
Bn 全てのチャネルをバンク n で演奏します. n を省 |
| 146 |
略するとデフォルトの動作に戻ります. |
| 147 |
bn 全てのチャネルのデフォルトバンクを n に 設定し |
| 148 |
ます.Bn と異なり,演奏中のバンクセレクト命令 |
| 149 |
を受け付けます.n を省略するとデフォルトの動作 |
| 150 |
に戻ります. |
| 151 |
|
| 152 |
-F このオプションを指定すると,Note ON のままの状態で |
| 153 |
Midi control change 10: Panning が有効になります. |
| 154 |
デフォルトではすぐには変化しないで,音量の再計算が |
| 155 |
必要になったときに 変化します.改良版ではトグルオ |
| 156 |
プションになっています. |
| 157 |
|
| 158 |
-f このオプションを有効にすると, エンベロープの変化 |
| 159 |
時間が半分になり高速に動作します.ただし, 音の立 |
| 160 |
ち上がりとリリース時間が短くなってしまいます. |
| 161 |
|
| 162 |
-g sec Sound-Spectrogram を表示する Window を開きます. |
| 163 |
このオプションは X Window がサポートされている環境 |
| 164 |
のみで動作します. Sound-Spectrogram は声紋のよう |
| 165 |
なもので,スペクトラムの時間変化を 表現したもので |
| 166 |
す. |
| 167 |
|
| 168 |
-h オプションの説明を表示します. |
| 169 |
|
| 170 |
-I n デフォルトの楽器番号を指定します. デフォルトでは |
| 171 |
-I n/ n=0 (通常はピアノ) となっています.改良版では, チ |
| 172 |
ャネル毎にデフォルトの楽器番号を指定でき,チャネル |
| 173 |
番号 cを nに続けて「n/c」と記述します.「/c」が 省 |
| 174 |
略されると,全チャネルのデフォルトの楽器番号が設定 |
| 175 |
されます. |
| 176 |
|
| 177 |
-i mode ユーザインターフェースを指定します. 環境によって |
| 178 |
利用可能なインターフェースが異なります. 以下の |
| 179 |
mode が存在します. |
| 180 |
-id dumb interface |
| 181 |
-in ncurses interface |
| 182 |
-is slang interface |
| 183 |
-ia X Athena Widget interface (拡張版のみ) |
| 184 |
-ik Tcl/Tk interface |
| 185 |
-im motif interface |
| 186 |
-iT vt100 interface (拡張版のみ) |
| 187 |
-ie Emacs interface (拡張版のみ、Emacs 上から M-x |
| 188 |
timidity により起動されます) |
| 189 |
上記オプションに続けて(スペースを空けずに), 以下 |
| 190 |
の文字列を追加することができます(複数指定化). |
| 191 |
v 冗長表示のレベルを上げます. |
| 192 |
q 冗長表示のレベルを下げます. |
| 193 |
t トレース表示の on/off (トグル). |
| 194 |
|
| 195 |
-j このオプションを有効にすると, 演奏しながらパッチ |
| 196 |
ファイルを読み込みます. |
| 197 |
|
| 198 |
-L dir TiMidity++ のサーチパス dir を追加します. |
| 199 |
|
| 200 |
-n mode Noise Shaping Filter |
| 201 |
8 bit linear 出力時の量子化誤差による歪みを改善し |
| 202 |
ます.ただし, ノイズが増えます. |
| 203 |
mode には 0〜4 の値が有効で, noise shaping filter |
| 204 |
の次数を表します.0 の時はフィルタ無しです. |
| 205 |
|
| 206 |
-O mode 出力モードやフォーマットを指定します. 以下の mode |
| 207 |
が有効です. |
| 208 |
-Od オーディオデバイスに出力します(デフォルト). |
| 209 |
-Ow Windows WAV ファイルを出力します. |
| 210 |
-Or ヘッダのないオーディオのデータ部分のみを出力 |
| 211 |
します. |
| 212 |
-Ou Sun Audio (au) ファイルを出力します(拡張版の |
| 213 |
み). |
| 214 |
-Oa AIFF ファイルを出力します(拡張版のみ). |
| 215 |
上記オプションに続けて(スペースを空けずに), |
| 216 |
以下の文字を追加することで出力フォーマットを |
| 217 |
指定できます(複数可). |
| 218 |
8 8-bit サンプル精度 |
| 219 |
1 16-bit サンプル精度 (数字のいち) |
| 220 |
U U-Law 符合化方式 |
| 221 |
A A-Law 符合化方式 (拡張版のみ) |
| 222 |
l linear PCM 符合化方式 (英小文字のエル) |
| 223 |
M モノラル |
| 224 |
S ステレオ |
| 225 |
s 符合付き整数 |
| 226 |
u 符合無し整数 |
| 227 |
x バイト反転 |
| 228 |
|
| 229 |
-o file 出力ファイル名を指定します.出力先が ファイルでな |
| 230 |
い場合はこのオプションは無視されます. |
| 231 |
|
| 232 |
-P file 全ての楽器を file を用いて演奏します.file には |
| 233 |
GUS のパッチファイルを指定します。 |
| 234 |
|
| 235 |
-p n 最大同時発音数を指定します. |
| 236 |
|
| 237 |
-Q n n チャネル目を演奏しないようにします. |
| 238 |
|
| 239 |
-R n エンベロープリリース を修正して音響効果を得ます. |
| 240 |
0〜2 の値が指定可能で,nの値によってその効果が異な |
| 241 |
ります. |
| 242 |
|
| 243 |
-r このオプションを有効にすると, リバーブ効果を得ま |
| 244 |
す. |
| 245 |
|
| 246 |
-S size リサンプリングキャッシュの大きさを バイト数で指定 |
| 247 |
します. 頻繁に用いられるサンプルは予めリサンプリ |
| 248 |
ングしておくことで 高速化しています.ただし,ビブ |
| 249 |
ラートやピッチベンドなどによってピッチが 変化する |
| 250 |
サンプルはキャッシュされません.0 を指定すると全く |
| 251 |
キャッシュ しません.デフォルトでは n=2097152 (2M) |
| 252 |
となっています. |
| 253 |
|
| 254 |
-s freq 再生サンプルレート (Hz または kHz) を指定します.4 |
| 255 |
〜65 の場合は kHz、4000〜65000 の場合は Hz として |
| 256 |
解釈されます。それ以外のレートはエラーとなります。 |
| 257 |
|
| 258 |
-t code テキストの出力文字コードを指定します. 以下の code |
| 259 |
が指定可能です(大文字小文字は区別されません). |
| 260 |
auto LANG 環境変数によって,コードが決まります. |
| 261 |
ascii 非可読 ASCII を ピリオド(0x2e) に変換して出 |
| 262 |
力します. |
| 263 |
nocnv 出力文字コードを変換しません. |
| 264 |
euc EUC コード(japan) で出力します. |
| 265 |
jis JIS コードで出力します. |
| 266 |
sjis SJIS コードで出力します. |
| 267 |
|
| 268 |
-U このオプションを有効にすると,毎曲, パッチに割り |
| 269 |
当てられていたメモリを解放します. |
| 270 |
|
| 271 |
-W mode MIMPI の WRD ファイルのトレース表示する インターフ |
| 272 |
ェースを指定します。以下の mode が有効です. |
| 273 |
-W- WRD ファイルを無視します(デフォルト).W と |
| 274 |
'-' にスペースを 入れないことに注意すること |
| 275 |
-Wd WRD コマンドを表示します. -Wt vt100 や |
| 276 |
kterm に基づいた制御コードを用いて、WRD のテキスト |
| 277 |
表示の部分を表示します。 -Ww Windows のコンソール |
| 278 |
に基づいた制御コードを用いて、 WRD のテキスト表示 |
| 279 |
の部分を表示します。 |
| 280 |
|
| 281 |
-W Ropts1,opts2,...MIMPI の WRD ファイルに関するオプションです。以下 |
| 282 |
の opts が指定可能です。 |
| 283 |
-WRd=level MIMPI のバグエミュレーションレベル |
| 284 |
を指定します。以下の値を取ります。 |
| 285 |
0 MIMPI のバグをエミュレーションしないで |
| 286 |
規格通りに忠実に WRD をトレースします。 |
| 287 |
@WAIT 命令によって時間をさかのぼるような |
| 288 |
WRD も、指定した時刻通りにタイミングを |
| 289 |
合わせます。 |
| 290 |
1 既知のバグのみをエミュレーションします。 |
| 291 |
2 バグらしい部分までもエミュレーションしますが |
| 292 |
今までタイミングのあっていたものが |
| 293 |
ずれてしまうことがあります。 |
| 294 |
3 以上 |
| 295 |
開発用に設けたレベルで、一部の特定の WRD |
| 296 |
のみに対象を絞ってタイミングを合わせます。 |
| 297 |
-WRf=filename WRD ファイルが見つからない場合の |
| 298 |
み、 指定した filename が WRD ファイルとして用いら |
| 299 |
れます。 |
| 300 |
-WRF=filename 常に指定した WRD ファイル filename |
| 301 |
が用いられます。 |
| 302 |
-WRp=path @MAG, @PLOAD のデフォルトパス path を指 |
| 303 |
定します。 |
| 304 |
|
| 305 |
-w mode Windows 用の拡張モードのオプションです. 以下の |
| 306 |
mode が有効です. |
| 307 |
-w r rcpcv.dll を使用します. |
| 308 |
-w R rcpcv.dll を使用しません(デフォルト). |
| 309 |
|
| 310 |
-x str 指定した文字列 str で設定を行います. 例えば |
| 311 |
-x'bank 0\n0 violin.pat' |
| 312 |
とすると 0 番をバイオリンにすることができます. |
| 313 |
|
| 314 |
|
| 315 |
* アーカイブファイルの演奏 |
| 316 |
TiMidity++ では、アーカイブファイルをそのまま読み込んで演奏 |
| 317 |
することができます。以下のアーカイブ形式をサポートしています。 |
| 318 |
|
| 319 |
- tar ファイル (*.tar) |
| 320 |
- tar + gzip'ed ファイル (*.tar.gz, *.tgz) |
| 321 |
- zip ファイル (*.zip) |
| 322 |
- lzh ファイル (*.lzh) |
| 323 |
(lh0, lh1, lh2, lh3, lh4, lh5, lh6, lzs, lz5, lz4 対応) |
| 324 |
|
| 325 |
アーカイブファイル中の個々のファイルを指定するには,アーカイブファイル名の |
| 326 |
後に続けて # を記述し,その後に続けて アーカイブ中のファイル名を指定します. |
| 327 |
# の後は UNIX shell の正規表現のパターンになっていますが、大文字/小文字は |
| 328 |
区別されません。以下に例をいくつかあげます。 |
| 329 |
timidity 'file.zip#file.mid' |
| 330 |
file.zip 中の file.mid ファイルを演奏します. |
| 331 |
timidity 'file.lzh#*.mid' |
| 332 |
file.lzh 中の *.mid にマッチするファイルを演奏します. |
| 333 |
timidity 'file.tgz#*' |
| 334 |
これは timidity 'file.tgz' と等価です. |
| 335 |
|
| 336 |
|
| 337 |
* MIDI ファイルのネットワークアクセス。 |
| 338 |
TiMidity++ では、MIDI ファイルをネットワークを介してアクセスする |
| 339 |
ことができます。現在サポートしているプロトコルは HTTP, FTP, NNTP(NetNews) |
| 340 |
で、それぞれ、http://〜, ftp://〜, news://〜 のように指定します。 |
| 341 |
ネットワーク上にアーカイブされた MIDI ファイルも同様な方法で指定すると |
| 342 |
演奏することができます。なお、NetNews によるアクセスにおいて、 |
| 343 |
MessageID 部に NewsGroup 名を記述すると、その Group 中に投稿されている |
| 344 |
全ての MIDI ファイルを演奏します。また、投稿された MIDI ファイルは、 |
| 345 |
uuencode されているか、あるいは Multipart 形式の uuencode/base64/hexbin |
| 346 |
でなければなりません。 |
| 347 |
|
| 348 |
|
| 349 |
* 入手元 |
| 350 |
以下の場所から最新の TiMidity++ が入手できます。 |
| 351 |
・http://www.goice.co.jp/member/mo/timidity/ |
| 352 |
(主に UNIX 用) |
| 353 |
・http://www.asahi-net.or.jp/~gb7t-ngm/timidity/ |
| 354 |
(Macintosh 版) |
| 355 |
・http://www2.off.ne.jp/~dai/timidity/timidity-izumo.html |
| 356 |
(Windows 版) |
| 357 |
なお、オリジナル版である Tuukka Toivonen さんの TiMidity の公式な |
| 358 |
配付サイトは閉じてしまいました。もし、オリジナル版を入手したいならば、 |
| 359 |
http://www.goice.co.jp/member/mo/timidity/dist/timidity-0.2i.tar.gz |
| 360 |
から得ることが出来ます。 |