トップページ > 記事閲覧
ソフトサウンドのプレイヤーについて
名前:たろ 日時: 2021/10/10 17:18

管理人さま 日頃からDXライブラリを使わせて頂き、お世話になっております。 ソフトウエアで扱う波形データのプレイヤーについて質問をさせて下さい。 現状、ソフトウエアで扱う波形データのプレイヤーの再生音量及びパンを設定することはできないのでしょうか? サウンドハンドルに変換することができる方法があれば再生される音に対してできることが増えると思うのですが、 そうでなくとも現在の再生サンプル位置を知ることができれば、少なくとも 使用者の側で再生途中で再生音量を変更する、といったことができるようになると思うのですが、 どちらかの機能を実装していただけないでしょうか。 私の見落としで既に実装して下さっていたらすみません。 また、もう一つの質問でソフトウエアで扱う波形データのプレイヤーは、 再生し終わった再生用サウンドバッファ内の波形データや、 転送済みの波形データは自動的に削除されているのでしょうか。 同一のプレイヤーを使用して長時間サウンドを再生しても問題ないか漠然と気になった次第です。 (AddDataSoftSoundPlayerで追加したソフトサウンドは追加後即座に削除しても問題ないことは確認しました。) ご回答くださいましたら幸いです。 お忙しいところ恐縮ですが、よろしくお願いいたします。
メンテ

Page: 1 |

Re: ソフトサウンドのプレイヤーについて ( No.1 )
名前:管理人 日時:2021/10/12 04:11

> 現状、ソフトウエアで扱う波形データのプレイヤーの再生音量及びパンを設定することはできないのでしょうか? はい、現状は音量処理やパンも含めて全て自前で行う必要があります > サウンドハンドルに変換することができる方法があれば再生される音に対してできることが増えると思うのですが、 すみません、リファレンスに載っていませんが、ソフトウェアで扱う波形データからサウンドハンドルに変換するための以下の関数があります // ソフトウエアサウンドハンドルが持つサウンドデータからサウンドハンドルを作成する int LoadSoundMemFromSoftSound( int SoftSoundHandle, int BufferNum = 3 ) ; よろしければお使いください m(_ _;m > また、もう一つの質問でソフトウエアで扱う波形データのプレイヤーは、 > 再生し終わった再生用サウンドバッファ内の波形データや、 > 転送済みの波形データは自動的に削除されているのでしょうか。 はい、転送済みの波形は再生が終わると自動的に削除されますので、同一のプレイヤーを使用して長時間サウンドを再生しても問題ありません
メンテ
Re: ソフトサウンドのプレイヤーについて ( No.2 )
名前:たろ 日時:2021/10/14 06:23

管理人 さま ご返信くださりありがとうございます。 もともと、インタラクティブミュージックのようなものを作ろうとしていましたので、 1秒間隔など短いスパンで音声をソフトサウンドプレイヤーに送るようにし、音量・パンの設定等々はこちら側で行うことにしました。 折角サウンドハンドルを作成する関数もご紹介いただきましたが、ソフトサウンドプレイヤーのように転送した 波形を連続して再生することはできなさそうでしたので、こちらは断念いたしました。 また、転送済みの波形の削除について、承知いたしました。安心しました。 ところで、これらに関連して別の希望が出てきたのですが、再生用サウンドバッファ内及び転送待ちデータのサンプル総数を取得できるようになりませんでしょうか。 ソフトサウンドプレイヤーで再生される音楽のリズムに乗せたゲームだと今どの部分が流れているのかを知る必要があるので、 転送待ちのサンプル数だけではなく、バッファ内のサンプル数も合わせたサンプル総数を取得できる関数を作っていただけるととても嬉しいです。 図々しい要望ですが、お応えいただけますと幸いです。
メンテ
Re: ソフトサウンドのプレイヤーについて ( No.3 )
名前:管理人 日時:2021/10/15 04:18

> ところで、これらに関連して別の希望が出てきたのですが、再生用サウンドバッファ内及び転送待ちデータのサンプル総数を取得できるようになりませんでしょうか。 GetStockDataLengthSoftSoundPlayer という関数で再生用サウンドバッファへの 転送待ちデータのサンプル総数を取得できます // ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する int GetStockDataLengthSoftSoundPlayer( int SSoundPlayerHandle ) ; > 転送待ちのサンプル数だけではなく、バッファ内のサンプル数も合わせたサンプル総数を取得できる関数を作っていただけるととても嬉しいです。 GetStockDataLengthSoftSoundPlayer の第二引数に再生用サウンドバッファに転送済みで未再生のサウンドデータのサンプル数を代入する int型変数のアドレスを追加しましたので、よろしければ引数を追加したこちらのバージョンをダウンロードしてください m(_ _)m // ソフトウエアで扱う波形データのプレイヤーハンドルに追加した波形データでまだ再生用サウンドバッファに転送されていない波形データのサンプル数を取得する // SoundBufferStockSamples : 有効なint型変数のアドレスを渡すと再生用サウンドバッファに転送済みで未再生のサウンドデータのサンプル数が代入される int GetStockDataLengthSoftSoundPlayer( int SSoundPlayerHandle, int *SoundBufferStockSamples = NULL ) ; https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: ソフトサウンドのプレイヤーについて ( No.4 )
名前:たろ(解決済) 日時:2021/10/20 21:35

管理人さま 返信が遅くなってしまい申し訳ございません。 実装して下さりありがとうございます。これで期待していた動作をさせることができそうです。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存