電子書籍の厳選無料作品が豊富!

学校の課題で、作品を作ることとなり、
リアルタイムで再生される音楽の、
ボリューム、テンポ、周波数による局所的な音の大小(イコライザ的な)を実現するプログラムを作ることになりました。
ボリューム、テンポ調整、イコライザのついた音声プレイヤーみたいなものです。再生する音声のフォーマットは問いません。
下調べはしましたが、実現方法は不明でした。
実現する方法、もしくは参考となる資料を教えていただけると嬉しいです。
開発環境はWindows、
使用言語は、C。Cが不可能ならばC++もがんばります。
コンパイラ等はできるだけフリーで手に入る物だと助かります。
しかし、実現することが第一なので有料でも大丈夫です。
当方の知識は、ぎりぎり基本情報を持っている程度です。
よろしくお願いします。

A 回答 (2件)

C++ を使うことになりますが, 少なくとも「(ほぼ) リアルタイムのボリューム」については DirectX SDK のサンプルにある fullduplexfilter を流用するだけで可能です. イコライザは FFT をするのが簡単でしょう. Q の大きいフィルタを並列に並べても実現できますが, FFT の方が速いかもしれません.


テンポ調整は.... 実は一番難しいんじゃないかなぁ.
「ほぼ」というのは, 当然「入力から出力までにタイムラグが出てしまう」から. FFT でもラグが出るので, それだけは注意です.
fullduplexfilter はウィンドウを開いたりするので, Visual Studio Express Edition でコンパイルできるかどうかは知りません. Professional Edition なら確実にコンパイルできます.
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/22 19:22

Direct Xを使えば可能だと思います


http://yokohama.cool.ne.jp/chokuto/urawaza/com/d …

グラフィックイコライザーとなると
FFTの知識が必要となるかも知れません。
http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1 …
(FFTで検索するとファイナル・ファンタジーがたくさんヒットしてしまうので、
"高速フーリエ変換"で検索しなさいと、友人に教えていただきました。
感謝です)
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/21 23:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!