title
Japan | English
トップページ -> TiMidity 関連 -> TiMidity 導入解説
TiMidity導入解説
TiMidity とは Soundfont(サウンドフォント) や GUS/Patch を用いて MIDI 演奏ができるソフトです。 最大の特徴は使用する音色を自由に差し替えることができ、現在では一部のインサーション・エフェクトにも対応しています。
※但し YAMAHA 又は ROLAND のソフトシンセ/ハードシンセを持ってる方には必要が無いと思われます。
※ただ、cfgやsoundfontなどの組み合わせによっては、SC-88/SC-88Pro以上の音が出せると思います。

というわけで、ここはTiMidityの初心者用の導入ページです。
TiMidityは多くの方々によって、開発されています。
ここでは、その中でもsaito氏の本体を使用したとして進めていきます。

項目

TiMidity をダウンロード / インストール編

まず、TiMidity++ (Experimental version)へ行き 本体配布と進んでください。
ここで最新版と安定版がありますが、この解説を見てる人は最新版でもいいと思います。
安定版はインストール版もあり、解説もついてきます。

ここからは最新版をダウンロードして、使用する場合を例にとって進めていきます。
落としたファイルをLhaPlusなどで解凍するとtimw32g.exe、twsyng.exe、twsynsrv.exe
がでてきます。このファイルをできるだけわかりやすい場所におくことをお勧めます。
とりあえず説明の都合上CドライブにTiMidityというフォルダを作成し、そこに置くことにします。

これでTiMidityの設置は終わりました。
次にSoundfont(楽器)とコンフィグファイルを落として音を鳴らせて見ましょう。


音を鳴らせてみよう編

音を鳴らすには導入編の最後に書いたSoundfont(サウンドフォント)とコンフィグファイルが必要です。
別の方法でGUS/patchを用いる方法もありますが、そちらの方法は結構紹介しているところが多いので、説明は省略します。

今回はsaito氏の自動生成されたコンフィグファイルを使用します。
まず、TiMidity++ (Experimental version)へ行き
設定ファイル→自動生成CFG詰め合わせへ飛びます。
すると大量のコンフィグファイルが並んでいますが、その中でもAnotherGS Soundfontv2.0を使うとして話を進めていきます。
まず、anothergsv20.cfgをダウンロードし、c:\TiMidityに置きます。
次にAnotherGS Soundfont v2.0.をクリック→AnotherGS Soundfont→DownLoad
AnotherGSをダウンロードします。落としたAnotherGSを展開するとbennetng_AnotherGS_v2-0.sf2がでてきます。
※AnotherGS 公開サイトが移転したようです。現在はこちらのようです。
c:\TiMidityにsoundfontというフォルダを作りその中に先ほど展開して出てきたbennetng_AnotherGS_v2-0.sf2を入れます。 するとこんな感じになります。

ここまで来たらもう少しです。
次にanothergsv20.cfgをテキストで開き(テキストエディタを起動させてcfgファイルを放り込んでください)
dir c:\TiMidity
dir c:\TiMidity\soundfont
と一番上に記入します。
意味はc:\TiMidityはTiMidity本体がある場所です。
c:\TiMidity\soundfontはsoundfontがある場所になります。
記入すると↓見たいな感じになります。

これで準備は完了です。早速TiMidityを起動させて見ましょう。
本体はtimw32g.exeです。
なにやら英語で質問が出ますがOKを選んでください。
Config→Preference→LangueageをJapaneseにします。
RestartTryって聞かれるので「はい」を
設定→詳細設定→設定ファイルで先ほどのanothergsv20.cfgを読み込み
OKを押しTiMidityを再起動させます。
これで音がなれば成功です。

※Soundfontの圧縮形式はsfpackとsfarkがあります。
sfpackはsaito氏の設定ファイルのところにひっそりとあります。
SfArkは"SfArk" とグーグルなどで検索をかければすぐ引っかかります。

 

カスタマイズしよう編

TiMidityのConfigファイルを開くと

のようになってると思います。

以下解説です。

用語 意味
検索パス cfg, soundfontなどがある場所を正確に
"絶対パス"(c:\timidityなどのように)で指定します。
注意点
スペースなどがパスやファイル名に含まれている場合は、""で囲ってください。
例:C:\Program Files\Timidityをdirで指定する場合は
dir "C:\Program Files\Timidity"
という風に記述してください
サウンドフォント サウンドフォントのファイル名です。
注意点
スペースなどがパスやファイル名に含まれている場合は、""で囲ってください。
例:SoundFont Name.sf2を指定する場合は
"SoundFont Name.sf2"
という風に記述してください
MIDIファイルのBank TiMidityのTracerで確認できます。

※ここの部分を少し書き換えることで、音源ごとにbankを設定することが可能です。
参考→FAQ
MIDIファイルのProg TiMidityのTracerで確認できます
SoundfontのProg Creative製のサウンドカードをお持ちなら Vienna(検索で探せば見つかります)で確認できます。
それ以外の場合は Soundfont Librarianなどで確認できます。
SoundfontのBank Creative製のサウンドカードをお持ちなら Vienna(検索で探せば見つかります)で確認できます。
それ以外の場合は Soundfont Librarianなどで確認できます。
音量 音色の音量を記述します。
amp=?の行を書かない場合TiMidityが自動的に音量を決めます。
パン 音色のパン(スピーカ左右の割り振り)を決めます。
記述を省いた場合はSoundfontの設定値に従います。

カスタマイズ/詳細設定(本体編)
最近のTimidityは初期設定で音質重視になっているので、非常に重たいです。
これをデフォルトのMIDIシンセとして使うのはかなりキツいので、多少音質は落ちますが軽くしてみましょう

まず、TiMidityを起動させます。

設定→詳細設定→エフェクト
オプション パフォーマンス重視 音質重視
リバーヴ 標準リバーブ / なし 標準リバーブ / 新リバーブ
コーラス 標準コーラス / なし 標準コーラス / サラウンドコーラス
ディレイ 標準ディレイ / なし 標準ディレイ
ローパスフィルタ LPF12db / なし LPF12db / LPF24db
もちろんリバーブコーラスともに「なし」のほうが軽いですが、音が寂しいので。
あまりお勧めはしませんが、EQ、インサーションエフェクト(EFX)、モジュレーション・エンベロープを切ると更に軽くなります。
モジュレーションホイール、ポルタメント、汎用コントローラ、NRPNビブラート、アタック・ディケイ・リリースタイムのチェックはいれておきましょう。
同音連打は現在バグがあるので、チェックいれないほうがいいです。
サラウンド・テキストメタイベントは今ひとつ謎なので、チェックは入れなくていいと思います。

設定→詳細設定→その他
演奏毎に音色破棄のチェックは出来るだけ入れましょう。
キャッシュの値は出来るだけ大きくとりましょう。
単位はByteで33554432(32M Byte)程度は取ったほうがいいかもしれません。
メモリーに余裕がある方はキャッシュサイズを0にすることをお勧めします。

設定→詳細設定→出力
サンプルレートは高いほど音質が上がりますが、負荷が高いようなら22050KHzに下げたほうがいいかもしれません。
サウンドカードによっては高いほうがいい場合があります。

次にGUIでは設定できない部分を設定しましょう。手順は2通りあります
コマンドラインで設定する
cfgにコマンドラインオプションを書いて読み込ませる

ここでは後者のcfgにコマンドラインオプションを書いて読み込ませる方法について説明します。便利なので。
まず、TiMidityで読み込んでるコンフィグファイルを開きます。
開いたらdirとbank 0の間くらいに以下の内容を書き込みます。
# ここから
#extension opt -V 2
#extension opt -EFresamp=L
#extension opt -q2.5/100
#extension opt -R 600
# ここまで
ここでコンフィグを保存し、Timidityを再起動させます。以下オプションの意味です。
-V 2
ボリュームカーブ(GS互換に設定 / 負荷には関係ない)
-V 2 でGS互換
-V 1.661で理想
-V 1で線型
-EFresamp=L
補完タイプの設定です。
-EFresamp=d#なし(最も軽い)
-EFresamp=l#線型(軽い)
-EFresamp=c#Cスプライン(軽い)
-EFresamp=L#ラグランジュ(ちょっと軽い)
-EFresamp=g#ガウス(重い)
-EFresamp=n#ニュートン(死ぬほど重い)
-q2.5/100
キュータイムの設定です。
2.5より小さい値にすれば負荷が軽くなりますが、低くしすぎると音とびが発生するかもしれません。
デフォルトは-q5.0/100です。
-R 600
このオプションは擬似リバーヴに使用されます。
プチノイズ防止対策のため600に設定してます。
デフォルトは800です。

以上で、詳細設定は終わりです。
また、上のオプションで音質に不満があり、動作が余裕な方は下のオプションにしてみましょう。
デフォルト設定のままが一番音質がいいはずですが…。
# ここから
#extension opt -V 2
#extension opt -EFresamp=n
#extension opt -Ncspline
#extension opt -q5.0/100
#extension opt -R 600
# ここまで

FAQ
設定してみたら音が鳴らなかったので、コンソールを見たら
XXXXXX.SF2: No such file or directory
Can't open soundfont file XXXXXX.SF2
がログに表示されたのですが

下記の点を確認して修正すればちゃんと鳴ると思います。
  • コンフィグのdirがちゃんとサウンドフォントが置いてあるパスになっているか
  • スペースが含まれているファイルやパスはダブルクォテーションで囲ってあるか
    1: SoundFont Name.sf2なら"SoundFont Name.sf2"のように書いているか。
    2: スペースを含むパスをちゃんとダブルクォテーション("")で囲ってあるか。
      dir C:\Program Files\Timidityと書いていた場合は
      dir "C:\Program Files\Timidity"
      という風に""で囲ってください
  • ファイル名や、ディレクトリ名が間違ってないか
コンソールにNo instrument mapped to tone bank 10, program 49
って表示されたんだけどコレは何?

cfgにbank 10 program 49の記述がないよーって意味です。
この場合はbank 0のprogram 49が代理音として鳴ります。
※代理音として使用されるbankはtimidity上で変えられるみたいです。
MIDIによって使用したいbankを変えたいんだけどどうすればいいの?
MIDIの音源情報によってbankを切り替えたいときは、bankの部分を下記のような感じで記述します。
bank sc55 0 #SC55
bank sc88 0 #SC88
bank sc88pro 0 #SC88PRO
bank xg 0 #XG
bank xgsfx64 0 #XG(SFX64)
こんな感じで書くことにより、MIDIの音源情報によって使用するbankを切り替えることが出来ます。
drumsetの場合は
drumset sc55drum 0 #SC55_DRUM
drumset sc88drum 0 #SC88_DRUM
drumset sc88prodrum 0 #SC88PRO_DRUM
drumset xgdrum 0 #XG_DRUM
のような感じで記述します。
MIDIによって、おかしく再生される音色があるんだけど
出だしの音程がおかしくなる場合は、
おかしくなる音色の %font FONT_NAME XX XX ... の後に
modpitch=0
を加えれば直る可能性があります。
例:0 %font GS_Sound_Set 0 0 pan=0 amp=100 modpitch=0
音色にノイズが走ったり、破裂したような音が出る場合は、
fc=8000 q=25
みたいなのを加えれば直ると思います。
例:0 %font GS_Sound_Set 0 0 pan=0 amp=100 fc=8000 q=25

TiMidity Driver の設定例

opt -q5.0/100
opt -U
opt -R500
opt --noise-shaping=4
opt --voice-lpf=1
opt --control-ratio=15
opt --volume-curve=2
opt -Ewpvsetoz
opt --chorus=n
opt --reverb=n
opt -A100,100
opt --module=4
opt --rtsyn-latency=0.0
opt -EFresamp=L


TiMidity 最新版の入手方法