Audio frequency generator: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) (Added Perl example) |
SqrtNegInf (talk | contribs) 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] |
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); |
|||
⚫ | |||
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) ) ) } |
|||
⚫ | |||
sub setfreq { |
sub setfreq { |