title
Japan | English
トップページ -> TiMidity トップページ -> TiMidity 設定ファイル構文詳細
TiMidity 設定ファイル文法詳細
TiMidity の設定ファイル文法について(CVS2009-10-04現在)

$basedir について
設定ファイルが存在するディレクトリを表します。主にパスを指定する命令で, 設定ファイルからの相対パスを指定する目的で使います。
$basedir に空白が含まれるかも知れない場合は,"" で括る必要があります。
例:
/usr/local/share/timidity/timiditycfg 内で
dir $basedir/inst # source /usr/local/share/timidity/inst と解釈される

文法
dir directory [...]
directory を探索パスに加えます。加え方は -L オプションと同 様です。
TiMidity++ では,アーカイブファイルをパッチセットにすることができ ます。
例:
dir /usr/local/share/timidity/inst/foozip#
bank 0
0 barpat
1 bazpat
2 zoopat
まず,dir で通常のディレクトリのようにアーカイブファイル(上の例で は/usr/local/share/timidity/inst/foozip)を指定します。このとき,アーカ イブファイル名の最後に `#' を付けてください。この `#' があることで,ア ーカイブファイルであることを TiMidity++ は認識します。こうしてお くと,dir で指定されたアーカイブファイルの中のパッチファイルも読 み込み対象になります。上の例では,foozip の中にある barpat,bazpat, zoopat が読み込まれます。
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=-02 などの微調整も可能です。二つ目以降の引数は,音域別に複 数のサンプルデータが含まれている場合に,それぞれ別の値を指定できます。
rate=attack:decay:sustain:release1:release2:release3[,...]
インスツルメントの ADSR レートを設定するオプションです。0 から 255 までの値が指定できます。サステインレートだけを補正したい場合 など,
6 GUS/hrpschrdpat rate=::60
のような狙い撃ち設定も可能です。また,アタックタイムを速くしたいだけで あれば,
6 GUS/hrpschrdpat 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
以下の拡張命令は `#' から始まっており,古い TiMidity では単なるコメン トと扱われ無視されます。
よって,古い TiMidity との互換性を保つことができます。
なお,TiMidity++ では #extension は空白として扱われるように なっています。
TiMidity++ の設定ファイル(*cfg)中の source の引数に UNIX のコマンドからの出力を利用できます(UNIX のみ)。
ファイル名の最後に `|' (ASCII 0x7c)を記述すると UNIX コマンドとみなされ,そのコマンドの出力が source の引数になります。
source command| のようにすると,command の出力が source の引数になります。
環境によって TiMidity++ の設定を選 択したい場合などに便利です。
なお,command | のように,途中にスペ ースが入ると,設定ファイル読み込み時に区切られてしまい,コマンドと見な されなくなってしまいます。
この機能はファイル名を指定できるすべての場所 に適用できます。

#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 ゆらぎ)で す。