HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0526
Riki音声ファイル再生用のプラグインを更新してみました9解決


Riki

リンク

2013/5/26(Sun) 13:25:01|NO.54308

こんにちは。
以前こちらの掲示板で「りゅん」と名乗り、音声プラグインの宣伝をさせていただいた者です。
(以前:http://hsp.tv/play/pforum.php?mode=pastwch&num=34836)

今回そのプラグインをリニューアルして公開しました。
よろしければお使いください。

以下のページからダウンロードできます。
http://nnmy.sakura.ne.jp/

★主な機能
 ・wav、mp3、ogg、mid 形式の音声ファイルの再生
 ・切れ目のないループ再生
 ・大きな音声データのストリーミング再生
 ・同じファイルを読み込んだ時のファイルデータの共有 ( ムダにメモリを使わないように )
 ・フェードイン、フェードアウト
 ・動的な音量、ピッチの変更
 ・再生時間の取得
 ・複数の音声の重ね合わせ再生
 ・DirectMusic Synthesizer を使った MIDI の演奏 ( リバーブ付き )
 ・MIDI データのコントロールチェンジ 111 番の位置を目印としたループ再生 ( RPGツクール仕様 )
 ・RPGツクールの BGM、BGS、ME、SE にあたる再生方法のサポート
 ・[new] 3Dサウンドの再生 (ドップラー効果付き)


★背景などを少し・・・
 このプラグインは Easy3D のような総合的なゲームライブラリを目指して
 現在開発を進めていますが、今回、開発途中で入った要望への対応のため
 音声機能のみを切り出して公開しています。
 そのためプラグインやドキュメント等に冗長な部分がありますが、ご容赦ください。


★注意点 (以前のLightAudioを使用していた方向け)
 3Dサウンド実装やAndroid等のクロスプラットフォーム対応に向けて
 根っこからバリバリ修正を入れています。
 
 「あの機能がない!」「こんなバグ前は無かった!」
 等ありましたら連絡をいただけると助かります。
 もちろんそれ以外のバグ報告も。
 
 また、今後公開予定の機能と競合しないように命令名などのインターフェイスも
 全体的に見直しています。
 例)la_load → LSound_Load
   la_play_bgm → LAudio_PlayBGM
 
 LightAudio との互換性はありませんので、以前のプログラムをそのまま使用しても
 実行することはできません。ご注意ください。



この記事に返信する


 

リンク

2013/5/26(Sun) 13:59:20|NO.54310

MIDIの再生がどんな感じかなと思って
以前のバージョンから注目していました。

Windows8とHSP3.32環境ですけど、
「LSound_Load」や「LAudio_PlayBGM」で
「#Error 1 システムエラーが発生しました」が出ました。



Riki

リンク

2013/5/26(Sun) 20:29:02|NO.54329

不具合報告ありがとうございます。Windows8 ですか…。

手元に環境がないので対応には時間がかかると思いますが、調査してみます。


また、以下のように記述することでログファイルが出力されますので、
お手数ですが時間のある時にでもメールかサポート掲示板まで送っていただけると助かります。

LConfig_SetEnableLogFile true	// LNote_InitAudio の前に記述 → ログファイル(lnlog.txt)を出力
LNote_InitAudio ...



にゃんちゃん

リンク

2013/5/27(Mon) 23:47:54|NO.54375

3Dサウンドに興味があって、DLLをダウンロードさせていただき、サンプルを実行したところ、こちらでもシステムエラーが発生しました。Audio_3DSound.hspの24行目で問題が起きているようです。
こちらはwindows7 64bit + HSP3.32です。



にゃんちゃん

リンク

2013/5/27(Mon) 23:50:19|NO.54376

たびたびすみません。ログをとってみたので、貼り付けておきます。
===============================================================
LNote Log Version 1.0b Mon May 27 23:48:58 2013
---------------------------------------------------------------
BuildConfig : Release
CharSet : MultiByte
Flags
===============================================================
0:LNote::Core::File::Manager::initialize 初期化を開始します...
2:LNote::Core::File::Manager::initialize 初期化が完了しました。
3:LNote::Core::Physics::Manager::initialize 初期化を開始します...
6:LNote::Core::Physics::Manager::initialize 初期化が完了しました。
8:LNote::Core::System::Manager::initialize 初期化を開始します...
9:LNote::Core::System::ApplicationBase::initialize 初期化を開始します...
10: UserHWND : 028604B2
11:LNote::Core::System::ApplicationBase::initialize 初期化が完了しました。
13:LNote::Core::System::Manager::initialize 初期化が完了しました。
14:LNote::Core::Audio::Manager::initialize 初期化を開始します...
15:LNote::Core::Audio::XAudio2::AudioDevice::initialize 初期化を開始します...
17:【エラー発生】
--------------------------------------------------------------------
◆ システム機能の呼び出しでエラーが発生しました

< AudioDevice::initialize >
LoadLibrary

file : XA2AudioDevice.cpp
line : 123



check

リンク

2013/5/28(Tue) 00:46:05|NO.54378

どこまでかは分からないが、大きいwavファイル(もしくはfactチャンクのある)を再生しようとすると、
LSound_SetLoopStateでシステムエラーが起こるな。
(Audio_PlaySound.hsp内で確認)
こちらもWindows 7 64bit+HSP3.32だ。

===============================================================
LNote Log Version 1.0b Tue May 28 00:29:38 2013
---------------------------------------------------------------
BuildConfig : Release
CharSet : MultiByte
Flags
===============================================================
1:LNote::Core::File::Manager::initialize 初期化を開始します...
3:LNote::Core::File::Manager::initialize 初期化が完了しました。
6:LNote::Core::Physics::Manager::initialize 初期化を開始します...
11:LNote::Core::Physics::Manager::initialize 初期化が完了しました。
14:LNote::Core::System::Manager::initialize 初期化を開始します...
16:LNote::Core::System::ApplicationBase::initialize 初期化を開始します...
19: UserHWND : 00B80474
22:LNote::Core::System::ApplicationBase::initialize 初期化が完了しました。
24:LNote::Core::System::Manager::initialize 初期化が完了しました。
27:LNote::Core::Audio::Manager::initialize 初期化を開始します...
29:LNote::Core::Audio::XAudio2::AudioDevice::initialize 初期化を開始します...
56:オーディオデバイスの情報を取得します...
59: DeviceID : {0.0.0.00000000}.{728e4fce-02bb-40e5-9d48-9f5328736fd5}
61: DisplayName : スピーカー (Realtek High Definition Audio)
64: Role : 15
66: OutputFormat ( WAVEFORMATEX )
69: フォーマットID : 65534
71: チャンネル数 : 2
74: サンプリングレート : 48000
76: データ速度(Byte/sec) : 384000
79: ブロックサイズ : 8
81: サンプルあたりのビット数 : 32
84: 拡張部分のサイズ : 22
87:LNote::Core::Audio::XAudio2::AudioDevice::initialize 初期化が完了しました。
90:LNote::Core::Audio::ResourceManager::initialize 初期化を開始します...
92:LNote::Core::Audio::ResourceManager::initialize 初期化が完了しました。
95:LNote::Core::Audio::Manager::initialize 初期化が完了しました。
7963:
-------------------------------------------------------
[ Error ]
メソッドの呼び出しが無効です。引数に不正な値が渡された可能性があります。

read file size is incorrect.
There is a possibility that the file is corrupted.

file:..\..\..\Source\Core\Audio\Core\AudioSource.cpp
line:188
func:LNote::Core::Audio::Wave::fillBufferAndReleaseStream
-------------------------------------------------------

もちろんファイルは壊れていなく、WMPで再生できる。

閑話休題...

俺としては2D描画部分、3D描画部分、音声処理部分、システム情報取得部分、等
部分ごとに分かれたライブラリの方が使い勝手がいい気がする。

2D描画の部分は欲しいけれど3D描画はいらないな、などと思っている人もいるのではなかろうか。
hspdxfixがアップデートされなくなったので、
2Dオンリーのアクションゲーム等がつくりにくくなっている気がする。
(いずれDirectX7もサポートされなくなるであろうし)



暇人

リンク

2013/5/28(Tue) 01:13:55|NO.54381

WinXPでもMIDIファイルでエラー

Audio_PlaySound.hspを実行して
LNote_1.00b_HSP\Sample\Media\ln21.mid
を再生してエラー
LSound_SetLoopStateとLSound_Playで#Error 1がでる
LSound_Loadは大丈夫だが読み込めてるかは不明

===============================================================
LNote Log Version 1.0b Tue May 28 00:17:02 2013
---------------------------------------------------------------
BuildConfig : Release
CharSet : MultiByte
Flags
===============================================================
0:LNote::Core::File::Manager::initialize 初期化を開始します...
0:LNote::Core::File::Manager::initialize 初期化が完了しました。
1:LNote::Core::Physics::Manager::initialize 初期化を開始します...
4:LNote::Core::Physics::Manager::initialize 初期化が完了しました。
5:LNote::Core::System::Manager::initialize 初期化を開始します...
5:LNote::Core::System::ApplicationBase::initialize 初期化を開始します...
5: UserHWND : 001909EC
5:LNote::Core::System::ApplicationBase::initialize 初期化が完了しました。
6:LNote::Core::System::Manager::initialize 初期化が完了しました。
6:LNote::Core::Audio::Manager::initialize 初期化を開始します...
6:LNote::Core::Audio::XAudio2::AudioDevice::initialize 初期化を開始します...
208:オーディオデバイスの情報を取得します...
208: DeviceID : {BD6DD71A-3DEB-11D1-B171-00C04FC20003}
208: DisplayName : Realtek HD Audio 2nd output
209: Role : 11
209: OutputFormat ( WAVEFORMATEX )
209: フォーマットID : 65534
209: チャンネル数 : 2
210: サンプリングレート : 44100
210: データ速度(Byte/sec) : 176400
210: ブロックサイズ : 4
210: サンプルあたりのビット数 : 16
211: 拡張部分のサイズ : 22
211:LNote::Core::Audio::XAudio2::AudioDevice::initialize 初期化が完了しました。
211:LNote::Core::Audio::ResourceManager::initialize 初期化を開始します...
212:LNote::Core::Audio::ResourceManager::initialize 初期化が完了しました。
212:LNote::Core::Audio::Manager::initialize 初期化が完了しました。
3481:【エラー発生】
--------------------------------------------------------------------
◆ [ 不明なエラーコード ]

DirectMusic が初期化されていません。

file : XA2AudioDevice.cpp
line : 275



Riki

リンク

2013/6/16(Sun) 22:32:58|NO.54971

返信が遅れました。申し訳ないです。

みなさんご回答ありがとうございました。


>名無しさん、にゃんちゃんさん

DirectXのランタイムがインストールされていない可能性があります。
以下のページからインストールしてみてください。
http://www.microsoft.com/ja-jp/download/details.aspx?id=35

なお、Windows8では初期状態ではDirectXの一部の機能がインストールされているものの、
本ライブラリに必要な機能はインストールされていません。
私の方ではランタイムをインストール後に動作を確認しましたのでお試しください。


>checkさん

問題のあるファイルを用意できなかったのですが、
チャンクの読み取り処理が怪しかったので修正しました。
次回リリースで対応できていると思います。

ちなみに、ファイルサイズの方は一応 2147483647バイト(INT_MAX) までは扱えます。プログラム的に。
メモリ確保の時にWindowsから怒られるかもしれませんが・・・。

また、設計についてのアドバイス、ありがとうございます。
一応hmm.dllのように、機能自体はひとつのDLLにまとめて
実際に使うときに必要な機能だけチョイスして初期化・・・という流れを考えています。


>暇人さん

MIDIの再生には初期化の前にMIDIを使用することを明示する必要があります。
このあたりはマニュアルの「プログラミングガイド>音声機能>MIDI の再生について」をご覧ください。



check

リンク

2013/6/16(Sun) 23:41:00|NO.54973

えーと、音声ファイルの再生はストリーミング再生ではないのか?
全てメモリに読み込んでから再生しているということか?
(ちなみに、当方の環境でINT_MAXに近い値をnewしたところ、
PAGE_FAULT_IN_NONPAGED_AREAのブルースクリーンが出たことがある。)

追加のアドバイスとしては、マルチプラットフォームを目指しているのであれば、
WindowsAPIで定義されたマクロ等(もしくはそれと同じ名前のもの)は使用しないことをすすめる。
そちらで使用しているHRESULT型やSUCCEEDEDやFAILEDマクロなどだな。



暇人

リンク

2013/6/17(Mon) 20:31:58|NO.54986

あぁ、サンプルの方にもコメントアウトして設定方法書いてたんだ
LNote_InitAudioのヘルプとか関連に何も書いてないし
MIDで検索しても何も出ないから特に設定は必要ないのかと思った

本格的に使う事にならないとワンキーヘルプぐらいしか見ない・・・



ONION software Copyright 1997-2023(c) All rights reserved.