Cassis始め
とりあえず、2つ目。
wavファイルでも書き出す辺りを。
use v5.14; use strict; use warnings; use Cassis; use constant SAMPLING_RATE => 44100; my $dco = Cassis::DCO::Sin->new( fs => SAMPLING_RATE ); $dco->set_freq( 440 ); my $wav = $dco->exec( num => SAMPLING_RATE ); # 1sec Cassis::File::write( file => '440.wav', fs => SAMPLING_RATE, channels => [ $wav ] );
こんな感じで、とりあえず1秒間の正弦波を出力できる。
書き出す前に決めておく必要があるサンプリング周波数は、
SAMPLING_RATE
のところで、いわゆる”CDの音質”である44.1kHzと定義している。
書き出し時にの量子化ビット数も、
“CDの音質”と同じ16bitがデフォルト値になっている。
ちなみに、”CDの音質”っていう単語は、
Windows95の簡易レコーダーみたいなので見かけた気がするんだけど、
ちょっと記憶が曖昧ですね。
ちなみに、量子化ビット数を8bitにすると、少しノイジーな感じになる。
出力方法は、bits => 8
を追加するだけ。(*1)
Cassis::File::write( file => '440_8bit.wav', fs => SAMPLING_RATE, channels => [ $wav ], bits => 8 );
今日はここまで。
おしまい。
(*1) 8bitのときに正しく書き出せないバグは、さっき直したので再取得してね!
Leave a Comment