NAME
Audio::Tools::Time - time / sample / byte conversion tools.
DESCRIPTION
Tools for converting bytes into samples, samples into time etc.
SYNOPSIS
my $time = new Audio::Tools::Time 44100, 16, 2;
my $bytes = $time -> nice_bytes( 11025 );
my $sample = $time -> bytes_to_samples( $bytes );
my $secs = $time -> samples_to_seconds( $sample );
my( $mins, $secs, $fract_secs )
= $time -> split_time( $secs );
my $dao_time = $time -> dao_time( $secs );
AUTHOR
Nick Peskett - nick@soup.demon.co.uk
SEE ALSO
METHODS
new
Returns a blessed Audio::Tools::Time object.
my $time = new Audio::Tools::Time sample_rate, bits_per_sample, channels;
Where;
sample_rate = number of samples per second (44100 is cd quality)
bits_per_sample = number of bits per samples (16 is cd quality)
channels = number of channels of sound (stereo is 2)
samples_to_bytes
Converts a sample offset to it's byte offset.
my $bytes = $time -> samples_to_bytes( $sample );
bytes_to_samples
Converts a byte offset to it's sample offset.
my $sample = $time -> bytes_to_samples( $bytes );
samples_to_seconds
Converts a sample offset to it's position as floating point seconds.
my $secs = $time -> samples_to_seconds( $sample );
bytes_to_seconds
Converts a byte offset to it's position as floating point seconds.
my $secs = $time -> bytes_to_seconds( $samples );
seconds_to_samples
Converts a position in seconds (can be floating point) to it's sample offset.
my $sample = $time -> seconds_to_samples( $secs );
seconds_to_bytes
Converts a position in seconds (can be floating point) to it's byte offset.
my $sample = $time -> seconds_to_bytes( $secs );
nice_bytes
Rounds down a byte offset to a appropriate byte offset for the current settings.
$bytes = $time -> nice_bytes( $bytes );
split_time
Converts a floating point seconds position to minutes, seconds & fractional seconds.
my( $mins, $secs, $fract_secs )
= $time -> split_time( $secs );
dao_time
Converts a floating point seconds position to a string containing the format used by disk-at-once & CDRWin. (http://www.goldenhawk.com)
my $dao_time = $time -> dao_time( $secs );
nice_time
Converts a floating point seconds position into a string that verbosely describes the time. If $terse is true then the output will only show the most significant value (to one decimal place if hour or minute).
print $time -> nice_time( 90 );
# returns "1 min, 30 secs"
print $time -> nice_time( 90, 1 );
# returns "1.5 mins"
dao_cue_file
Writes a cue file in the format used by disk-at-once & CDRWin. (http://www.goldenhawk.com)
$time -> dao_cue_file( $breaks, './audio.wav', './output.cue' );
Where $breaks is a reference to an array of byte offsets.
block_align
Returns the current block alignment, ie 44.1khz 16 bit stereo: 1 sample = 4 bytes
my block_align = $time -> block_align();