Audio frequency generator: Difference between revisions

Content added Content deleted
(Added Perl example)
m (→‎{{header|Perl}}: added volume setting, as per task spec)
Line 121: Line 121:


=={{header|Perl}}==
=={{header|Perl}}==
<lang perl>use strict;
<lang perl>use strict 'vars';
use feature 'say';
use feature 'say';
use feature 'state';
use feature 'state';
Line 129: Line 129:
Audio::NoiseGen::init() || die 'No access to sound hardware?';
Audio::NoiseGen::init() || die 'No access to sound hardware?';


print "Play [S]ine, s[Q]uare or [T]riangular wave ? "; my $ans = <>;
print "Play [S]ine, s[Q]uare or [T]riangle wave? "; my $ans_freq = uc(<>);
print "Pick a volume [0-9]"; my $ans_volume = <>;
say 'Volume: '. (my $volume = 0.1 + 1 * $ans_volume/10);


ReadMode(3);
if ($ans =~ /s/i) { play( gen => sine( freq => setfreq(440) ) ) }

elsif ($ans =~ /q/i) { play( gen => square( freq => setfreq(440) ) ) }
my $waveform = $ans_freq eq 'Q' ? 'square' : $ans_freq eq 'T' ? 'triangle' : 'sine';
elsif ($ans =~ /t/i) { play( gen => triangle( freq => setfreq(440) ) ) }
play ( gen => amp ( amount => $volume, gen => &$waveform( freq => setfreq(440) ) ) );


sub setfreq {
sub setfreq {