- ベストアンサー
DirectXでの周波数(音程)変更
色々調べたところ、まだ詳しく理解はしていないのですがdirexctsoundではセカンダリバッファを使い周波数を変更して音程を変えることができるとわかりました。 directmusicでも周波数を変更することができるのでしょうか? また、directsoundでバッファを用いなくても周波数を変更できるのでしょうか? 文章のおかしな点が多々あると思いますがよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>音源はwaveを再生しようと考えています。 waveの場合はDirectShowのマルチメディア系の方を使うか、 普通はDirectSoundを使います。 #DirectMusicはどちらかというとMidi向けです。 >なぜか音が鳴らなく、バッファの中を調べてみても >全て0(NULL?)でした。 バッファの中身というのが何を指していて、 どのようにして見たのかはわかりませんが。。。 それはつまりデータが無いということですよね。。。? 何らかの処理を行っていないか、読み込みの処理に失敗してる 可能性がありますが、これだけの情報ではなんともいえません; >そこでバッファを用いなくてもできないのかなと思いまして…。 音が鳴らないのに、出来そうとは思いませんよね・・・ 周波数の調整は後でいくらでも可能なので、先に音を鳴らす事から はじめた方がよさそう。
その他の回答 (1)
- aris-wiz
- ベストアンサー率38% (96/252)
>directmusicでも周波数を変更することができるのでしょうか? 再生する音源によると思います。 >また、directsoundでバッファを用いなくても >周波数を変更できるのでしょうか? そもそも変更をかける対象を用いずに 出来るわけがないと思うのですが。。。 SetFrequencyとかで調べてみるとよいかと。
お礼
お早い回答ありがとうございます。 >>directmusicでも周波数を変更することができるのでしょうか? >再生する音源によると思います。 音源はwaveを再生しようと考えています。 >>また、directsoundでバッファを用いなくても >>周波数を変更できるのでしょうか? >そもそも変更をかける対象を用いずに >出来るわけがないと思うのですが。。。 購入した本のサンプルコード(セカンダリバッファを用いてwave再生)をそのままコンパイルしたところ、なぜか音が鳴らなく、バッファの中を調べてみても全て0(NULL?)でした。 そこでバッファを用いなくてもできないのかなと思いまして…。
補足
ご返事ありがとうございます。 もう少しDirectSoundで頑張ってみようと思います。 言うのが遅れましたが、音を鳴らそうとしているのはmain関数です。 ウィンドウズアプリケーションのWinmainだとバッファを用いても音が鳴るのですが、 それをウィンドウズコンソールアプリケーションのmainに書き直したところ(必要な部分だけ残し、winmainでmainには必要ないと思われる最低限を削ったつもりですが)鳴らなくなったのです…。 joystickではwinmainのソースをmainに書きかえれたので、DirectSoundでも出来ると思ったのですがmainでは使えないのでしょうか?