音ファイル
昨夜散歩していたら、どこからがカエルの鳴き声が聞こえてきた。農家の人が田んぼに 水を入れて、田植えの準備に取り掛かったようで、早速彼(女)らが活動を始めたと いう訳。暫く五月蝿いけど、風物詩だから我慢する事にしよう
音をVMWAREの上でも操作したいぞ
昨日は、実機のFreeBSDで録音・再生したけど、FreeBSD on VMWARE(on WindowsXP) でも出来るようにしておこう。何せ、実機はご老体でいつ昇天してもおかしくない やつだから。
えっと、VMWARE上だと、仮想PCが音機能を持っているように設定しておくんだな。 vmwareのconfigファイルに、
sound.present = "TRUE"
と書いてから、VMWAREを起動する。FreeBSD上では、まだ音ドライバーがロード されていないので、昨日の要領で、OSに見繕ってもらう。後は、ドライバー名を 調べて、/boot/loader.confに書いておけばいいんだけど、昨日はmanを調べる とか、面倒な事をしてしまった。もっと、直裁的に(この言葉、RWHの読書会でも 話題になりました)調べる方法が有った。
[sakae@nil ~]$ cat /dev/sndstat FreeBSD Audio Driver (newpcm: 32bit 2007061600/i386) Installed devices: pcm0: <AudioPCI ES1371-A> at io 0x1480 irq 9 kld snd_es137x [MPSAFE] (2p:1v/1r:1v channels duplex default)
実際にどのような、dmesgが現れるかと言うと
pcm0: <AudioPCI ES1371-A> port 0x1480-0x14bf irq 9 at device 18.0 on pci0 pcm0: <Cirrus Logic CS4297A AC97 Codec> pcm0: [ITHREAD] pcm0: <Playback: DAC1,DAC2 / Record: ADC>
入力は、ADCが1チャンネルで、出力は、左右独立してる。
録音するぞ
VMWAEW上で、早速録音と再生をしてみよう。何を録音する?
- 松ちゃんの、でき婚を記念して、「高砂」とか
- shibuya.lisp#3 に期待を込めて 「黒田節」とか
- 昨日、福山さんが歌っていた、あの曲とか
適当に、触りの部分だけを録音しましたよ。また、公平を機すため、Windows上で 録音したものも、用意しました。
[sakae@nil ~/wave]$ file fromWin onVMWARE fromWin: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 22050 Hz onVMWARE: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
Windows上で録音したものは、嘘か真か、ステレオになってますねぇ。
Haskell も用意する
サボっていた訳ではないけど、VMWARE上には Haslellを入れてなかった。自前で コンパイルしてもいいんだけど、コンパイルには1GのDisk容量が必要になるので(それと、 十分な時間も)、今回は、楽をしよう。
sysinstallを起動して、ネット上からバイナリーを取り寄せて入れてしまおうと 思ったら、perlのバージョンがミスマッチと言われてしまい、入らなかった。 (何で、Haskellとperlが関係するかは、私には想像できません)面倒なので、バイナリーを 手元に持ってきて
[root@nil ~]# pkg_add -f ghc-6.8.3_3.tbz pkg_add: warning: package 'ghc-6.8.3_3' requires 'perl-5.8.9_2', but 'perl-5.8.9' is installed
これでも、問題なく動いているよ!
PCMファイルのフォーマットを探る
さて、最後に PCMファイルのフォーマットを探っておく事にしよう。この間買って きた、音本にも解説が出てたけど、資料は複数有った方が何かと便利だと思うからだ。
Waveファイルを入出力してみる と言うサイトがよさそうだ。Cのソースも公開されているので、こちらを参考にしながら やってゆくのが、良かろう。