Released 2018-04-07.
Breaking changes:
- None.
Release highlights:
- Exposes
read_wave_header()
, to quickly determine whether a file could be a wav file. - Adds support for appending to an existing file. See
WavWriter::append()
for constructing a writer that appends to a file, andWavWriter::new_append()
for the generic case. - Adds
WavWriter::flush()
to flush the underlying writer and update the header. This can be used to minimize data loss when writing a large file. - Adds
WavWriter::duration()
,WavWriter::len()
, andWavWriter::spec()
to obtain the duration and number of samples written so far, and the spec of the file being written. The latter is useful when appending. - Hound now fails earlier when requesting to write an unsupported spec:
WavWriter::new()
will already returnError::Unsupported
. Previously this error was returned when writing a sample. - Hound now verifies that the data chunk has no trailing bytes.
WavWriter::finalize()
now performs a flush as its last operation, to be able to observe errors when using a buffered writer.- Ensures compatibility with Rust 1.4 through 1.25 stable.
Released 2018-02-18.
Breaking changes:
- None.
Release highlights:
- Hound now reads certain WAVEFORMATEX files that were previously rejected incorrectly.
- Ensures compatibility with Rust 1.4 through 1.24 stable.
Released 2017-12-02.
Breaking changes:
- None.
Release highlights:
- Hound now supports seeking to a particular time in the file.
See
WavReader::seek()
. - Ensures compatibility with Rust 1.4 through 1.22 stable.
Many thanks to Mitchell Nordine for contributing to this release.
Released 2017-10-14.
Breaking changes:
- None.
Release highlights:
- Hound will now write the older PCMWAVEFORMAT format whenever possible, rather than the newer WAVEFORMATEXTENSIBLE, to improve compatibility.
- Certain nonstandard files (produced among others by “Pro Tools”) can now be read.
- Ensures compatibility with Rust 1.4 through 1.21 stable.
Many thanks to Denis Kolodin for contributing to this release.
Released 2017-04-09.
Breaking changes:
- None.
Release highlights:
- Support for writing IEEE float was added.
- The cpal example was updated, and it now compiles on OS X.
- An OS X target was added to the CI configuration.
- Ensures compatibility with Rust 1.4 through 1.16 stable.
Many thanks to Alex Zywicki for contributing to this release.
Released 2017-04-01.
This release fixes a few bugs discovered through fuzzing.
Breaking changes:
- None.
Release highlights:
- Fixes high memory usage issue that could occur when reading unknown blocks.
- Resolve various division by zero and arithmetic overflow errors.
- Ensures compatibility with Rust 1.4 through 1.16 stable.
Released 2016-11-27.
This release focuses on improving write performance.
Breaking changes:
- When a
WavWriter
is constructed, the header is now written immediately, therefore the constructor now returns aResult
.
Other changes:
WavWriter
no longer maintains a buffer internally.WavWriter::create()
does still wrap the file it opens in a buffered writer.- Adds
SampleWriter16
for fast writing of 16-bit samples. Dedicated writers for other bit depths might be added in future releases.
Upgrading requires dealing with the Result
in WavWriter::new()
and WavWriter::create()
. In many cases this should be as simple as
wrapping the call in a try!()
, or appending a ?
on recent versions
of Rust.
Released 2016-07-31.
Breaking changes:
- Support for Rust 1.0 through 1.3 has been dropped.
- The
WavSpec
struct gained a newsample_format
member. To upgrade, addsample_format: hound::SampleFormat::Int
to places where aWavSpec
is constructed.
Release highlights:
- Ensures compatibility with Rust 1.4 through 1.10.
- Adds support for reading files with 32-bit IEEE float samples.
Many thanks to Mitchell Nordine for his contributions to this release.
Released 2015-09-14.
Release highlights:
- New
WavReader::into_inner
method for consistency with the standard library. - New
WavReader::into_samples
method for ergonomics and consistency. - Ensures compatibility with Rust 1.4.
Many thanks to Pierre Krieger for his contributions to this release.
Released 2015-07-21.
This is the first stable release of Hound. Only small changes have been made with respect to v0.4.0. Release highlights:
WavWriter::create
now wraps the writer in aBufWriter
.WavSamples
now implementsExactSizeIterator
.WavReader::spec
now returns the spec by value.- Internal cleanups
Released 2015-05-16.
Release highlights:
- Works with Rust 1.0.0.
- Hound can now read and write files with 8, 16, 24, or 32 bits per sample.
- Better error reporting
- Improved documentation
- An improved test suite
Released 2015-05-05.
Release highlights:
- Hound can now read WAVEFORMATEXTENSIBLE, so it can read the files it writes.
- Hound can now read files with PCMWAVEFORMAT and WAVEFORMATEX header.
- Hound now uses a custom error type.
- New convenient filename-based constructors for
WavReader
andWavWriter
. - More examples
- An improved test suite
Released 2015-04-09.
This version adds support for decoding wav files in addition to writing them.
Released 2015-04-01.
Initial release with only write support.