kbtim.kpi Version 0.23

出雲正尚さん他制作の TiMidity++ の MIDI 演奏ルーチンを KbMedia Player のプラグ
インとして使用できるようにしてみました。対応拡張子は .mid です。
KbMedia Player からは「MIDI デバイス」のように扱われます。

kbtim は設定を正しく行わないと再生することが出来ません。設定は kbtimsetup.exe 
で行うことが出来ます。KbMedia Player Version 2.50 以降であれば、プラグイン設定
ダイアログから kbtimsetup.exe を呼び出すことが出来ます。

テンプレートを追加すれば、複数のコンフィグファイルを独立した MIDI デバイスのよ
うに扱うことが出来るようになります。

テンプレートを追加・削除・名称変更した場合は、

・「表示」メニューの「最新の情報に更新」を実行する
・KbMedia Player を再起動する

のいずれかを行う必要があります。通常は「最新の情報に更新」すれば反映されるはず
ですが、万が一反映されない場合は再起動してみて下さい。テンプレートの追加・削除
・名称変更以外の設定変更に関しては、演奏し直せば反映されます。

今のところ、設定ダイアログの「ヘルプ」ボタンは機能していません。kbtim は本家の 
Timidity と同様、使用方法が非常に困難です。初心者でも簡単に扱えるように、わか
りやすいヘルプを作成したいと思ってはいますが、そこまで手が回らないというか、私
自身もまだ使い方が良くわかってません。誰か作って頂けるとありがたいです。(^^;


旧バージョンから最新バージョンにバージョンアップする場合は、旧バージョンがある
フォルダに kbtim.kpi, kbtim.dll, kbtimsetup.exe を置き、kbtimsetup.exe を起動
して「OK」を押して閉じれば、追加したテンプレートも最新のプラグインに置き換えら
れます。うまく動かない場合は、お手数ですが、全て削除してからインストールし直し
て下さい。


TiMidity++ は GPL なので、kbtim.kpi も GPL に従います。
ベースとした TiMidity は TiMidity++2.14.0(2012-06-28) です。

kbtim.kpi のソースコードは

http://hp.vector.co.jp/authors/VA015058/

にあります。最新版とは限らないので、もし最新のソースコードが欲しい人はメール
を頂ければ差し上げます。


更新履歴

Version 0.23(2012/10/18)

・冒頭の無音が無視されて歌詞表示がずれるのを修正
 
Version 0.22(2012/10/15)

・コアとなる TiMidity のベースを TiMidity++2.14.0(2012-06-28) に差し替え
・先読みバッファのサイズを小さくした(3000ms => 2000ms)
・ただし、「演奏中に音色読込」が有効なときは 5000ms とした
・「ボイス」の設定が無視されていた(常に 256)のを修正
・kbtim.kpi 固有の設定(今のところ「Resample 補間」のみ)は [KBTIM] セクションに
  設定を書き込むように仕様変更

Version 0.21(2012/10/14)

・control_ratio が 0(手動で kbtim.ini を編集しなければ 0) だと落ちることがある
  のを修正
・初期設定値と設定の範囲チェックを修正
・ファイルを既に開いているときに2つ目以降の kmp_Open が呼ばれると落ちるのを修正
  (KbMedia Player から使われる分には問題は起こらない)
・設定出来る項目を増やした(疑似リバーブ、音源モード等)

Version 0.20(2012/10/09)

・コアとなる TiMidity のベースを CVS081206 に差し替え
・リサンプリングの補間モード(C スプライン補間、ガウス補間、線形補間他)を設定出
  来るようにした(v0.19以前は無条件に線形補間)
・kbtimsetup.exe に関する以下の修正
  ・リサンプリングの補間モードを設定出来るようにした
  ・テンプレートの追加・削除・名称変更時に表示されるダイアログを修正
  ・*.manifest ファイルを同梱してビジュアルスタイルが適用されるようにした

Version 0.19(2005/02/27)

・不要なコードを除去して省サイズ化
・リバーブ・ディレイが有効だと落ちることがあるのを修正
・コンパイルオプションに /QIfist を追加して実行速度が高速化

Version 0.18(2005/02/14)

・「演奏毎に音色破棄」の設定を無視していたのを修正（常に破棄していた）
・kbtimsetup.exe に関する以下の修正
  ・「全て Default」ボタンを追加
  ・L&R ディレイの「左」「右」「回転」の設定が正しく反映されないのを修正
  ・INI の読み書きに GetPrivateProfileString/WritePrivateProfileString 等
    の Win32 API を使用するのをやめることにより、全体的に動作が鈍い（もっ
    さりしている？）のを修正

Version 0.17(2005/02/12)

・「サラウンドコーラス」が効いてなかったのを修正
・メモリリークを修正(freq.c の magdata, prunemagdata, ip, w, fft1_bin_to_pitch)
・freq.c::freq_initialize_fft_arrays でメモリを破壊して落ちることがあるのを修正
・rcp.c に依存しないようにした（ファイルサイズが少し小さくなった）
・voices > DEFAULT_VOICES のとき、落ちることがあるのを修正
・冒頭の無音を無視するようになっていたのを修正
・kbtimsetup.exe に関する以下の修正
  ・より詳細な設定が出来るようにした
  ・高音質高負荷、低音質低負荷の設定値を調整

Version 0.16(2005/02/07)

・コアを TiMidity++-2.13.2-041222-0400.tar.bz2 ベースに差し替え
・コアを kbtim.dll にまとめてプラグイン自体のサイズは小さくする（kbtim.dll を
  ロードするだけ）ことにより、テンプレートが増えてもディスク領域をそれほど消費
  しなくなった（ただし、kbrunkpi.exe を経由して再生することが多くなったため、
  再生時のパフォーマンスは少し低下）
・kbtimsetup.exe に関する以下の修正
  ・「設定」をクリックしたときに選択していたプラグイン（テンプレート）がツリー
    ビュー上で選択されるようにした

Version 0.15(2005/01/31)

・ある条件で落ちる or 演奏中にノイズが入ることがあるバグを修正
・kbtimsetup.exe に関する以下の修正
  ・アイコンを変更
  ・細かい修正

Version 0.14(2004/11/09)

・kbtimsetup.exe に関する以下の修正
  ・タブオーダーが滅茶苦茶だったのを修正

Version 0.13(2004/11/08)

・kbtimsetup.exe に関する以下の修正
  ・起動時のウィンドウ位置をデスクトップ中央に表示するようにした
  ・テンプレートの名称変更の適用先が変になることがあるのを修正
  ・テンプレートの削除に失敗した場合はメッセージを表示するようにした
・細かい修正

Version 0.12(2004/11/08)

・設定ダイアログが出せるようにした（KbMedia Player Version 2.38beta2 以降）

Version 0.11(2004/07/05)

・データによっては強制終了したり、演奏が勝手に終了したりするのを修正
・内部的に色々修正（出来るだけグローバル変数を使わないようにした）

Version 0.10(2004/06/06)

・演奏終了時にフリーズすることがあったのを修正

Version 0.09(2004/06/05)

・再生中、KbMedia Player 本体の DDE が正しく機能しなくなるのを修正

Version 0.08(2004/06/05)

・シークが高速化

Version 0.07(2004/05/31)

・メモリリーク修正（サウンドフォント関係）

Version 0.06(2004/05/31)

・曲の冒頭の無音を捨てないようにした（歌詞データとの同期再生のため）
・拡張子 *.RCP に対応するのをやめた（v2.34beta8 以降、本体側で SMF に変換して
  渡されるようになったため）

Version 0.05(2004/05/29)

・シークに対応
・音源の初期化が正しく行われず、２曲目以降の演奏がおかしくなることがあるのを多
  分修正（あまり自信がない）
・kbtim.ini や kbtim.ini で指定している CFG ファイルが存在しない場合は、演奏開
  始の度に再読み込みするようにした
・CFG ファイル自体だけではなく、CFG ファイルが置かれているフォルダが更新されて
  いる場合も、自動的に設定を再読み込みするようにした
・プラグインアンロード時や INI/CFG ファイル再読み込み時には解放されるが、何曲
  も再生していると少しずつメモリ使用量が増えていくのを修正
  （↓とは別件。↓はプラグインアンロード時でも解放されない）
・メモリリーク修正（voice::pan_delay_buf）
・先読みバッファのサイズを 500ms から 300ms に変更（あまり大きくしてもメリット
  は少ないので）

Version 0.04(2004/05/27)

・ベースとなるソースを TiMidity++-current-040525-0000 に差し替え
  （本当は安定版を使った方が良いのかもしれないけど）
・アーカイブ内のデータを参照する CFG ファイルが読めないのを修正
・kbtim.ini および ini 内で指定している CFG ファイル（CFG ファイル内で参照して
  いるファイル群は含まない）が変更されている場合は、自動的に設定の変更が反映さ
  れるようにした（反映されるのは、ファイルを開き直したとき、または先頭位置への
  シーク時）
・データによっては落ちるのを一応修正（リサンプリングルーチンのバグ？）
  （根本的な修正にはなっていない）

Version 0.03(2004/05/23)

・ファイルサイズをさらに削減
・スレッドの同期処理を改善
・メモリリーク修正
・細かい修正

Version 0.02(2004/05/21)

・演奏が終了してないのに演奏が止まることがあったのを修正
  （低速な PC や、高負荷状態で再生したときに発生しやすかった）
・RCP に対応
・メモリリーク修正
・CPU 負荷が減少
・実行ファイルサイズ削減

Version 0.01(2004/05/19)

・初版
-------------------------------------------------------------------------------
Kobarin(hidkob@pb.highway.ne.jp)
http://home7.highway.ne.jp/Kobarin/
