テーマ「perl meets beats」
- 17. 例)ラの音 (440Hz) を出す
サンプリング周波数 : 44,100Hz
量子化ビット数 : 8(-128〜+127)
音の長さ : 1 秒
モノラル
44,100 / 440
1 周期
データの長さ = サンプリング周波数 × 音の長さ
- 18. perl meets beats!
こんな感じで宣言して、
beats を WAV ファイルに書き出したい!
my $bpm = 138;
my $beats = {
kick => [ 1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 ],
snare => [ 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 ],
hat => [ 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 ]
};
- 20. perl meets beats!
単発の波形を作る
my $wav_kick = create_oneshot( 50, 0.1, $osc_saw );
my $wav_snare = create_oneshot( 1000, 0.05, $osc_noise );
my $wav_hat = create_oneshot( 5000, 0.05, $osc_noise );
キック、スネア、ハイハットを用意しました。
- 21. perl meets beats!
ビートを刻む
my $ch_kick = to_wav( $beats->{kick}, $wav_kick );
my $ch_snare = to_wav( $beats->{snare}, $wav_snare );
my $ch_hat = to_wav( $beats->{hat}, $wav_hat );
あとは、一緒に鳴らすだけ!