ミョンミョンした音を作る
そういえば、すでに書いてたわー。
けど、もう少しシンプルなスクリプトを書いてみようと思う。
use v5.14; use strict; use warnings; use Cassis; use constant SAMPLING_RATE => 44100; my $dco = Cassis::DCO::Saw->new( fs => SAMPLING_RATE, pitch => 3.0 ); my $filter = Cassis::Iir2::LPF->new( cutoff => 0.08, q => 6.0 ); my $eg = Cassis::EG->new( fs => SAMPLING_RATE, adsr => [ 0.03, 0.1, 0.9, 1.2 ], curve => 0.5 ); my $amp = Cassis::Amp->new( volume => 0.8 ); my $eg_out = $eg->one_shot( gatetime => 0.05 ); my $filter_out = $filter->exec( src => $dco->exec( num => scalar(@{$eg_out}) ), mod_cutoff => { src => $eg_out, depth => 0.5 } ); my $amp_out = $amp->exec( src => $filter_out, mod_volume => { src => $eg_out, depth => 1.0 } ); Cassis::File::write( file => 'myonmyon.wav', fs => SAMPLING_RATE, channels => [ $amp_out ] );
ポイントとしては、
エンベロープの出力をカットオフだけじゃなく、音量にも適用してるところ。
そうしないと、q
が大きいので音が割れてしまう。
面倒でなければ、volume
とcutoff
で別々のエンベロープを適用すると、
もっと面白い音になるはず。
という訳で、今日はここまで。
おしまい。
Leave a Comment