Skip to content

Tags: ruuda/hound

Tags

v3.5.1

Toggle v3.5.1's commit message

Verified

This tag was signed with the committer’s verified signature.
ruuda Ruud van Asseldonk
Hound version 3.5.1

**Compatibility**:

 * Ensures compatibility with Rust 1.40.0 through 1.72.1. This bumps the
   minimum supported Rust version from 1.16 to 1.40.

Changes:

 * Soundness: Wrap writes to uninitialized memory in `mem::MaybeUninit`.
   The unsoundness was present in all versions since 0.2.0. There is no
   evidence that rustc took advantage of the unsoundness to compile
   programs in a problematic way.

Thanks to Cam Lloyd for originally contributing these changes, and
thanks to Maxwell McKinnon for rebasing them on top of 3.5.0.

v3.5.0

Toggle v3.5.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.5.0

This is a maintenance release that includes most of the bugfixes and
features that have been contributed since 3.4.0, which could be
cherry-picked on top of 3.4.0. Some other contributions with more
far-reaching changes remain unreleased as of yet.

**Compatibility**:

 * Ensures compatibility with Rust 1.16 through 1.63 stable. Previously
   the minimum supported Rust version was 1.4. Cargo from 1.4 is no
   longer compatible with the current crates.io registry, and Rustup
   fails signature verification for these binaries, so it is infeasible
   to continue to support it.

New features:

 * Add support for `S24_LE` files, which store 24 bits in 4 bytes
   (#40, #41)
 * Add `WavWriter::new_with_spec_ex` (#42)
 * Add `WavSpec::into_header_for_infinite_file` (#33, #36)

Bugfixes and compatibility improvements:

 * Handle files that have the `wValidBitsPerSample` field set to zero
   (#50, #51)
 * Avoid overflow in the channel mask when writing file with more than
   32 channels (#59, #60)

Many thanks to Diffuse, Fletcher Woodruff, Matt Wilkinson, Vitaly Vi
Shukela, and Tuckerrrrrrrrrr for contributing to this release.

v3.4.0

Toggle v3.4.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.4.0

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,
  and WavWriter::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(), and WavWriter::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 return Error::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.

v3.3.1

Toggle v3.3.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound versin 3.3.1

Release highlights:

- Hound now reads certain WAVEFORMATEX files that were previously
  rejected incorrectly.
- Ensures compatibility with Rust 1.4 through 1.24 stable.

v3.3.0

Toggle v3.3.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.3.0

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.

v3.2.0

Toggle v3.2.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.2.0

Release highlights:

- Hound will now write the older WAVEFORMATEX 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.

v3.1.0

Toggle v3.1.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.1.0

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.

v3.0.1

Toggle v3.0.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.0.1

This release fixes a few bugs discovered through fuzzing.

- 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.

v3.0.0

Toggle v3.0.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 3.0.0

This release focuses on improving write performance. Highlights:

- The header is now written when a `WavWriter` is constructed, therefore
  the constructor now returns a `Result`. This is a breaking change.
- `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.

v2.0.0

Toggle v2.0.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
ruuda Ruud van Asseldonk
Hound version 2.0.0

Release highlights:

- Ensures compatibility with Rust 1.4 through 1.10.
- Support for Rust 1.0 through 1.3 has been dropped.
- Adds support for reading files with 32-bit IEEE float samples.

Apart from requiring a newer Rust version, this release includes a minor
breaking change: the `WavSpec` struct gained a new `sample_format`
member. To upgrade, add `sample_format: hound::SampleFormat::Int` to
places where a `WavSpec` is constructed.

Many thanks to Mitchell Nordine for his contributions to this release.