Rust Wave File Reader/Writer with Broadcast-WAV, MBWF and RF64 Support
(Note: This crate is still in an alpha or pre-alpha stage of development. Reading of files works however the interfaces may change significantly. Stay up-to-date on the status of this project at Github.)
This package aims to support read and writing any kind of WAV file you are likely to encounter in a professional audio, motion picture production, broadcast, or music production.
Apps we test against:
- Avid Pro Tools
Wave features we want to support with maximum reliability and ease of use:
- Large file size, RF64 support
- Multichannel audio formats
- Embedded metadata
In addition to reading the audio, we want to support all of the different metadata planes you are liable to need to use.
- Broadcast-WAV metadata (including the SMPTE UMID and EBU v2 extensions)
- iXML Production recorder metadata
- ADM XML (with associated
- Dolby metadata block
Things that are not necessarily in the scope of this package:
- Broad codec support. There are a little more than one-hundred registered wave codecs, but because this library is targeting professional formats being created today, we only plan on supporting two of them: tag 0x0001 (Integer Linear PCM) and tag 0x0003 (IEEE Float Linear PCM).
- Music library metadata. There are several packages that can read ID3 metadata and it's not particuarly common in wave files in any case. INFO metadata is more common though in professional applications it tends not to be used by many applications.
- EBU Tech 3285 (May 2011), "Specification of the Broadcast Wave Format (BWF)"
- Supplement 1 (July 1997): MPEG Audio
- EBU Rec 68: Signal modulation and format constraints
- ITU-R 2088 (October 2019), "Long-form file format for the international exchange of audio programme materials with metadata"
- Presently in force, adopted by the EBU in EBU Tech 3306v2 (June 2018).
- EBU Tech 3306v1 (July 2009), "MBWF / RF64: An extended File Format for Audio"
- No longer in force, however long-established.
- RFC 3261 (June 1998) "WAVE and AVI Codec Registries"
- Peter Kabal, McGill University
- Multimedia Programming Interface and Data Specifications 1.0 (August 1991), IBM Corporation and Microsoft Corporation
- iXML Metadata Specification (April 2019)
- EBU 3285 Supplements:
- EBU Tech R099 (October 2011) "‘Unique’ Source Identifier (USID) for use in the
field of the Broadcast Wave Format"
- EBU Tech R098 (1999) "Format for the
field in Broadcast Wave Format files, BWF"
Read audio frames
Broadcast-WAV metadata record.
Describes a single channel in a WAV file.
WAV file data format record.
Extended Wave Format
Wave, Broadcast-WAV and RF64/BW64 parser/reader.
Sample format of the Wave file.
Errors returned by methods in this crate.