• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C、もしくはC++での音声の再生、加工)

C、もしくはC++での音声の再生、加工

このQ&Aのポイント
  • C、もしくはC++を使用して音声の再生と加工を行う方法について教えてください。
  • 学校の課題で、リアルタイムで再生される音楽のボリューム、テンポ、周波数による局所的な音の変化を実現するためのプログラムを作成する必要があります。
  • 開発環境はWindowsで、C言語を使用することができます。参考資料や実現方法について教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

C++ を使うことになりますが, 少なくとも「(ほぼ) リアルタイムのボリューム」については DirectX SDK のサンプルにある fullduplexfilter を流用するだけで可能です. イコライザは FFT をするのが簡単でしょう. Q の大きいフィルタを並列に並べても実現できますが, FFT の方が速いかもしれません. テンポ調整は.... 実は一番難しいんじゃないかなぁ. 「ほぼ」というのは, 当然「入力から出力までにタイムラグが出てしまう」から. FFT でもラグが出るので, それだけは注意です. fullduplexfilter はウィンドウを開いたりするので, Visual Studio Express Edition でコンパイルできるかどうかは知りません. Professional Edition なら確実にコンパイルできます.

fateismine
質問者

お礼

回答ありがとうございます。 今日学校で、DirectX9関連の書籍を借りてきたので早速やってみます。 険しい道のりになると思いますが、あきらめずがんばります。

その他の回答 (1)

  • BLK314
  • ベストアンサー率55% (84/152)
回答No.1

Direct Xを使えば可能だと思います http://yokohama.cool.ne.jp/chokuto/urawaza/com/dxaudio.html グラフィックイコライザーとなると FFTの知識が必要となるかも知れません。 http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap7/index.htm (FFTで検索するとファイナル・ファンタジーがたくさんヒットしてしまうので、 "高速フーリエ変換"で検索しなさいと、友人に教えていただきました。 感謝です)

fateismine
質問者

お礼

解答ありがとうございます。 Direct Xの使用を検討し、本や資料をあさって見ます。 やはり、リアルタイムで反映するというのは難しいみたいですが、 がんばります。