-------------------------------------------------------------------------------
【  名  称  】 GuruGuruSMF Player
【ファイル名】 kbGuru2SMF.kpi
【バージョン】 0.02
【対応拡張子】 mid
【 Platform 】 x86(32bit) のみ / x64(64bit) なし
【 公 開 日 】 2024/03/01
-------------------------------------------------------------------------------

【概要】

  GuruGuruSMF4.dll を使用して、DirectMusic で MIDI を再生するプラグインです。

  「デバイス設定」で kbGuru2SMF.kpi を選択することで、GuruGuruSMF4.dll で MIDI
  を再生することが出来ます。

  You 様が KbMedia Player のサポート掲示板にて公開された kbGuru2SMF.kpi v0.01
  の開発を Kobarin が引き継ぐ形を取ることにしました。

  GuruGuruSMF については

  http://gurugurusmf.migmig.net/

  を参照して下さい。

【GuruGuruSMF4.dll】

  本プラグインの動作に必要になります。本プラグインに同梱しています。
  (Kobarin による改造版)
  ベースにした DLL のバージョンは v4.0.7 です。

  プラグイン設定で DLL の場所を設定することで、公式版の DLL を使うことも出来ま
  すが、公式版の v4.0.7 では一度でも再生すると DLL をアンロードするタイミングで
  フリーズします。v4.0.6 ならフリーズしないようです。

  同梱の DLL は私の環境ではフリーズしません。原因となりそうな箇所を修正済ですが
  根本的には DLL に API を追加し、その DLL を使用する側が適切なタイミングでその
  API を呼ぶようにしないと解決出来そうにありません。公式版の DLL を使用するアプ
  リケーションに不具合があったとして、同梱の DLL に置き換えてもフリーズは改善し
  ないかもしれません。

【既知の不具合】

  ・公式版の GuruGuruSMF4.dll v4.0.7 だと DLL をアンロードするタイミングでフリ
    ーズする
  ・公式版を使いたい場合は v4.0.6 をお使い下さい。ただし、公式版 v4.0.6 は COM
    の初期化の関係上、本体や他のプラグインの動作に支障が出る可能性があります。

-------------------------------------------------------------------------------

【更新履歴】

Version 0.02(2024/03/01)

・You さん製作の kbGuru2SMF.kpi v0.01 の開発を Kobarin が引き継ぐ
・GuruGuruSMF4.dll を v4.0.6 から v4.0.7(を VS2022 でビルドしたもの)に変更
・GuruGuruSMF4.dll を LoadLibrary して使うようにした
・GuruGuruSMF4.dll に対する以下の修正
　・VS2022 でビルド
　・メモリリーク修正
　・スリープ時にデバイスを閉じる処理が原因と思われる不具合(FreeLibrary 時にフ
　　リーズ)の修正
　・↑の為、GuruGuruSMF4.dll に後始末用API(GGS4Uninialize_k) を追加(他に方法が
　　思いつかなかった)
・GuruGuruSMF4.dll のパスを設定出来るようにした
　・オリジナルの v4.0.7 は正常動作しない(v4.0.6 なら動作する)

/*---------------------------------------------------------------------------*/

Version 0.01(2024/01/31)

・初版

-------------------------------------------------------------------------------
Kobarin(hidkob@pb.highway.ne.jp)
https://kobarin.sakura.ne.jp/
