#!/usr/bin/perl -w use Trailer; use Clone; use Mixer; use Amplifier; use Patch; use Random; use Scheduler; use Lag; use Hz; use Waf; use Const; use Compound; my $waf = new Waf('wav_004.wav'); my $com1 = &automod(); my $com2 = Clone::clone($com1); my $com3 = Clone::clone($com1); my $fil = &filter(); $com2->{'$'}->{'hz'}->{'phase'} = 3.14159*2/3; $com3->{'$'}->{'hz'}->{'phase'} = 3.14159*4/3; my $patch7 = new Patch($com1->{'$'}->{'hz'},$com2->{'$'}->{'amp1'}); my $patch8 = new Patch($com2->{'$'}->{'hz'},$com3->{'$'}->{'amp1'}); my $patch9 = new Patch($com3->{'$'}->{'hz'},$com1->{'$'}->{'amp1'}); my $patch10 = new Patch($com1->{'$'}->{'hz'},$com3->{'$'}->{'amp2'}); my $patch11 = new Patch($com2->{'$'}->{'hz'},$com1->{'$'}->{'amp2'}); my $patch12 = new Patch($com3->{'$'}->{'hz'},$com2->{'$'}->{'amp2'}); my $patch13 = new Patch($com3->{'$'}->{'hz'},$fil->{'$'}->{'amp2'}); my $patch14 = new Patch($com1->{'$'}->{'hz'},$waf); my $sch = new Scheduler([$patch7,$patch8,$patch9,$patch10,$patch11,$patch12,$patch13,$patch14,$com1,$com2,$com3,$fil]); for (my $i=0; $i < 441000; $i++) { $sch->pulse(); } $waf->finish(); sub automod { my $c200 = new Const(200); my $c50 = new Const(40); my $hz = new Hz; my $mix = new Mixer; my $amp1 = new Amplifier; my $amp2 = new Amplifier; my $patch1 = new Patch($c200,$mix); my $patch2 = new Patch($c50,$amp1); my $patch3 = new Patch($c50,$amp2); my $patch4 = new Patch($amp1,$mix); my $patch5 = new Patch($amp2,$mix); my $patch6 = new Patch($mix,$hz); my $com1 = new Compound({'list'=>[$patch1,$patch2,$patch3,$patch4,$patch5,$patch6],'$'=>{'amp1'=>$amp1, 'amp2'=>$amp2 ,'mix' =>$mix, 'hz' => $hz}}); return($com1); } sub filter { my $c_9 = new Const(.9); my $c_1 = new Const(.1); my $mix = new Mixer; my $amp1 = new Amplifier; my $amp2 = new Amplifier; my $lag = new Lag(220); my $patch1 = new Patch($c_9,$amp1); my $patch2 = new Patch($c_1,$amp2); my $patch3 = new Patch($lag,$amp1); my $patch4 = new Patch($amp1,$mix); my $patch5 = new Patch($amp2,$mix); my $patch6 = new Patch($mix,$lag); my $com1 = new Compound({'list'=>[$patch1,$patch2,$patch3,$patch4,$patch5,$patch6],'$'=>{'amp1'=>$amp1, 'amp2'=>$amp2 ,'mix' =>$mix, 'lag' => $lag}}); return($com1); }