トップページ > 過去ログ > 記事閲覧
同じ音を複数鳴らした時のそれぞれの音量
名前:kon 日時: 2010/04/28 20:11

音を鳴らす時の事についてお聞きしたいのですが、 同じサウンドハンドルの音をそれぞれ音量を変え複数重ねて鳴らした時、 全ての音が最後に更新した時の音量になってしまいます。 同じ音を重ねて鳴らした時、 それぞれを違う音量に設定する事は出来ないでしょうか。

Page: 1 |

Re: 同じ音を複数鳴らした時のそれぞれの音量 ( No.1 )
名前:Masao 日時:2010/04/29 03:59

今のところハンドル二つ作るほうほうしか私は知りませんね・・・。
Re: 同じ音を複数鳴らした時のそれぞれの音量 ( No.2 )
名前:kon 日時:2010/04/29 20:07

やはりハンドルを複数作るしかありませんか。 現在DXライブラリを使わせて頂き3Dアクションを製作しています。 音の発生源から距離によって音量を変化させる処理を作ろうとした所 この問題に突き当たりました。 浅知恵でなんとかそれらしく出来ないかと 試行錯誤してみたのですが中々うまくいかず、 今はDirectSoundやスレッドを使い自前で何とか出来ないかと勉強中なのですが、 理解不足や見落とし等で何かしら自分が気づけなかった方法が DXライブラリにあるのならと思い質問させていただきました。 なんとか工夫して実装しようと思います。 ありがとうございました。
Re: 同じ音を複数鳴らした時のそれぞれの音量 ( No.3 )
名前:管理人 日時:2010/05/01 17:50

お書き込みいただいた状況は恐らく色々な方が遭遇すると思いましたので、 「同じサウンドハンドルの音をそれぞれ音量を変え複数重ねて鳴らす」 ための機能を追加しました 追加した関数は以下の関数です // メモリに読みこんだWAVEデータの再生にパンを設定する int SetNextPlayPanSoundMem( int PanPal, int SoundHandle ) ; // メモリに読みこんだWAVEデータの再生にボリュームを設定する( 100分の1デシベル単位 ) int SetNextPlayVolumeSoundMem( int VolumePal, int SoundHandle ) ; // メモリに読みこんだWAVEデータの再生にボリュームを設定する( パーセント指定 ) int ChangeNextPlayVolumeSoundMem( int VolumePal, int SoundHandle ) ; // メモリに読み込んだWAVEデータの再生周波数を設定する int SetNextPlayFrequencySoundMem( int FrequencyPal, int SoundHandle ) ; SetPanSoundMem や SetVolumeSoundMem は鳴っている、鳴っていない関係無しに 設定を変える関数ですが、上記の関数は「これから鳴る音」に対する設定ができます なので、既に鳴っている音に対しては何の影響もありません もしご必要でしたらお使いください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 同じ音を複数鳴らした時のそれぞれの音量 ( No.4 )
名前:kon(解決) 日時:2010/05/02 11:15

対応ありがとうございます。 自分なりに工夫してそれなりに聞こえるようには出来たので、 それで行くつもりだったのですが、いくつか問題点もあったので助かりました。 ありがたく使わせていただきます。

Page: 1 |