use Win32::Sound; use strict; my $rate = 14100; my $WAV = new Win32::Sound::WaveOut($rate, 8, 2); Win32::Sound::Volume('100%'); my $data = ""; my $counter = 0; # an hour of beeping -- what fun for my $c (1 ..2*60) { print "$c beep\n"; # .25 sec tone for my $i (1 .. .25 * $rate) { my $v = 128 + 50 * sin($i); $data .= pack("cc", $v); } # 29.75 sec sec silence for my $i (1 .. 29.75 * $rate) { my $v = 0; $data .= pack("cc", $v); } } $WAV->Load($data); # get it $WAV->Save("beep.wav"); # write to disk $WAV->Unload(); # drop it