Audio::SoundFile::Reader - Reader class for various sound formats
use IO::Seekable; use Audio::SoundFile; $reader = new Audio::SoundFile::Reader($source, \$header); $length = $reader->bread_raw(\$buffer, $wanted); $length = $reader->bread_pdl(\$buffer, $wanted); $reader->fseek(1024, SEEK_SET); $reader->fseek(1024, SEEK_CUR); $reader->fseek(1024, SEEK_END); $reader->close;
This module provides an interface to read various sound formats supported by libsndfile.
In addition to usual I/O interface, it provides direct interface to create PDL object without making a copy of data in pure-Perl space. This is an advantage on both speed and memory, and is a recommended way to manipulate sound data.
Currently supported methods are:
Constructor. Returns input stream object that reads from given source.
Also assigns header information read from the source to passed scalar reference.
Closes input stream. This object will be unusable after this method is called.
Moves next reading position to a point where specified by $offset and $whence. Note $offset is not a length in bytes, but a number of frames to skip (frame is a block of data containing data of all channels at given moment).
Return value (which should be a new position in number of frames) is currently unreliable.
Moves next reading position to a point where specified by $offset and $whence. Note $offset is not a length in bytes, but a number of blocks to skip (block is a bulk of data containing data of single channel at given moment).
Return value (which should be a new position in number of blocks) is currently unreliable.
Reads $wanted blocks of data, and stores it to $buffer as a Perl scalar. Content of $buffer is not guranteed on error.
Returns length of the data actually stored, or 0 (or lesser value) on error.
Reads $wanted blocks of data, and stores it to $buffer as a PDL object. Content of $buffer is not guranteed on error.
If you mix bseek/bread and fseek/fread, things might get confusing due to shift in internal offset - please do it with your responsibility.
Taisuke Yamada <tai@imasy.or.jp>
Copyright (C) 2001. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Audio::SoundFile, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Audio::SoundFile
CPAN shell
perl -MCPAN -e shell install Audio::SoundFile
For more information on module installation, please visit the detailed CPAN module installation guide.