新着表示
タイトル
記事No
投稿日
投稿者
参照先
kbgxscc.kpi v0.14α
328
2024/05/26(Sun) 12:43:18
Kobarin

https://kobarin.sakura.ne.jp/kpi/kbgxscc_014alpha.7z

kbgxscc.txt より

-------------------------------------------------------------------------------
【 名 称 】 GXSCC MIDI Decoder
【ファイル名】 kbgxscc.kpi
【バージョン】 0.14alpha
【対応拡張子】 mid
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/05/26
-------------------------------------------------------------------------------
【概要】

GASHISOFTさん制作の GXSCC β236/β773 を使用して MIDI を再生するためのデコーダ
プラグイン再生プラグインです。対応拡張子は .mid です。

【導入方法】

このプラグインを使用するには、GXSCC β236 または GXSCC β773 が必要です。
GXSCC β773 は 2019年3月現在、公式サイトでは配布されていないようです。
持っていない方は残念ですが諦めて下さい。
GXSCC の公式サイトは以下となります。

https://gashisoft.web.fc2.com/

2019年3月現在、公式サイトがリニューアルされたばかりで、GXSCC β236 は英語版しか
入手できないようです。英語版は

https://gashisoft.web.fc2.com/E/

こちらで入手出来ます。英語が苦手な方でも、kbgxscc.kpi から使用する分には何の支
障もない筈です。

GXSCC β236 は、以前は β223 に差分パッチを当てる形で配布されていました。

kbgxscc.kpi では、英語版のβ236 と、β223 に差分パッチを当てた日本語版のどちら
でも動作することを確認しています。β773 はタイムスタンプが 2007/02/14 23:21 の
もので動作確認しています。

β236 とβ773 以外のバージョンでは動作しません。

kbgxscc.kpi では動作確認済みの実行ファイルのハッシュ値と一致しない場合には警告
ダイアログを出します。確認済みでない GXSCC を使用した場合の結果は自己責任でお
願いします。

ダウンロードしたら、「ツール」->「プラグイン設定」で kbgxscc.kpi を選択し、
「General」セクションの「GXSCC のパス」で GXSCC.exe のパスを設定して下さい。

【使用上の注意】

このプラグインは極めて特殊です。GXSCC は必ず動作確認に用いたのと「全く同じ」バ
ージョンをお使い下さい。動作確認した GXSCC のバージョンは β236 と β773 です。
β236 と β773 以外のバージョンでは動作しないと思って下さい。

【設定】

GXSCC をインストールしたら、プラグイン設定で GXSCC.exe のパスを設定して下さい。
各種設定については設定画面がヘルプを兼ねてますので参照して下さい。

GXSCC の設定は GXSCCPreferences.bin というファイルに保存されますが、kbgxscc.kpi
ではこのファイルの内容は無視されます。

【その他】

このプラグインは動作原理上、永久にα版です。自己責任で使用して下さい。


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

更新履歴

Version 0.14α(2024/05/26)

・WindowsXP で動作しないのを修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為

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

Version 0.13α(2019/04/07)

・マスターボリュームに関する以下の修正
 ・SCC モードで XG のマスターボリュームに対応(SCC モードでは GS と GM は受信
  するが XG は受信しない)
 ・OPLL モードで GM/GS/XG のマスターボリュームに対応(OPLL モードでは GS/GM/XG
  のマスターボリュームを受信しない)
 ・どちらも GXSCC から取得した PCM を加工する方式で対応
  (SCC モードの GM/GS のマスターボリュームは除く)
・マルチポートMIDIを分割再生時、リセット系とマスターボリューム系の SysEx は全
 ポートに送信するようにした
・リセットを含まない場合の処理を以下のようにした
 ・GS 系 SysEx を使う場合は冒頭で SYSTEM MODE SET を送信
  (GXSCC は SYSTEM MODE SET を受信する)
 ・XG 系 SysEx を使う場合は冒頭で GM SYSTEM ON を送信
  (GXSCC は XG SYSTEM ON を受信しない)
 ・それ以外の場合は冒頭で GM SYSTEM ON を送信
 ・必要ないかもしれないが念の為

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

Version 0.12α(2019/03/25)

・選択可能な周波数に誤りがあったのを修正(176000Hz->176400Hz)
・設定項目の順番を修正(SCC/OPLL モードを音色セットの手前に移動)

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

Version 0.11α(2019/03/23)

・β236とβ773のパスを別々に設定し、どちらを使用するかを選択する方式に変更
 ・パスを設定し直す手間が省けて切り替えが容易になった
 ・v0.10αのパスに関する設定は無視されるので設定し直す必要がある
・ファイルオープン時のシステムの負荷のかかり具合等、タイミングにより正常に再生
 出来ないことがあるのを修正
・β773 の DirectSound 処理をフックするようにした
 ・一瞬でも DirectSound デバイスを開いて再生してしまうのを回避
・β236 の waveOut 処理のフックの仕方を修正
・GXSCC の終了のさせ方が乱暴だったのを修正
 ・なるべくメインウィンドウを「閉じる」ことで終了させるようにした
 ・終了時に GXSCC 内部のクリーンアップ処理が呼ばれるようになった

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

Version 0.10α(2019/03/22)

・新kpi仕様に対応
・GXSCC β773 に対応
・OPLL モード(GXSCC の左上ロゴダブルクリックで発動する隠しモード)に対応
・オーディオデバイス出力(waveOut)ではなくオーサリング時の WAV 出力(mmio)の乗っ
 取り方式に変更
 ・バッファアンダーランを完全回避
 ・シーク速度が大幅に高速化
 ・kbwavefile.kpi による WAV ファイルデコードでも確実に正しいデータを出力出来
  るようになった
 ・Debug モードの「Decode Speed」を廃止(必要がなくなった)
・下記設定項目を追加
 ・GXSCC のパス
  ・ハッシュ値(MD5)が確認済の値と一致しない場合は警告ダイアログを出す
  ・確認済みバイナリはβ223->β236への差分パッチを当てた日本語版とβ236英語
   版及びβ773
 ・GXSCC のバージョン
  ・「GXSCC のパス」で設定した GXSCC.exe のハッシュ値が kbgxscc.kpi で確認済
   みの値と異なる場合でも使用したい場合に設定する
 ・再生周波数
 ・音色セット(SCC like Full-Set, Famicom like Set etc...)
 ・AutoDetune
 ・ローパスフィルタ
 ・カットオフ周波数
 ・SCC/OPLL モード(OPLL モード時は音色セットは無視される)
 ・複数ポート使用MIDIの処理方法
  ・複数のMIDIファイルに分割して複数の GXSCC を起動
  ・分割しないで GXSCC を単独起動(従来の処理)
  ・自動判別(SCC モードのときは3ポート以上のときだけ分割、OPLLモードのとき
   はポート数によらず分割)
 ・GXSCC を表示
  ・v0.09α以前の Debug Mode に相当
  ・表示されるウィンドウをマウスで動かせるようになった
  ・「オーサリング中」と表示されるが WAV ファイルが生成されることはない
  ・うまく動作しないときの確認用。通常はオフにする
 ・GXSCC のフォルダを開く
  ・添付ドキュメントの参照用
・GXSCC から応答がない場合はダイアログを表示して強制終了させるか確認するように
 した
・64bit版を作成

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

Version 0.09α(2012/10/18)

・本体からの再生周波数要求を無視していたのを修正

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

Version 0.08α(2012/10/06)

・バッファアンダーラン対策を修正(冒頭で発生する確率が減少?)

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

Version 0.07α(2012/09/30)

・SMF Format 0 以外で曲長計算が正しく機能しなくなっていたのを修正(変なところで
演奏終了してしまう)
・KbMedia Player 本体から呼ばれる分には問題なし(常に Format 0 が渡されるので)
・設定項目「Debug Mode」を追加
・GXSCC のウィンドウ表示・非表示切替
・バッファアンダーランの発生確認用
・DecodeSpeed の調整用
・設定項目「Decode Speed」を追加
・バッファアンダーラン対策
・値が大きい程シークが高速になるが、バッファアンダーランが起こりやすくなる
・値が小さい程バッファアンダーランが起こりにくくなるが、シークが低速になる
・十分に高速な PC なら 10 倍速までは問題ないはず

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

Version 0.06α(2012/09/29)

・「Instrument Set」「Auto Detune」「Use Low-pass Filter」「Cut-off Frequency」
を GXSCC 本体とは独立して設定出来るようにした
・設定の保存場所は kbgxscc.ini の[プラグインファイル名] セクション
(kbgxscc_famicom.kpi なら [kbgxscc_famicom.kpi] セクション)
・kbgxscc.kpi のコピー・リネームによって、設定ごとに異なる MIDI デバイスとし
て扱えるようになる
・シーク時にバッファアンダーランが発生して音が途切れる現象が改善(完璧ではない)
・曲長計算を簡易的な処理にして高速化
・Windows9x で動作していたかもしれないのを、絶対に動作しないように修正

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

Version 0.05α(2012/09/23)

・Windows7 で動作しなかったのを修正
・Windows9x での動作を打ち切った(動作確認出来る環境を構築出来れば検討)
・シークが高速化(PC の処理速度とは無関係な時間を要するので多分これが限界)

Version 0.04α(2005/03/05)

・演奏する度にアクティブなウィンドウのフォーカスが失われるのを修正
・GXSCC.EXE の終了のさせ方が少し強引だったのを修正

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

Version 0.03α(2005/03/02)

・演奏終了直前に Render が不正な値を返すのを修正

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

Version 0.02α(2005/03/01)

・GXSCC.EXE がバッファアンダーランを起こして音が途切れやすかったのを修正
・曲の最後の部分がきちんと再生されないことがあるのを修正

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

Version 0.01α(2005/02/28)

・初版
pagetop
タイトル
記事No
投稿日
投稿者
参照先
kbeup.kpi v0.02α
327
2024/05/26(Sun) 12:40:29
Kobarin

https://kobarin.sakura.ne.jp/kpi/kbeup_002alpha.7z

kbeup.txt より

-------------------------------------------------------------------------------
【 名 称 】 EUPHONY Decoder
【ファイル名】 kbeup.kpi
【バージョン】 0.02alpha
【対応拡張子】 eup
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/05/26
-------------------------------------------------------------------------------

【概要】

仙さん制作の EUP player for MSW Version 0.08f(eupwin.exe) を使用して FM Towns
の音楽形式である EUPHONY を再生するためのデコーダプラグインです。
対応拡張子は .eup です。

再生出来るのは内蔵音源を使用するデータのみです。MIDI を使うデータは再生出来ませ
ん。

【導入方法】

配布アーカイブファイル名が kbeup_xxx.7z なら展開後 kbeup_xxx という名前のフォル
ダが生成されている筈です。このフォルダをそのまま本体の Plugins フォルダにコピー
して下さい。コピーするフォルダは

32bit OS の場合は x86\Plugins 以下
64bit OS の場合は x64\Plugins 以下と x86\Plugins 以下のどちらでも OK

です。例えば kbeup_001 というフォルダが生成されているなら

x64\Plugins\kbeup_001

となるようにコピーします。階層を深くし過ぎるとプラグインが認識されなくなるので
注意して下さい。


このプラグインを使用するには、eupwin v0.08f が必要です。eupwin の公式サイトは
既に消滅していますが、Internet Archive で入手することが出来ます。

http://web.archive.org/web/20100429002724/http://kobe.cool.ne.jp/fmt/eupwin/eupwin.htm

KbMedia Player 用 EUP プラグイン「kbmeup.kpi」もここで入手可能ですが、動作が不
安定で KbMedia Player を巻き込んで強制終了することが多い為、kbmeup.kpi を直接使
うことはお勧めしません。(64bit 版の本体から使えば巻き込まれずに済みますが)

【設定】

プラグイン設定画面がヘルプを兼ねていますので参照して下さい。

eupwin.exe だけだと曲長を取得することが出来ませんが、kbmeup.kpi もインストール
し、kbmeup.kpi のパスを設定することで、曲長を取得することが出来るようになりま
す。kbmeup.kpi の置き場所は任意です。本体からプラグインとして認識されるような
場所に置く必要はありません。

なお、kbmeup.kpi を本体からプラグインとして認識される場所に置いた場合、本プラグ
インより kbmeup.kpi の方が使用優先度が高くなるのでご注意下さい。(本プラグインを
使用するには kbmeup.kpi を無効化する必要があります)

eupwin は EUP を再生時に(eupwin.exe のカレントディレクトリにある)リズム音源の
WAVE データを読みに行くようです。eupwin 同梱のテキストには記載されていませんが
本プラグインの開発中に気づきました。

なので、リズム音源のパスも設定出来る様にしました。

・2608_BD.WAV
・2608_HH.WAV
・2608_RIM.WAV
・2608_SD.WAV
・2608_TOM.WAV
・2608_TOP.WAV

FMP/PMD とか S98 でお馴染みですね。

ただ、耳が悪いのかデータが悪いのか、リズム音源の WAV を設定することによる再生音
質の違いが分かりませんでした。


【kbmeup.kpi との違い】

kbmeup.kpi をプラグインフォルダに入れて使うのと比べた場合の違いは以下のように
なります。

メリット

・リズム音源、FMB/PMB のパスを設定可能
・再生周波数を設定可能
 ・kbmeup.kpi は 44100 Hz 固定だが kbeup.kpi だと 48000 Hzまで指定可能
・一次補間の有無を指定可能
・プラグインが不安定でも本体を巻き込まない
・32bit 版の本体からだとファイルを開く度に曲長が変化する不具合が発生しない
・アーカイブ内の EUP ファイル(FMB/PMB を使うもの)もきちんと対応
 (本体が対処してるので kbmeup.kpi でも実害はないが)

デメリット

・シークが低速(昨今の PC では問題にならないレベル)
・ファイルオープンがかなり低速(同上)

【eupwin.exe との違い】

eupwin.exe を直接使用する場合との違いは以下のようになります。

・FMB/PMB のパスを設定時、サブフォルダも階層制限なしに検索する
・EUP ファイルや FMB/PMB ファイルの置き場所(フォルダ名)が Unicode でしか表現
 出来ない名前でも動作する

【使用上の注意】

本プラグインは動作原理が極めて特殊です。eupwin.exe は必ず動作確認に用いたのと
「全く同じ」バージョンをお使い下さい。動作確認した eupwin のバージョンは 0.08f
です。

プラグイン設定時に eupwin.exe のハッシュ値をチェックし、動作確認したのと異なる
ものであった場合には警告を出すようになっています。

警告を無視して動作確認したのと異なるバージョンを使うことも出来ますが、予期せぬ
結果になることがありますのでくれぐれもご注意下さい。


このプラグインは永久にα版です。自己責任で使用して下さい。

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

【更新履歴】

Version 0.02α(2024/05/26)

・WindowsXP で動作しないのを修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為

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

Version 0.01α(2021/04/22)

・初版
pagetop
タイトル
記事No
投稿日
投稿者
参照先
各種 API 乗っ取りプラグイン(α版につき取扱注意)
326
2024/05/26(Sun) 12:37:22
Kobarin

kbeup.kpi v0.02alpha:
https://kobarin.sakura.ne.jp/kpi/kbeup_002alpha.7z

kbgxscc.kpi v0.14alpha:
https://kobarin.sakura.ne.jp/kpi/kbgxscc_014alpha.7z

kbhtsfms.kpi v0.08alpha:
https://kobarin.sakura.ne.jp/kpi/kbhtsfms_008alpha.7z

kbsmaf.kpi v0.14alpha:
https://kobarin.sakura.ne.jp/kpi/kbsmaf_014alpha.7z

kbzmdrive.kpi v0.16alpha:
https://kobarin.sakura.ne.jp/kpi/kbzmdrive_016alpha.7z


Windows XP で動作しない原因が判明したので修正しました。
これらのプラグインは再生に必要な対象プログラムが使用する API を乗っ取ることで
強引に対応する方式を採用している為、ウイルス対策ソフトに誤検知されやすいものと
なっています。公開直後の段階だと特に引っかかる可能性が高くなります。

ウイルス対策ソフトの設定で検疫の対象から外すなどの対策が必要になるかもしれません
のでご注意下さい。


kbsmaf.kpi は v3.14beta3 の本体から使用されると落ちる場合があるので使用している
方は更新した方が良いです。

それ以外は XP で使わないなら更新しなくても良いかもしれませんが開発環境が新しい
ので少し高速化してるかもしれません。

kbsmaf.kpi は mrgplay.exe が XP で動作しないので XP 対応版を使って下さい。
プラグインは認識されますが mrgplay.exe が起動出来ないです。

他のプラグインは XP でも動作するようですが、一応 XP 対応版を同梱しています。
必要に応じてお使い下さい。XP 対応版は 32bit 版のみとなります。


kbeup.kpi v0.02alpha での修正

・WindowsXP で動作しないのを修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為

kbgxscc.kpi v0.14alpha での修正

・WindowsXP で動作しないのを修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為

kbhtsfms.kpi v0.08alpha での修正

・WindowsXP で動作しないのを修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為

kbzmdrive.kpi v0.16alpha での修正

・WindowsXP で動作しないのを修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為

kbsmaf.kpi v0.14alpha での修正
 ・PROCESS_ALL_ACCESS フラグが大きすぎて OpenProcess に失敗していた為
 ・MidRadio Player のパスを設定時、XP 版の MidRadio.exe を指定した場合にハッシュ
  値の警告を出していたのを修正
 ・XP 32bit 環境で MidRadio Player のパスの既定値(Program Files フォルダ)を正し
  く取得出来てなかったのを修正
 ・v3.14beta3 の本体から呼ばれると落ちることがあるのを修正
pagetop
タイトル
記事No
投稿日
投稿者
参照先
KbMedia Player Version 3.14beta3.2024.0525
325
2024/05/25(Sat) 13:11:21
Kobarin

https://kobarin.sakura.ne.jp/test/kbmed314_beta3.exe
https://kobarin.sakura.ne.jp/test/kbmed314_beta3.7z

.exe と .7z はどちらも中身は同じです。
.7z の展開の仕方が分からない方は .exe をダウンロードして下さい。

.exe だと Microsoft Edge でブロックされる方は .7z をダウンロードして下さい。
Microsoft Edge にブロックされる方は安全だと報告してくれると助かります。

起動時にエラーメッセージが表示されてプラグインが認識されない場合は
Microsoft Visual C++ 2022 再頒布可能パッケージが必要です。
https://visualstudio.microsoft.com/ja/downloads/#other-ja-family
x64 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x64.exe
x86 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x86.exe
(x64 版の動作には vc_redist.x64.exe と vc_redist.x86.exe の両方が必要です)

VS2019 のランタイムでも動作はするようですが、念のため VS2022 のランタイムを
入れて下さい。

β版は Windows XP のサポートを打ち切りました。XP 環境だと一部のプラグインが
動作しません。Windows XP で使いたい方は正式版をお使い下さい。


v3.14beta3 での変更点

・各種プラグイン/DLL の開発環境を VS2022 17.10.0 に更新
・デコーダプラグインで MIDI を再生時のギャップレス再生に対応
・クロスフェードが終わらないうちに次の曲をクロスフェードすることが出来るように
 なった(今までは先に開いていた曲のフェードアウトが停止していた)
 ・同時に再生出来るのは最大4個まで
 ・メドレー再生時にフェード時間より短い曲を再生しても途切れなくなった
  (4回連続で短い曲が選曲された場合は除く)
・以下の演奏プラグインで再生中にクロスフェードしようとした場合は直ちに演奏を停
 止してから次曲を再生するようにした
 ・kbdmusic.kpi/kbviv.kpi/kbfmp7.kpi(音量制御に対応しないプラグイン)
 ・本体がプラグインのファイル名だけを見て判断(演奏プラグインの仕様で音量制御対
  応の有無を確認する手段がない為)
 ・他の音量制御に対応するプラグインから上記の演奏プラグインに切り替えたときは
  フェードインはしないが同時には再生される
・アーカイブ内の MIDI を再生時、必要がなくても実ファイルを作成していたのを修正
・アーカイブ内の曲データの再生時、ドキュメント表示の為にアーカイブを2回開いて
 いたのを修正(↓とは別件でアーカイブ内の曲データを開く処理が高速化)
・アーカイブ内の曲データから同じアーカイブ内の別の曲への切り替えが大幅に高速化
 ・既に開いているアーカイブを再利用することによる
・CC111 に対応しない MIDI 対応演奏プラグインに SMF を渡すとき、フェードアウトを
 エクスプレッションではなくチャンネルボリュームで処理するように変更
・MIDI系(MLD/MUS/ZMS/ZMD)の SMF への変換に失敗したときのメモリリークを修正


VS2022 17.10.0 になってランタイムのバージョンが上がったようですので気になる方は
ランタイムを入れ直して下さい。

インストールされているランタイムのバージョンは本体のバージョン情報ダイアログで
確認することが出来ます。

14.40.38810.0

であれば 2024/05/25 現在での最新版だと思います。

久しぶりに本体の様々な箇所に手を入れました。
デコーダプラグインで MIDI を再生時のギャップレス再生はとても大変でした。
広範囲に渡っての修正が必要でしたが、おかげで細かい不具合を見つけることが出来ま
した。逆に今回の修正によって別の不具合が発生してる可能性もあります。

クロスフェード中のクロスフェード対応はメドレー再生時の途中で短い曲が選曲された
ときに効果を発揮します。同時再生の個数制限をなくすと、フェード時間より曲長が短
い曲しかないプレイリストでのメドレー再生時に無限にプレイヤーのインスタンスを作
ることになるので上限を4個としました。

kbfmp7.kpi 使用時のクロスフェードは kbfmp7.kpi v0.03 での修正でもうまく行かない
(一時停止状態で再生が止まってしまうことがある)ので、音量制御に対応しないプラグ
インからのクロスフェード時は演奏を停止させてから次の曲を再生することにしました。

音量制御対応のプラグインから非対応のプラグインへのクロスフェードはフェードイン
しないだけで同時再生はされるようにしました。


要望があった game-music-emu のプラグインはこれから手を付けようと思います。
pagetop
タイトル
記事No
投稿日
投稿者
参照先
KbMedia Player Version 3.14beta2.2024.0518
324
2024/05/18(Sat) 12:07:57
Kobarin

https://kobarin.sakura.ne.jp/test/kbmed314_beta2.exe
https://kobarin.sakura.ne.jp/test/kbmed314_beta2.7z

.exe と .7z はどちらも中身は同じです。
.7z の展開の仕方が分からない方は .exe をダウンロードして下さい。

.exe だと Microsoft Edge でブロックされる方は .7z をダウンロードして下さい。
Microsoft Edge にブロックされる方は安全だと報告してくれると助かります。

起動時にエラーメッセージが表示されてプラグインが認識されない場合は
Microsoft Visual C++ 2022 再頒布可能パッケージが必要です。
https://visualstudio.microsoft.com/ja/downloads/#other-ja-family
x64 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x64.exe
x86 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x86.exe
(x64 版の動作には vc_redist.x64.exe と vc_redist.x86.exe の両方が必要です)

VS2019 のランタイムでも動作はするようですが、念のため VS2022 のランタイムを
入れて下さい。

β版は Windows XP のサポートを打ち切りました。XP 環境だと一部のプラグインが
動作しません。Windows XP で使いたい方は正式版をお使い下さい。


v3.14beta2 での変更点

・各種プラグイン/DLL の開発環境を VS2022 17.9.7 に更新
・演奏プラグイン使用時のフェードアウト、クロスフェード、メドレー再生に対応
 ・本体がプラグインに対して定期的に SetVolume を呼ぶことによる対応
 ・以下の演奏プラグインに対応(音量制御が可能なもの)
  kbGuru2SMF.kpi/kbmov.kpi/kbqt.kpi/kbcstr.kpi
 ・以下の演奏プラグインは非対応(音量制御出来ない為)
  kbdmusic.kpi/kbviv.kpi/kbfmp7.kpi(kbfmp7.kpi はプラグイン置き場)
 ・非対応のプラグインでフェードアウトしようとした場合はフェードアウトしないで
  フェーアウト時間+1秒後に演奏終了(直ちには演奏終了しない)
 ・非対応のプラグインでクロスフェードしようとした場合はフェードイン/フェードア
  ウトしないでフェードアウト時間+1秒間同時再生(kbfmp7.kpi を除く)
 ・kbfmp7.kpi(v0.02以前) でクロスフェードしようとすると再生が停止
  kbfmp7.kpi(v0.03) では先に再生していた方だけが停止
 ・SetVolume が反映されるまでかかる時間がプラグインにより異なる為、プラグイン
  によってはフェードアウトが最後まで処理される前に演奏が打ち切られる
  ・対策として SetVolume(0) を呼び出し後、1秒待ってから Stop
  ・その副作用として SetVolume に対応しないプラグインではフェード時間の設定よ
   り1秒余分に再生されてから演奏終了
・Ctrl を押しながら再生ボタンを押した場合はフェードインするようにした
・kbdsound.kpi 使用時に一時停止・再開するとフリーズすることがあるのを修正
 ・Output を一度も呼んでいない状態で Pause/Restart を呼んだ場合
 ・kbdsound.kpi ではなく本体の不具合として扱う(kbdsound.kpi を修正しない)
・kbmac.kpi に関する以下の修正
 ・Monkey's Audio SDK 10.73(2024/05/14) に更新(内容は変更なし)
・kbmod.kpi に関する以下の修正
 ・libopenmpt を 0.7.7(2024/05/12) に更新
・kbunarc.kpi に関する以下の修正
 ・unrarsrc を 7.0.9(2024/05/12) に更新(内容は変更なし)
 ・LZMA SDK を 24.05(2024/05/14) に更新


GuruGuruSMF でMIDIのメドレー再生がしたくて演奏プラグインでのクロスフェードに対応しました。
現在の本体の仕様では同時に再生出来るのが2個までなので、短い曲が間に入るとうまく繋がら
なくなる欠点があります。これは kbGuru2SMF.kpi に限った制限ではありません。

音量制御が出来ないプラグイン同士でクロスフェードしようとするとフェードイン/フェード
アウトされずにフェードアウト時間+1秒間同時に再生されてしまいます。

演奏プラグインの仕様で音量制御の可否をプラグインから取得する手段がないのと、これはこれで
良いかな、とも思った為、このような仕様としました。
pagetop
タイトル
記事No
投稿日
投稿者
参照先
kbfmp7.kpi v0.03
323
2024/05/18(Sat) 12:05:22
Kobarin

https://kobarin.sakura.ne.jp/kpi/kbfmp7_003.7z

FMP7 の起動時に一瞬だけ音が鳴る場合は FMP7 の設定画面を開いて「ドライバ」タブを
選択、「起動ジングル演奏」のチェックを外して下さい。

FMP7 を再生中に他の曲データの情報を取得すると演奏が止まるのは仕様です。
FMP7 の API 呼び出しをフックすることで対処出来そうですが v0.03 ではやめて
おきました。

せめて音量制御が出来ればクロスフェードにも対応出来てやる気が出るのですが…。
音量制御も強引にやることも出来なくはないと思いますが。

そんな強引な方法を使わなくとも、作者様に複数曲対応と音量制御の要望をしたいところ
ですが連絡する方法が分かりません。

v0.03 での変更点

・別のインスタンスが再生中に Stop が呼ばれた場合は何もしないようにした
 ・v3.14beta2 以降の本体によりクロスフェードされようとしているとき、後に開いた
  方の再生が止まってしまうのを回避


kbfmp7.txt より

-------------------------------------------------------------------------------
【 名 称 】 FMP7 Player
【ファイル名】 kbfmp7.kpi
【バージョン】 0.03
【対応拡張子】 owi
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/05/18
-------------------------------------------------------------------------------

【概要】

Guu さん制作の FM/SSG/PCM音源 音楽ドライバ FMP7 を用いて FMP7 形式の曲データを
再生するための演奏プラグインです。対応拡張子は owi です。

FMP7 の曲データは

http://archive.fmp.jp/

にあります。

【FMP7.exe】

本プラグインを使用するためには FMP7.exe が必要です。
動作確認したバージョンは v7.10g です。

http://archive.fmp.jp/archives/category/program

で FMP ver7.10g をダウンロードし、kbfmp7.kpi のプラグイン設定で FMP7.exe のパス
を設定して下さい。

【既知の不具合】

・再生中に他の FMP7 データの情報を取得すると再生が停止する

再生中に Media エクスプローラで FMP7 データのタイトルを表示したり演奏リスト上で
曲長計算したときなどに停止します。

FMP7.exe の仕様上、再生中とは異なる曲データの情報を取得しようとすると曲データの
再生が停止します。停止させない為には、再生中は他の曲データの情報を取得しないよ
うにするしかありませんが、検討の結果、再生を停止させることにしました。

情報を取得中は一時停止を通知し、取得が終わったら再開するようになっています。

・曲の長さとシーク後の再生位置が不正確

FMP32_GLOBALWORK::Count の値とミリ秒単位の位置の関係性が不明です。この値を 10倍
した値をミリ秒単位の曲長としていますが、実際は違うようです。
同じ理由でシーク後の再生位置も不正確です。

シークについては FMP7.exe の振る舞いも少し変です。(シークバーの位置より手前に
シークされることがある)

【アーカイブ内の曲データの制限】

曲データによっては pwi ファイルが必要になる場合があります。必要な pwi ファイル
名の取得方法が不明な為、再生する owi ファイルと同じフォルダの pwi ファイルを検
索し、最初に見つかった 10 個まで実ファイルを作成します。

アーカイブ内の同一フォルダに多数の曲データと pwi ファイルが置いてあると、必要な
pwi ファイルを認識出来なくなり、ファイルオープンに失敗して再生することが出来な
くなります。不要な pwi ファイルを何個も展開して実ファイルを作成することにもなる
為、ファイルを開くのにも余分な時間がかかります。

同一アーカイブ内に複数の owi/pwi が含まれていても、フォルダが異なっていれば問題
ありません。

foo.zip>bar/aaa.owi
foo.zip>bar/bbb.pwi
foo.zip>baz/ccc.owi
foo.zip>baz/ddd.pwi

この場合、bar/aaa.owi と baz/ccc.owi は異なるフォルダとなりますので、
bar/aaa.owi を再生時に baz/ddd.pwi が実ファイルに展開されることはありません。

【更新履歴】

Version 0.03(2024/05/18)

・別のインスタンスが再生中に Stop が呼ばれた場合は何もしないようにした
 ・v3.14beta2 以降の本体によりクロスフェードされようとしているとき、後に開いた
  方の再生が止まってしまうのを回避

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

Version 0.02(2024/04/30)

・64bit版のプラグインが動作するようになった
 ・FMP7API::Send が動作しなかったのが解決
・FMP7 の終了に関する設定を追加
 ・プラグインアンロード時に終了、曲を閉じる都度終了、終了しない

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

Version 0.01(2024/04/27)

・初版
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^3: game-music-emuプラグインのリクエスト
322
2024/05/17(Fri) 20:23:31
Kobarin

ありがとうございます。

まだ何も手を付けていませんが v3.14beta2 公開後にやってみます。
pagetop
タイトル
記事No
投稿日
投稿者

Re^2: game-music-emuプラグインのリクエスト
321
2024/05/14(Tue) 03:29:59
たかおか
返答が遅れてすみません。

> それを使用した foobar なり winamp のプラグインもあるのでしょうかね。
>
> GUI の対応ソフトがあると設定項目がある場合に参考になるのですよね。

foobar2000用であれば現役で更新が続いています。
Game Music Emu Decoder
https://www.foobar2000.org/components/view/foo_input_gme

Winamp用は見つかりましたが、11年前に更新が止まっているアルファ版のようです。
In_GME
https://github.com/Insidious611/In_GME
pagetop
タイトル
記事No
投稿日
投稿者
参照先
KbMedia Player Version 3.14beta.2024.0513
320
2024/05/12(Sun) 22:27:58
Kobarin

https://kobarin.sakura.ne.jp/test/kbmed314_beta.exe
https://kobarin.sakura.ne.jp/test/kbmed314_beta.7z

.exe と .7z はどちらも中身は同じです。
.7z の展開の仕方が分からない方は .exe をダウンロードして下さい。

.exe だと Microsoft Edge でブロックされる方は .7z をダウンロードして下さい。
Microsoft Edge にブロックされる方は安全だと報告してくれると助かります。

起動時にエラーメッセージが表示されてプラグインが認識されない場合は
Microsoft Visual C++ 2022 再頒布可能パッケージが必要です。
https://visualstudio.microsoft.com/ja/downloads/#other-ja-family
x64 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x64.exe
x86 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x86.exe
(x64 版の動作には vc_redist.x64.exe と vc_redist.x86.exe の両方が必要です)

VS2019 のランタイムでも動作はするようですが、念のため VS2022 のランタイムを
入れて下さい。

β版は Windows XP のサポートを打ち切りました。XP 環境だと一部のプラグインが
動作しません。Windows XP で使いたい方は正式版をお使い下さい。


v3.14beta での変更点

・NSFplug ベースの NSF 再生プラグイン(kbnsfplug.kpi)(v0.02 までプラグイン置き場
 で配布)を同梱
・kbnsfplug.kpi に関する以下の修正(v0.02 => v0.10)
 ・本体に標準同梱することにした
 ・kbnezplug.kpi と拡張子(.nsf)が競合するが、NSF については本プラグインが優先
  的に使用されるようにする為、バージョン番号を kbnezplug.kpi より大きい値にし
  た
 ・NSF の再生に kbnezplug.kpi を使いたい場合は本プラグインを無効化するか本体の
  %Kbmplay% セクションで拡張子.nsfを外す(.nsfe は kbnezplug.kpi は未対応なの
  で外す必要なし)
 ・NSFe(拡張子.nsfe) に対応
 ・タグ情報の取得に対応
 ・64bit float で出力するようにした
 ・詳細設定の「FastSeek」が有効な場合は高速シークするようにした
  ・シーク先が遠いと時間がかかるので5秒以内にシーク出来るところまでとする
 ・プロパティ(NSFヘッダ情報、その他の情報)の表示に対応
  ・プロパティという名称は in_nsf.kpi に準じる
  ・メインメニュー非表示 & 曲番号の切り替え不可(NSFPlay と異なる動作)
 ・演奏情報、メモリ表示、プロパティのダイアログをキャッシュするようにした
  ・表示を有効時の曲切り替えが高速化
 ・クロスフェード時のノイズを修正(rconv.cpp::RateConverter::FastRender)
  ・INT32 t[2] が static だったのが原因
 ・演奏情報ダイアログにファイルをドラッグアンドドロップすると落ちるのを修正
  ・ドラッグアンドドロップ出来ないようにした
 ・演奏情報、メモリ表示で不正なメモリアクセスが発生することがあるのを修正
 ・演奏情報、メモリ表示を右上の×ボタンで閉じたら描画処理を止めるようにした
  ・処理時間がかかり過ぎて本体が操作不能になった場合でも、ダイアログを閉じれ
   ば操作出来るようになる筈
・ 演奏情報ダイアログの「表示設定」->「描画遅延」の設定を微調整しやすくした
  ・キーボードの←と→で操作したときの刻み幅を 50ms => 5ms に変更
 ・PageUp/PageDown キーは 250ms => 100ms
・一部のプラグインでアサーションエラーが発生することがあったかもしれないのを修
 正(リリースモード時のプリプロセッサで NDEBUG の定義し忘れ)

kbnsfplug.kpi を同梱した以外は v3.13(正式版)とほとんど同じです。

本体に同梱することにしたので、プラグイン置き場の kbnsfplug.kpi は削除しました。
プラグイン置き場で配布していた版と異なり、同梱した kbnsfplug.kpi は kbnezplug.kpi
よりも優先的に使用されます。

NSFe は曲データ自体に曲番号ごとの曲長やタイトルが入ってて便利ですね。
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: game-music-emuプラグインのリクエスト
319
2024/05/12(Sun) 13:13:50
Kobarin

> kbnsfplug.kpiはnsfのデフォルトプラグインにして良いと思うくらい精度も良く、特に嬉しいです。

手元の最新版では NSFE 形式とタグ取得、プロパティ表示にも対応してもう少し完成度が
上がっています。

次は本体同梱で配布しようと思ってるのですが本体の方でやることがなくて、3.13a に
するか 3.14beta にするか迷い中です。

いきなり正式版は流石にやめた方が良いかな。

> game-music-emuのプラグイン化は可能でしょうか?

それは知りませんでした。確認して頑張ってみます。
ざっと眺めた感じでは対応はしやすそうな印象です。何となく。

お教え頂いたサイトはライブラリのみですよね。
それを使用した foobar なり winamp のプラグインもあるのでしょうかね。

GUI の対応ソフトがあると設定項目がある場合に参考になるのですよね。
pagetop

- Web Forum v8.0 -
++ Edited by Hamel ++