-------------------------------------------------------------------------------
【  名  称  】 EMU de MIDI MIDI Decoder
【ファイル名】 kbemidi.kpi
【バージョン】 0.11
【対応拡張子】 mid
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2022/09/22
-------------------------------------------------------------------------------

【概要】

EMU de MIDI のエンジンを使用して MIDI を再生するためのプラグインです。
KbMedia Player v2.80beta36 まで同梱させて頂いていた [OK] さん制作の emidi.kpi
の後継です。

ベースは emidi.kpi (2004/6/9版) です。

基本的に音質に関わる修正はしていないのですが、emidi.kpi とは音質が異なります。
設定項目を追加したのも原因の１つですが、emidi.kpi 互換の設定にしても同じには
なりません。原因は不明です。

SCC 音源部と OPLL 音源部を最新版(2016/10/22 版)に差し替えていますが、差し替え前
の時点ですでに音質が異なります。オリジナルのソースコードをほぼそのままコンパイ
ルしても音が異なるため、ベースにしているソースコードがオリジナルとは少し異なる
のかもしれませんし、コンパイラの違いによるものかもしれません。VS2015 では若干
の修正をしないと正常に動作しませんでした。

音質が異なることが気になる方は v2.80beta36 以前(v2.63a でも同じ)に同梱の
emidi.kpi をプラグインフォルダ(x86 版の方)にコピーすれば、v2.80beta37 以降でも
使用出来ます。

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

【更新履歴】


Version 0.11(2022/09/22)

・emu2413 を v1.5.9(2022/09/21) に更新
・emu2149 を 2022/09/13 のものに更新
・emu76489 を 2022/09/13 のものに更新

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

Version 0.10(2021/04/18)

・emu2413 を v1.5.6(2021/02/28) に更新

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

Version 0.09(2020/01/14)

・emu2413 を v1.2.7(2020/1/11) に更新

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

Version 0.08(2020/01/03)

・emu2413 を v1.1.0(2020/1/3) に更新

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

Version 0.07(2019/05/05)

・emu2413 を 2019/3/24 のものに差し替え

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

Version 0.06(2019/03/10)

・複数ポートMIDI再生時、SysEx を全てのポートに送信するようにした
　・現状 SysEx はマスターボリューム系(GM/GS/XG)のみ対応

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

Version 0.05(2017/05/18)

・深刻なリソースリーク(レンダリングスレッドの終了し忘れ)修正

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

Version 0.04(2017/05/15)

・マルチスレッド化による大幅な高速化
　・使用するスレッドの数を設定出来るようにした(初期値4)
　・4 コア 8 スレッド CPU で 4 個使用すると体感で v0.03 以前の数倍程度(シーク
　　にかかる時間で体感出来る)
　・スレッドの数は音質には影響しないが、重いデータを再生時の音途切れは改善さ
　　れる
・GM/GS/XG のマスターボリューム SysEx に対応
・マルチポート(メタイベント0x21)に対応
　・最大4ポート
　・ポート数に比例して負荷が高くなる(4ポート使用すると4倍)
・終端付近が再生されない(1〜2秒程度途切れて終了する)のを修正
・PSG 音源使用時のメモリリークを修正
・後半に行くほど再生位置がずれていたのを修正
・(本体によって無視されるが)演奏時間を正しく取得していなかったのを修正
・設定の「NumDevices」の初期値を 4 から 16 に変更

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

Version 0.03(2017/04/09)

・コンパイラを VS2017 に変更

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

Version 0.02(2017/01/09)

・正式版公開に向けての細かい修正(ドキュメント/ソースコードの整理等)

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

Version 0.01(2016/11/27)

・初版(v2.80beta36 以前まで同梱していた emidi.kpi の後継版)
・プラグインのファイル名を emidi.kpi から kbemidi.kpi に変更
・ベースは [OK] 氏制作の emidi.kpi (2006/6/9版)
　・音質が emidi.kpi とは異なる(原因不明)
・新プラグイン仕様に対応
・ループMIDIに対応(単曲リピート時の無限ループ)
・シークが高速化(高速シークの設定を有効時)
・本体からの再生周波数要求に応じるのは 48000Hz までに制限することにした
　・PSGDrum 有効時にドラムパートが正常に鳴らないので
・設定ダイアログに対応
　・NumDevices(emidi.kpi 互換にするなら 4)
　・EnableOPLL(emidi.kpi 互換にするなら true)
　・EnableSCC(emidi.kpi 互換にするなら true)
　・EnablePSGDrum(emidi.kpi 互換にするなら false)
　・高速シーク(シーク後に演奏がおかしくなるなら false)
・emu2149.c(PSG 音源部) と emu2212.c(SCC 音源部)と emu2413.c(OPLL 音源部)を
　2016/10/22 版に差し替え
　・emidi.kpi と比べて音質が変わった直接の原因ではない
　　(差し替えなくても emidi.kpi と音が違う)
　・emu2149.c は PSGDrum 有効時に使用されるが、emidi.kpi では使用されていな
　　かった
・64bit float で出力するようにした
　・emidi.kpi と比べて音質が変わった直接の原因ではない
　　(16bit のままでも emidi.kpi と音が違う)
・マルチプルインスタンス対応として通知することにした
　・厳密にはまずいが再生周波数が異なるものを同時再生しなければ問題ないので
・64bit 版を作成

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