niszetの日記

10年目エンジニアが最近勉強したことを忘れないようにメモをする

Csoundでwavファイルを生成したが

Csoundwindowsで使うべきではないのでは…

Csoundが生成する波形、本当に自分が書いたとおりなのだろうか?
…ということを確かめるために、wavファイルをRに取り込んで、値を見てみようとしてみました。
こんなことしなくても、Csoundの機能としてlinuxでは波形を見れるような記述があるが、そのopcode書いても見れませんでした。
ほかの機能でwindows上でも見れるのかしら…。

Csoundのdisplayというopcodeですが、X11とか書いてあるので、たぶんwindowsでは使えないです(サンプルコードを実行しても見れませんでした)

display

wavのお勉強

wav、あるいはwaveファイルってずっと無圧縮のデータしか存在しないのだと思っていました。が、調べてみると別にそういうわけではないということがわかりました。
しかし、実際はそんなwavファイルは見たことはないなぁ…。

wavのファイル構造については色々なサイトを参考にさせていただきました。ありがとうございました。
wav ファイルフォーマット

WAVEファイルの構造

WAV形式音声ファイル

Csoundでwavファイルを作成して再生してみようとする->再生できない

CsoundでRecordあたりを押すとwavファイルが生成されます。これをMedia Playerで再生しようとしてみたのですが、エラーが出て再生ができませんでした。
ちなみに、foobar2000でもダメだったのでMSが悪いわけではないのだと思います。

この後Rでwavを取り込むのですが、バイナリエディタでまずは上記のサイトにあるような値があるのかを見てみたのです。
このとき、バイナリエディタはStirlingを使いましたが別に何でも良いと思います。お好きなバイナリエディタで見ると良いのです。

で、wavにはファイルサイズなどの情報がヘッダに書き込まれていますが、これの値が0になっているのです。
おそらくこれが原因ではないかなぁと疑っています。実際、Rで取り込むときもこれが厄介だったのですが、ファイルサイズからヘッダサイズを引くなどで対応できるので、まぁ何とかなるかな、という感じです。拡張のあるヘッダだとダメですが、Csoundで生成したwavに限ることにすればおそらく問題はないでしょう。

ひとまず今日はここまで。次回に続く…。

もうちょっと図と表、コードなどを載せるべきですね。