わけあってC++でwaveファイルを読み書きしようとしている
2015年2月14日 ゲームんです。
この日記は完全に自分用メモです。(読んでもつまらない内容だよ)
2/10ぐらい
とりあえずC++の開発環境として
Visual Studio Express 2013 for windows desktop
http://www.visualstudio.com/ja-jp/products/visual-studio-express-vs.aspx
(このページの真ん中ぐらいに置いてあるや)
を落としてインストール。とりあえずHello worldする。
2/11ぐらい?
とりあえずWaveをバイナリとして読み込むプログラムのサンプルとかを色々探して
自分で改良して動かしてみたりした。
2/13
どうやらWaveファイルにも色々な形式があって、
音声信号データの部分が8bitだったり16bitだったり24bitだったり32bit-floatだったりするみたいだ。
参考:http://www.web-sky.org/program/other/wave.php
ほとんどの音声ファイルは8か16なので、サンプルプログラムもこれにしか対応してない。
だが私はやりたい事の関係上、32bit-floatのwaveファイルを扱いたい。
となると、良い感じのサンプルプログラムが無い。
32bit-floatを扱う部分を自力で書くという手段もあるが、
それよりも完成したライブラリを探したほうがはやいし完成度も高いのでは?
というわけで、waveの読み書きができるライブラリを探してみたところ、
http://www.mega-nerd.com/libsndfile/
これが出てきた。
くそっ、私の嫌いな英語だ。
しかし、ちらっと見たところ、こいつはfloatも扱えるみたいで、
こいつが使えればかなりゴールに近づきそう。
なのでこいつを使ってみることに。
ライブラリの入れ方なんてさっぱりわからんので、適当にぐぐって出てきた
http://imagingsolution.blog107.fc2.com/blog-entry-231.html
このページの通りにテキトーにファイルをつっこんだり指定したりして
試しに適当なサンプルプログラムを拾ってきて実行。
変なエラーが出まくる。
原因を色々調べた結果、libsndfileを for 64bit から for 32bit のに変えたら、
とりあえずエラーが出なくなった。
とりあえず、ネットで拾ってきたサンプルをいじって、
waveファイルを読み込んで、波形データそれぞれを2で割って出力する
というプログラムを作って、音量1/2のwaveファイルができた。
しかし、依然としてプログラムが一体何をやってるのかさっぱり分からないので、
目的のプログラムを作るにはまだしばらくかかりそうだ。
つづく。
この日記は完全に自分用メモです。(読んでもつまらない内容だよ)
2/10ぐらい
とりあえずC++の開発環境として
Visual Studio Express 2013 for windows desktop
http://www.visualstudio.com/ja-jp/products/visual-studio-express-vs.aspx
(このページの真ん中ぐらいに置いてあるや)
を落としてインストール。とりあえずHello worldする。
2/11ぐらい?
とりあえずWaveをバイナリとして読み込むプログラムのサンプルとかを色々探して
自分で改良して動かしてみたりした。
2/13
どうやらWaveファイルにも色々な形式があって、
音声信号データの部分が8bitだったり16bitだったり24bitだったり32bit-floatだったりするみたいだ。
参考:http://www.web-sky.org/program/other/wave.php
ほとんどの音声ファイルは8か16なので、サンプルプログラムもこれにしか対応してない。
だが私はやりたい事の関係上、32bit-floatのwaveファイルを扱いたい。
となると、良い感じのサンプルプログラムが無い。
32bit-floatを扱う部分を自力で書くという手段もあるが、
それよりも完成したライブラリを探したほうがはやいし完成度も高いのでは?
というわけで、waveの読み書きができるライブラリを探してみたところ、
http://www.mega-nerd.com/libsndfile/
これが出てきた。
くそっ、私の嫌いな英語だ。
しかし、ちらっと見たところ、こいつはfloatも扱えるみたいで、
こいつが使えればかなりゴールに近づきそう。
なのでこいつを使ってみることに。
ライブラリの入れ方なんてさっぱりわからんので、適当にぐぐって出てきた
http://imagingsolution.blog107.fc2.com/blog-entry-231.html
このページの通りにテキトーにファイルをつっこんだり指定したりして
試しに適当なサンプルプログラムを拾ってきて実行。
変なエラーが出まくる。
原因を色々調べた結果、libsndfileを for 64bit から for 32bit のに変えたら、
とりあえずエラーが出なくなった。
とりあえず、ネットで拾ってきたサンプルをいじって、
waveファイルを読み込んで、波形データそれぞれを2で割って出力する
というプログラムを作って、音量1/2のwaveファイルができた。
しかし、依然としてプログラムが一体何をやってるのかさっぱり分からないので、
目的のプログラムを作るにはまだしばらくかかりそうだ。
つづく。
コメント