Audio-Analyzer
view release on metacpan or search on metacpan
lib/Audio/Analyzer.pm view on Meta::CPAN
$chunk = Audio::Analyzer::Chunk->new($self, $channels);
return $chunk;
}
sub progress {
my ($self) = @_;
my $bytes = $self->[BYTES];
my $input = $self->[INPUT];
my $size = (stat($input))[7];
return int($bytes / $size * 100);
}
sub freqs {
my ($self) = @_;
my $sample_rate = $self->[SAMPLE_RATE];
my $dft_size = $self->[DFT_SIZE];
my $freq_cache = $self->[FREQ_CACHE];
my @freqs;
lib/Audio/Analyzer.pm view on Meta::CPAN
$ret = read($input, $buf, $read_size);
if (! defined($ret)) {
die "could not read: $!";
} elsif ($ret == 0) {
return undef;
} elsif ($ret < $read_size) {
#hit the end and did not get enough data for the FFT - seek
#backwards a whole read_size and finish the last reading
#as best as possible
my $size = (stat($input))[7];
$self->[EOF_FOUND] = 1;
seek($input, $size - $read_size, 0) or die "could not seek: $!";
return $self->read_pcm;
}
$bytes += $seek_step;
( run in 0.979 second using v1.01-cache-2.11-cpan-49f99fa48dc )