新着表示
タイトル
記事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
タイトル
記事No
投稿日
投稿者
参照先
game-music-emuプラグインのリクエスト
318
2024/05/12(Sun) 09:20:06
たかおか

はじめまして。

最近またプラグインを増やしていただきありがとうございます。
kbnsfplug.kpiはnsfのデフォルトプラグインにして良いと思うくらい精度も良く、特に嬉しいです。

お時間に余裕があればでいいのですが
game-music-emuのプラグイン化は可能でしょうか?
KbmediaPlayerとしては、
・AY形式の再生精度が上がる
・GBS形式の再生機能復活
あたりがリクエスト理由となります。
AYファイルはNEZplug Decoderでも再生できますが、精度が今一つで再生不可なayファイルも少なくないです。
pagetop
タイトル
記事No
投稿日
投稿者
参照先
kbsc68.kpi Version 0.04
317
2024/05/07(Tue) 01:42:01
Kobarin

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

Atari ST と Amiga の音楽形式である SC68 を再生するためのプラグインです。対応す
る拡張子は .sc68/.sndh です。

SC68/SNDH については

http://sc68.atari.org/
http://sndh.atari.org/

を参照して下さい。データは

SC68: http://sc68.atari.org/musics_all.html
SNDH: http://sndh.atari.org/download.php

ここにたくさん置いてあります。

v0.04 での変更点

・ライブラリを libsc68 (r705)(2023/11/19) に更新
pagetop
タイトル
記事No
投稿日
投稿者
参照先
kbnsfplug.kpi v0.02
316
2024/05/06(Mon) 13:38:28
Kobarin

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

演奏情報とメモリ表示に対応しました。
これで出来ることはほぼやり切った感じです。
「プリセット管理」という機能だけ意味が分からないので外してあります。
NSFplay 2.6/2.7beta でも機能していないようです。

しばらく様子をみて問題ないようなら次版以降の本体に標準同梱しようかと思います。


v0.02 での変更点

・設定画面が表示されなくなることがあるのを修正
・演奏情報とメモリの表示に対応
 ・再生中の曲データごとに表示(クロスフェード中は複数表示)
 ・演奏情報は本体の非公式の機能を使って再生位置を取得するため、先読みバッファ
  のサイズや再生バッファサイズが大きくても表示がずれない
・各設定画面の位置を保存するようにした(演奏情報とメモリ表示はサイズも保存)
 ・位置とサイズを初期値に戻すことも出来るようにした


kbnsfplug.txt より

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

【概要】

NSFplug ベースの NSF 再生プラグインです。対応拡張子は nsf です。

オリジナルの NSFplug(in_nsf.kpi)(2006/05/05版) を 64bit 版の本体から使うと、ロ
ード時にエラーダイアログが表示されたりフリーズして正常動作しませんでしたが、本
体側での対応は困難でしたので、プラグインを修正する形で対応することにしました。

ベースにしたのは Brad Smith 氏による NSFPlay v2.7 beta となります。

https://rainwarrior.ca/

オリジナルよりも新しく、現在でも更新が続いている為こちらをベースにさせて頂きま
した。オリジナルは

https://github.com/digital-sound-antiques

にあります。(2006/05/05版より新しいがソースコードのみ)

【使い方】

本体に標準同梱の kbnezplug.kpi と対応拡張子が競合する為、Plugins フォルダに本プ
ラグインを入れただけでは使用されません。プラグイン設定で kbnezplug.kpi を無効化
するか対応拡張子から .nsf を外す必要があります。kbnezplug.kpi を無効化すると、
.nsf 以外の拡張子も再生出来なくなってしまう為、.nsf だけ無効化することをお勧め
します。

【設定】

オリジナルの in_nsf.kpi では本体のメインメニューに「NSF」という項目を追加してい
ました(64bit版の本体から使用出来ない原因)が、本プラグインではプラグイン設定から
行います。オリジナルでこのメニューから出来ていたことの全てに対応している訳では
ありません。KbMedia Player の独自規格である TAG ファイルの読み書きに関する設定
を廃止しているなどです。

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

【更新履歴】

Version 0.02(2024/05/06)

・設定画面が表示されなくなることがあるのを修正
・演奏情報とメモリの表示に対応
 ・再生中の曲データごとに表示(クロスフェード中は複数表示)
 ・演奏情報は本体の非公式の機能を使って再生位置を取得するため、先読みバッファ
  のサイズや再生バッファサイズが大きくても表示がずれない
・各設定画面の位置を保存するようにした(演奏情報とメモリ表示はサイズも保存)
 ・位置とサイズを初期値に戻すことも出来るようにした

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

Version 0.01(2024/05/05)

・初版
・ベースは Brad Smith 氏による NSFPlay v2.7 beta(2024/04/14)
 ・オリジナルの in_nsf.kpi(2006/05/05)より新しい
・オリジナルの in_nsf.kpi で本体のメインメニューの「NSF」から出来ていた設定画面
 をプラグイン設定から表示出来るようにした
pagetop
タイトル
記事No
投稿日
投稿者
参照先
kbnsfplug.kpi v0.01
315
2024/05/05(Sun) 01:34:52
Kobarin

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

v3.0 になって 64bit 版の本体では動作しなかった NSFplug に対応出来ました。
本体側での対応はほぼ不可能で、プラグインの方の修正となります。

いつかはやりたいと思いながらも大変そうだったので後回しにしていましたが、やって
みるとやっぱり大変でした。

再生するだけなら大したことはないのですが、設定ダイアログを安定して表示させるのに
この上なく苦労しました。

苦労したのは MFC というライブラリに癖があり過ぎるのが一番の原因です。
ビルド時のリンカエラー、ダイアログ表示時の謎のエラー、全て MFC が原因。

苦労はしましたがとても良い感じになりました。
本体に標準同梱させても良いかもしれません。


kbnsfplug.txt より

-------------------------------------------------------------------------------
【 名 称 】 NSFplug Decoder
【ファイル名】 kbnsfplug.kpi
【バージョン】 0.01
【対応拡張子】 nsf
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/05/05
-------------------------------------------------------------------------------

【概要】

NSFplug ベースの NSF 再生プラグインです。対応拡張子は nsf です。

オリジナルの NSFplug(in_nsf.kpi)(2006/05/05版) を 64bit 版の本体から使うと、ロ
ード時にエラーダイアログが表示されたりフリーズして正常動作しませんでしたが、本
体側での対応は困難でしたので、プラグインを修正する形で対応することにしました。

ベースにしたのは Brad Smith 氏による NSFPlay v2.7 beta となります。

https://rainwarrior.ca/

オリジナルよりも新しく、現在でも更新が続いている為こちらをベースにさせて頂きま
した。オリジナルは

https://github.com/digital-sound-antiques

にあります。(2006/05/05版より新しいがソースコードのみ)

【使い方】

本体に標準同梱の kbnezplug.kpi と対応拡張子が競合する為、Plugins フォルダに本プ
ラグインを入れただけでは使用されません。プラグイン設定で kbnezplug.kpi を無効化
するか対応拡張子から .nsf を外す必要があります。kbnezplug.kpi を無効化すると、
.nsf 以外の拡張子も再生出来なくなってしまう為、.nsf だけ無効化することをお勧め
します。

【設定】

オリジナルの in_nsf.kpi では本体のメインメニューに「NSF」という項目を追加してい
ました(64bit版の本体から使用出来ない原因)が、本プラグインではプラグイン設定から
行います。オリジナルでこのメニューから出来ていたことの全てに対応している訳では
ありません。KbMedia Player の独自規格である TAG ファイルの読み書きに関する設定
を廃止しているなどです。

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

【更新履歴】

Version 0.01(2024/05/05)

・初版
・ベースは Brad Smith 氏による NSFPlay v2.7 beta(2024/04/14)
 ・オリジナルの in_nsf.kpi(2006/05/05)より新しい
・オリジナルの in_nsf.kpi で本体のメインメニューの「NSF」から出来ていた設定画面
 をプラグイン設定から表示出来るようにした
pagetop
タイトル
記事No
投稿日
投稿者
参照先
kbfmp7.kpi v0.02
314
2024/04/30(Tue) 00:35:06
Kobarin

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

FMP7 SDK をそのまま使うと64bit版が動作しなかったので v0.01 は32bit版のみの配布
でしたが、64bit版のプラグインも動作するようになりました。

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

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

v0.02 での変更点

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


kbfmp7.txt より

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

【概要】

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.02(2024/04/30)

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

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

Version 0.01(2024/04/27)

・初版
pagetop
タイトル
記事No
投稿日
投稿者
参照先
KbMedia Player Version 3.13.2024.0430(正式版)
313
2024/04/29(Mon) 23:34:25
Kobarin

https://kobarin.sakura.ne.jp/kbmedia/kbmed313.exe (Vista 以降版)
https://kobarin.sakura.ne.jp/kbmedia/kbmed313.7z (Vista 以降版)
https://kobarin.sakura.ne.jp/kbmedia/kbmed313_xp_x86.exe (XP 対応版)(32bit 版のみ)
https://kobarin.sakura.ne.jp/kbmedia/kbmed313_xp_x86.7z (XP 対応版)(32bit 版のみ)

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 の両方が必要です)

Windows XP で使用したい場合は XP 対応版をダウンロードして下さい。
XP 対応版は 32bit版のみです。64bit版の本体が XP で動作しない為です。
XP で使用する場合、ランタイムは

VS2017 のランタイム
https://aka.ms/vs/15/release/VC_redist.x64.exe (x64)(XP対応版は 64bit 版を含まないので実際は不要)
https://aka.ms/vs/15/release/VC_redist.x86.exe (x86)

または

https://visualstudio.microsoft.com/ja/vs/older-downloads/

で VS2019 16.7 のランタイムを入れて下さい。16.7 より新しいものだと動作しません。


v3.13beta3 からの変更点

・本体の開発環境を更新(RAD Studio 12.1 Patch 1 を適用)
・kbpsf2.kpi に関する以下の修正
 ・boost ライブラリを 1.85.0.0 に更新


v3.12(1つ前の正式版)からの主な変更点

・本体と各種プラグイン/DLL の開発環境を最新に更新
・各種プラグイン/DLL のライブラリを最新に更新
・kbGuru2SMF.kpi で複数ポート使う MIDI データに対応
・kbwsr.kpi でエミュレーションコアを選択出来るようになった
・その他不具合修正・改善


そろそろやることがなくなって来ました。
次はプラグイン置き場のプラグインの更新ですかね。
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: kbfmp7.kpi v0.01
311
2024/04/28(Sun) 02:00:54
Kobarin

kbfmp7.kpi の 64bit 版は KbMedia Player 本体のリンカオプションで
「高エントロピー64ビットアドレス空間のランダム化(ASLR)のサポート」
を false にすると動作しますが true だと動作しませんでした。

なので kbfmp7.kpi は 32bit 版のみの配布としていましたが、本体のリンカオプション
を変えずに解決することが出来ました。

回りくどい処理が必要で、効率面で少し心配ですがうまく行ったので良しとしますか。

あとは複数の曲データを同時に扱えない件をどうするか。

kbfpd.kpi とか kbgxscc.kpi とかでやっている API 乗っ取り方式でも試してみるかな。
CreateMutexW, CreateFileMappingW, RegisterClassW あたりを乗っ取れば FMP7.exe を
多重起動出来たり、グローバルワーク(共有メモリ)を曲データごとに区別出来そうな気が
します。

ウイルス対策ソフトに怒られる確率が高くなりますけど。
pagetop

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