説明
timidity.cfg は,timidity(1) の実行時の様々な設定を行うための設定 ファイルです。音色データの置き場所,音色自体の設定,その他諸々を設定す ることができます。TiMidity++ は,起動時にコマンドラインオプションを見る前に, timidity.cfg を探索します。このファイルにアクセスできない場合,ま たライブラリパスがコマンドラインで -L オプションによって変更され ている場合は,すべてのオプションを見た後に,新しいライブラリパスに従っ てデフォルトファイルを(-c オプションで別の設定ファイルが指定され ていないならば)再探索します。
設定ファイルは,MIDI プログラムのインスツルメントファイルへのマッピング を定義します。もし,複数のファイルが指定された場合には,後に読み込まれ た設定によって前の設定が上書きされます。
変数
ドル記号 `$' に続けて英数字やアンダースコア `_' が続いている場合,その 文字列は変数と見なされ,設定ファイルを処理する際に別の文字列に置き換え られます。この変数名は,後続の文字と区別するために,中括弧付きで表記す ることもできます。
例:
$variable
${variable} # $variable と同義
変数を新たに定義する命令は,今のところ用意されていません。未定義の変数
は,空文字に置き換えられます。
規定の変数として定義されている変数は,次の 1 つだけです。
- $basedir
-
設定ファイルが存在するディレクトリを表します。主にパスを指定する命令で,
設定ファイルからの相対パスを指定する目的で使います。
$basedir に空白が含まれるかも知れない場合は,"" で括る必要があります。例:
/usr/local/share/timidity/timidity.cfg 内で
dir $basedir/inst # source /usr/local/share/timidity/inst と解釈される
文法
設定ファイル中には以下の書式が指定可能です。- dir directory [...]
-
directory を探索パスに加えます。加え方は -L オプションと同
様です。
TiMidity++ では,アーカイブファイルをパッチセットにすることができ ます。例:
dir /usr/local/share/timidity/inst/foo.zip#
bank 0
0 bar.pat
1 baz.pat
2 zoo.patまず,dir で通常のディレクトリのようにアーカイブファイル(上の例で は/usr/local/share/timidity/inst/foo.zip)を指定します。このとき,アーカ イブファイル名の最後に `#' を付けてください。この `#' があることで,ア ーカイブファイルであることを TiMidity++ は認識します。こうしてお くと,dir で指定されたアーカイブファイルの中のパッチファイルも読 み込み対象になります。上の例では,foo.zip の中にある bar.pat,baz.pat, zoo.pat が読み込まれます。
- source file [...]
- 他の設定ファイルをその場所に挿入し,続行します。source のネストは 50 段まで可能です。
- progbase number
- これ以降,プログラム番号を number から number+128 で設定・ 表示します。例えば,progbase 1 とした場合は,それ以降プログラム番 号は 1 から 128 で設定・表示されます。
- bank [MapID1] number
- これ以降変更するトーンバンクを選択します。この文以後の patch の対応付け は,指定されたトーンバンクに対して行われます。MapID1 に gm2,sc55,sc88,sc88pro,sc8850, xg,xgsfx64 のいずれかを指定することで,特定のマップを対象 にできます。
- drumset [MapID2] number
- 変更するドラムセットを選択します。この文以後の patch の対応付けは,指定 されたドラムセットに対して行われます。MapID2 に gm2drum, sc55drum,sc88drum,sc88prodrum,sc8850drum, xgdrum,xgsfx126 のいずれかを指定することで,特定のマップを 対象にできます。
- number file [options]
-
- number %font file bank prog [key] [options]
-
- number %sample file [options]
-
現在のトーンバンクやドラムセットで,MIDI プログラムナンバー
number で使用する patch ファイルを指定します。file が
SoundFont の場合は,number %font の書式で特定の bank,
prog,key の音色データを取り出します。file が無圧縮の
WAV 形式または AIFF 形式のサンプルファイルの場合は,number
%sample の書式で指定します。options は,次のものが使用可能です。
-
- amp=amplification
- インスツルメントのボリュームを amplification% にします。もし値が 指定されていない場合,インスツルメントが読み込まれる時に自動的に設定さ れます。
- note=note
- インスツルメントを演奏する時に決まった MIDI ノート(音階)を使用します。 note を 0 にすると,最初に Note On イベントが発生した時点で のノートを使用します。パーカッションインスツルメントに対しては,もし設 定ファイルで値が設定されていなければ,patch ファイルに入っている値を使 用します。
- pan=panning
- インスツルメントのデフォルトのパンニングを設定します。panning は left,right,center,あるいは -100 から 100 までの整数値を取ることができます。-100 が最も左, 100 が最も右になります。値が与えられていない場合には,patch ファ イルに入っている値を使用します。もちろん,MIDI ファイル中のパンニングコ ントロールの方が優先されます。
- tune=tuning[,...]
- インスツルメントのルート周波数を調整します。tune=1 とすれば 1 半音上がります。tuning には小数が利用可能なので, tune=-0.2 などの微調整も可能です。二つ目以降の引数は,音域別に複 数のサンプルデータが含まれている場合に,それぞれ別の値を指定できます。
- rate=attack:decay:sustain:release1:release2:release3[,...]
-
インスツルメントの ADSR レートを設定するオプションです。0 から
255 までの値が指定できます。サステインレートだけを補正したい場合
など,
6 GUS/hrpschrd.pat rate=::60
のような狙い撃ち設定も可能です。また,アタックタイムを速くしたいだけで あれば,
6 GUS/hrpschrd.pat rate=255
という書き方ができます。二つ目以降の引数は,音域別に複数のサンプルデー タが含まれている場合に,それぞれ別の値を指定できます。
- offset=attack:decay:sustain:release1:release2:release3[,...]
- インスツルメントの ADSR オフセットを設定するオプションです。0 か ら 255 までの値が指定できます。 書式については,ほぼ rate= と同様です。
- keep={loop|env}
- パーカッションインスツルメントでは,デフォルトでループ情報とエンベロー プ情報が破棄されます。また,メロディーインスツルメントに異常なエンベロ ープが存在した場合にも,エンベロープ情報は自動的に破棄されます。 keep= を指定することで,ループ情報やエンベロープ情報が破棄される のを防ぎます。例えば,Short,Long Whistle パーカッションインスツルメン ト(General MIDI の 71,72 番)に対しては,設定ファイルで keep=loop keep=env としておく必要があります。
- strip={loop|env|tail}
- インスツルメントとして使用する patch のループ情報やエンベロープ情報やテ ール(ループの後にあるデータ)をすべて強制的に破棄します。サードパーティ ーのインスツルメントには,ループの後にゴミが付いているものがあり,イン スツルメントを演奏する度にクリッキングノイズが入ってしまうことがありま す。その場合,strip=tail オプションを指定すれば音質が改善されます。
- tremolo=sweep_increment:control_ratio:depth[,...]
- トレモロを設定するオプションです。0 から 255 までの値が指定 できます。rate= 同様,狙い撃ち設定や不要部分の省略が可能です。 sweep_increment は発音してからトレモロが掛かり始めるまでの時間, control_ratio は振幅が変化する速さ,depth は振幅が変化する 深さです。rate= 同様,複数のサンプルに対する設定が可能です。
- vibrato=sweep_increment:phase_increment:depth[,...]
- ビブラートを設定するオプションです。0 から 255 までの値が指 定できます。rate= 同様,狙い撃ち設定や不要部分の省略が可能です。 sweep_increment は発音してからビブラートが掛かり始めるまでの時間, phase_increment は周波数が変化する速さ,depth は周波数が変 化する深さです。rate= 同様,複数のサンプルに対する設定が可能です。
- sclnote=note[,...]
- インスツルメントのスケールチューニングの基準とするノートを設定します。 例えば,sclnote=60 とすれば,真ん中のドを中心にスケールチューニン グが行われます。二つ目以降の引数は,音域別に複数のサンプルデータが含ま れている場合に,それぞれ別の値を指定できます。
- scltune=tune[,...]
- インスツルメントのスケールチューニングの度合いを cent 単位で設定します。 例えば,scltune=50 とすれば,ノート間隔が 50 cent になりま す。二つ目以降の引数は,音域別に複数のサンプルデータが含まれている場合 に,それぞれ別の値を指定できます。
- comm=comment
- comment が指定できます。#extension comm と同じ効果です。
- modrate=attack:decay:sustain:release1:release2:release3[,...]
-
- modoffset=attack:decay:sustain:release1:release2:release3[,...]
- モジュレーション・エンベロープの変化の仕方を設定します。設定方法や値は, 基本的にボリューム・エンベロープと同じです。一部の SoundFont を除けば, このオプションだけを指定しても何も起こりません。
- envkeyf=attack:decay:sustain:release1:release2:release3[,...]
- ボリューム・エンベロープ・キーフォローを設定します。note=60 を基 準として,ノートに従いエンベロープ・タイムを変化させます。単位は +-cent/key です。例えば envkeyf=100 と指定すると,1 オクターブ上 がるたびにアタック・タイムが 2 倍になります。rate= 同様,複数のサ ンプルに対する設定が可能です。一部の SoundFont では,decayと sustain のパラメータが予め設定されている場合があります。
- envvelf=attack:decay:sustain:release1:release2:release3[,...]
- ボリューム・エンベロープ・ベロシティフォローを設定します。 velocity=64 を基準として,ベロシティに従いエンベロープ・タイムを 変化させます。単位は +-cent/velocity です。例えば envvelf=100 と 指定すると,velocity=127 でアタック・タイムが約 38 倍になります。 rate= 同様,複数のサンプルに対する設定が可能です。このオプション は,近い将来仕様変更される可能性があります。
- modkeyf=attack:decay:sustain:release1:release2:release3[,...]
- モジュレーション・エンベロープ・キーフォローを設定します。note=60 を基準として,ノートに従いエンベロープ・タイムを変化させます。単位は +-cent/key です。例えば modkeyf=100 と指定すると,1 オクターブ上 がるたびにアタック・タイムが 2 倍になります。rate= 同様,複数のサ ンプルに対する設定が可能です。一部の SoundFont では,decayと sustain のパラメータが予め設定されている場合があります。
- modvelf=attack:decay:sustain:release1:release2:release3[,...]
- モジュレーション・エンベロープ・ベロシティフォローを設定します。 velocity=64 を基準として,ベロシティに従いエンベロープ・タイムを 変化させます。単位は +-cent/velocity です。例えば modvelf=100 と 指定すると,velocity=127 でアタック・タイムが約 38 倍になります。 rate= 同様,複数のサンプルに対する設定が可能です。このオプション は,近い将来仕様変更される可能性があります。
- trempitch=num[,...]
- トレモロに従って,ピッチを変化させる深度を設定します。効果そのものはビ ブラートと一緒ですが,別系統で動作させたいときに利用します。単位は +-cent です。rate= と同様,複数のサンプルに対する設定が可能です。
- tremfc=num[,...]
- トレモロに従って,フィルタ・カットオフ周波数を変化させる深度を設定しま す。いわゆる「グロウル効果」を表現できます。単位その他は trempitch= と同一です。
- modpitch=num[,...]
- モジュレーション・エンベロープに従って,ピッチを変化させる深度を設定し ます。アタック時だけ一時的に音程が上がるなどの表現が可能です。単位その 他は trempitch= と同一です。
- modfc=num[,...]
- モジュレーション・エンベロープに従って,フィルタ・カットオフ周波数を変 化させる深度を設定します。単位その他は trempitch= と同一です。
- fc=num[,...]
- フィルタ・カットオフ周波数の基準値を設定します。単位は Hz です。 rate= と同様,複数のサンプルに対する設定が可能です。
- q=num[,...]
- フィルターの Q(レゾナンス)を設定します。単位は cB です。rate= と 同様,複数のサンプルに対する設定が可能です。
- fckeyf=num
- フィルタ・キーフォローを設定します。note=60 を基準として,ノート に従いカットオフ周波数を変化させます。単位は +-cent/key で,例えば 100 を指定すれば,音程と同じだけ変化します。
- fcvelf=num
- フィルタ・ベロシティフォローを設定します。velocity=127 を基準とし て,ベロシティに従いカットオフ周波数を変化させます。単位は +-cent で, SoundFont では -2400 が固有値として設定されています。
- qvelf=num
- レゾナンス・ベロシティフォローを設定します。velocity=0 を基準とし て,ベロシティに従いレゾナンスを変化させます。単位は +-cB です。
-
- default file
- 他のどこにも設定がないような音に出合った場合,このファイルが代理として 発音されます。
- map MapID1 from-bank from-prog to-bank to-prog
- GS/XG 各マップのトーン音色として既存のトーン音色を割り当てます。 MapID1 には,gm2, sc55,sc88,sc88pro, sc8850,xg,xgsfx64 が指定できます。
- map MapID2 from-drumset from-keynote to-drumset to-keynote
- GS/XG 各マップのドラム音色として既存のドラム音色を割り当てます。 MapID2 には,gm2drum, sc55drum,sc88drum, sc88prodrum,sc8850drum,xgdrum,xgsfx126 が指 定できます。
- soundfont file [options]
-
SoundFont を最初から最後まで読み込みます(部分的に読み込むには,
number %font を使います)。options は,次のものが使用可能で
す。
-
- order=number
- 音色データを探す順番を設定します。order=0 のときは,まず SoundFont を読み込んで,その後に足りないサンプルを GUS/patch から探しま す。order=1 のときは,GUS/patch を読み込んだ後に SoundFont を読み 込みます。
- amp=amplification
- SoundFont 全体の音量を amplification% にします。もし値が指定され ていない場合,100% に設定されます。
- cutoff=number
- SoundFont に設定された LPF の有効(1)/無効(0)を指定します。 もし値が指定されていない場合,有効となります。
- reso=number
- SoundFont に設定されたレゾナンスの有効(1)/無効(0)を指定しま す。もし値が指定されていない場合,有効となります。
- remove
- 対象の SoundFont を逆にメモリ上から廃棄します。
-
- font exclude bank [prog [key]]
- SoundFont の検索を,bank 上の prog で行わないように指定しま す。ドラムの場合はバンクが 128 でドラムセットが prog,キー 番号が key になります。
- font order number bank [prog [key]]
- SoundFont の検索順序(上記参照)を,個別に指定するためのものです。引数の 意味は font exclude と同じです。
TiMidity++ では,以下の拡張命令が追加されています。
- #extension altassign program1 program2 ...
-
ドラムセットについて,オルタネートアサインを設定します。
drumset 0
altassign 42 44 46と書くと,drumset 0 の 42,44,46 が排他的に鳴 ります。drumset 0 で定義されたオルタネートアサインはデフォルトで 使用されます。
- #extension comm program comment
- インスツルメント番号 program にコメント comment を指定しま す。ここで設定した comment は,-int や -iTt オプシ ョンで起動した時に,インジケータラインに表示されます。
- #extension timeout program second
- インスツルメント番号 program で,second 秒以上サスペンド状 態が続いた場合,その音をオフにします。
- #extension copydrumset drumset
- drumset 番号の状態すべてを,現在の drumset にコピーします。
- #extension copybank bank
- bank 番号の状態すべてを,現在の bank にコピーします。
- #extension copymap to-MapID from-MapID
- マップ from-MapID に定義されたバンクの状態すべてを,マップ to-MapID にコピーします。
- #extension HTTPproxy hostname:port
- HTTP のプロキシを設定します。プロキシのホスト名を hostname に,ポ ート番号を port に指定します。
- #extension FTPproxy hostname:port
- FTP のプロキシを設定します。プロキシのホスト名を hostname に,ポ ート番号を port に指定します。
- #extension mailaddr your-mail-address
- ユーザのメールアドレスを,your-mail-address に指定します。この メールアドレスは,FTP 接続をプロキシを介さずにダイレクトに繋ぐ場合に用 いられます。
- #extension opt option
- 起動時のオプションを指定します。
- #extension undef progno
- 現在のバンクのプログラム番号 progno を未定義にします。
- #extension legato progno {0|1}
- progno でレガートを掛ける(1),掛けない(0)を指定します。
- #extension level progno tva_level
- NRPN の Drum Instrument TVA Level を処理する際,音量を変化させる基準と なる値を設定します。曲中で Drum Instrument TVA Level が指定されない限り, 音量には一切影響しません。あくまで基準値です。progno は `,' や ``[start]-[end]'' で一括指定できます。start, end は省略すると,それぞれ 0,127 と見なされます。
- #extension damper progno {0|1}
- progno でリダンパー効果およびハーフダンパーを有効にする(1), 無効にする(0)を指定します。
- #extension playnote progno note
-
ドラムセット音色の出音周波数を note とします。GS SysEx Play Note
で出音周波数が指定された場合に,この設定値を元にピッチを適切に変化させ
ます。progno は `,' や ``[start]-[end]'' で一括指定
できます。start,end は省略すると,それぞれ 0,
127 と見なされます。
例:
drumset 0
#extension playnote -37,39,44-46,55-60 - #extension delaysend progno level
-
- #extension chorussend progno level
-
- #extension reverbsend progno level
- ドラムパート・エフェクトがオンの場合のセンドレベルを設定します。初期値 はすべて 127 ですが,delay,chorus,reverb のどれか一つでも設定さ れていれば,その音色に設定されていないエフェクトは初期値 0 になり ます。progno は `,' や ``[start]-[end]'' で一括指定 できます。start,end は省略すると,それぞれ 0, 127 と見なされます。
- #extension rnddelay progno msec
- 最大 msec 以内のディレイを,発音毎にランダムで付加します。ランダ ム値の分布はホワイトノイズというより,むしろピンクノイズ(1/f ゆらぎ)で す。
これらの拡張命令は `#' から始まっており,古い TiMidity では単なるコメン
トと扱われ無視されます。よって,古い TiMidity との互換性を保つことがで
きます。
なお,TiMidity++ では #extension は空白として扱われるように
なっています。
TiMidity++ の設定ファイル(*.cfg)中の source の引数に UNIX
のコマンドからの出力を利用できます(UNIX のみ)。ファイル名の最後に `|'
(ASCII 0x7c)を記述すると UNIX コマンドとみなされ,そのコマンドの出力が
source の引数になります。
source command| のようにすると,command の出力が
source の引数になります。環境によって TiMidity++ の設定を選
択したい場合などに便利です。なお,command | のように,途中にスペ
ースが入ると,設定ファイル読み込み時に区切られてしまい,コマンドと見な
されなくなってしまいます。この機能はファイル名を指定できるすべての場所
に適用できます。
- timidity 'cat fild.mid|'
は,cat fild.mid の出力結果から読み取ります。
ファイル
- /etc/timidity.cfg
著作権
Copyright (C) 1999-2004 Masanao Izumo <[email protected]>Copyright (C) 1995 Tuukka Toivonen <[email protected]>
The original version was developed by Tuukka Toivonen <[email protected]> until the release of TiMidity-0.2i. His development was discontinued because of his being busy with work.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA