[−][src]Crate bwavfile
bwavfile
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.)
Objectives and Roadmap
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
- FFMpeg
- Audacity
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
chna
mappings) - 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.
Resources
Implementation of Broadcast Wave Files
- 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
Implementation of 64-bit Wave Files
- 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.
Implementation of Wave format fmt
chunk
Other resources
- 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
Formatting of Specific Metadatums
- iXML Metadata Specification (April 2019)
- EBU 3285 Supplements:
- Supplement 2 (July 2001): Quality chunk and cuesheet
- Supplement 3 (July 2001): Peak Metadata
- Supplement 4 (April 2003): Link Metadata
- Supplement 5 (May 2018): ADM Metadata
- Supplement 6 (October 2009): Dolby Metadata
- 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"
Structs
AudioFrameReader | Read audio frames |
Bext | Broadcast-WAV metadata record. |
ChannelDescriptor | Describes a single channel in a WAV file. |
WaveFmt | WAV file data format record. |
WaveFmtExtended | Extended Wave Format |
WaveReader | Wave, Broadcast-WAV and RF64/BW64 parser/reader. |
Enums
CommonFormat | Sample format of the Wave file. |
Error | Errors returned by methods in this crate. |