I thought I'd post the code I came up with in case it helps someone else down the road. This creates a .wav file; I then used
audacity to rip it to a MP3 cd.
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