NAME
Audio::Wav - Modules for reading & writing Microsoft WAV files.
SYNOPSIS
use Audio::Wav;
my $wav = new Audio::Wav;
my $read = $wav -> read( 'input.wav' );
my $write = $wav -> write( 'output.wav', $read -> details() );
print "input is ", $read -> length_seconds(), " seconds long\n";
$write -> set_info( 'software' => 'Audio::Wav' );
my $data;
while ( defined( $data = $read -> read_raw( $buffer ) ) ) {
$write -> write_raw( $data );
}
my $length = $read -> length_samples();
my( $third, $half, $twothirds ) = map int( $length / $_ ), ( 3, 2, 1.5 );
my %samp_loop = (
'start' => $third,
'end' => $twothirds,
);
$write -> add_sampler_loop( %samp_loop );
$write -> add_cue( $half, "cue label 1", "cue note 1" );
$write -> finish();
NOTES
All sample positions are now in sample offsets (unless option '.01compatible' is true).
DESCRIPTION
These modules provide a method of reading & writing uncompressed Microsoft WAV files.
SEE ALSO
L<Audio::Wav::Read>
L<Audio::Wav::Write>
METHODS
new
Returns a blessed Audio::Wav object. All the parameters are optional and default to 0
my %options = (
'.01compatible' => 0,
'oldcooledithack' => 0,
'debug' => 0,
);
my $wav = Audio::Wav -> new( %options );
write
Returns a blessed Audio::Wav::Write object.
my $details = {
'bits_sample' => 16,
'sample_rate' => 44100,
'channels' => 2,
};
my $write = $wav -> write( 'testout.wav', $details );
See Audio::Wav::Write for methods.
read
Returns a blessed Audio::Wav::Read object.
my $read = $wav -> read( 'testout.wav' );
See Audio::Wav::Read for methods.
set_error_handler
Specifies a subroutine for catching errors. The subroutine should take a hash as input. The keys in the hash are 'filename', 'message' (error message), and 'warning'. If no error handler is set, die and warn will be used.
sub myErrorHandler {
my( %parameters ) = @_;
if ( $parameters{'warning'} ) {
# This is a non-critical warning
warn "Warning: $parameters{'filename'}: $parameters{'message'}\n";
} else {
# Critical error!
die "ERROR: $parameters{'filename'}: $parameters{'message'}\n";
}
}
$wav -> set_error_handler( \&myErrorHandler );
AUTHORS
Nick Peskett (see http://www.peskett.co.uk/ for contact details).
Kurt George Gjerde <kurt.gjerde@media.uib.no>. (from 0.02)