そろそろLFOでも

Cassis::Oscを使ってないので、
そろそろ、これを使ってみようかと。

use v5.14;
use strict;
use warnings;

use Cassis;
use constant SAMPLING_RATE => 44100;

my $dco = Cassis::DCO::Sin->new( fs => SAMPLING_RATE, pitch => 4.0 );
my $osc1 = Cassis::Osc::Tri->new( fs => SAMPLING_RATE, freq => 4 );
my $osc2 = Cassis::Osc::Pulse->new( fs => SAMPLING_RATE, freq => 9 );

my $osc_out = $osc2->exec(
    num => SAMPLING_RATE,
    mod_freq => {
        src => $osc1->exec( num => SAMPLING_RATE * 4 ),
        depth => 0.8
    }
);

my $wav = $dco->exec(
    num => scalar(@{$osc_out}),
    mod_pitch => {
        src => $osc_out,
        depth => 0.2
    }
);

Cassis::File::write(
    file => 'dco_mod_osc.wav',
    fs => SAMPLING_RATE, channels => [ $wav ] );

freqをモジュレーションしたもので、
pitchをモジュレーションしてるんだけど、
前者はmod_freqで、後者はmod_pitchを使っている点に注意。

こんなことも出来ますよっていうサンプルでした。
もちろん、もっともっと繋げて、複雑な音も作れるんだけど、
それは各自の宿題ということで。

おしまい。

Leave a Comment