- ベストアンサー
DirectXで音源の加工はできるのでしょうか?
音楽の加工をするソフトを作ろうかと考えています。 現在、音源データ(Wave)を加工して、加工後のデータを音源として保存するという機能を付けたいと思っています。 ・2つの音源の合成 ・エコーの様に時系列を少しずらす ・音量、左右バランスの調整 等々の加工を施した後、保存することが目標です。 音源の加工をする方法はどのようなものがあるのでしょうか? できれば、.NETの中にあるDirectXで済ますことができれば非常に助かるのですが、可能なのでしょうか? 皆さんの知恵をお貸しいただけたら幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
未圧縮WAVEファイルであれば、自力で波形データを取り出して演算処理によって加工。 DirectX(DirectSoundやDirectShow)を使うと余計にややこしくなると思います。これらは再生することが主なので。 波形データの取り出しは、mmioで始まるWinAPIを利用すれば多少楽はできますが、WAVEファイルのフォーマット(RIFF)はさほど複雑ではないのでSystem.IO.BinaryReaderを使えば読みやすいと思います。 http://www.kk.iij4u.or.jp/~kondo/wave/
その他の回答 (1)
- DreamyCat
- ベストアンサー率56% (295/524)
>可能なのでしょうか?< ファイルを読み込んでそこからデータを読み込んで 変換を加えてファイルに書き出せばそれでできあがるはずです。 DirectXのプログラミングはよくわからないのですが SDKにサンプルプログラムが付属しているはずです。 マルチメディア関係でいじろうとしたら、ファイルのヘッダーをよく理解しなければなりません。 wavファイルのヘッダーの構成がどうなっているのか、 つまりサンプリング周波数と8,16ビットでそれぞれモノラル、ステレオの記録データがどのように並んでいるのかわかればいいわけです。 プロの方でしたら簡単なことでしょうが、データの組み合わせを考えるだけでうんざりします。 MSDNでマルチメディア関係の部分を調べてください。
補足
ご回答ありがとうございます。 やはりDirectXでの実装は難しそうなので、System.IO.BinaryReaderを使い波形データを取り出したいのですが、バイナリを扱った経験が無い故全く理解が及びませんでした。 波形データ自体も、配列で取得できるのかと想像していたのですがどうやら違う模様・・・ また質問させていただくかもしれません、その時はよろしくお願いします