mirror of
https://github.com/iluvcapra/bwavfile.git
synced 2025-12-31 08:50:44 +00:00
663b9fad439dbbb6731ba37654cadc83776b4f07
bwavfile
Wave File Reader/Writer library in Rust, with Broadcast-WAV, MBWF and RF64 Support
Features
bwavfile provides a reader WaveReader and writer type WaveWriter for
reading and creating new audio files respectively.
WaveReader and WaveWriter support:
- A unified interface for standard RIFF and RF64/BW64 64-bit Wave files.
- When using
WaveWriter, wave files are transparently upgraded from RIFF to RF64 when required. - Unpacked reading and writing of Integer PCM and IEEE float audio data formats.
- A unified interface for standard
WaveFormatand extendedWaveFormatExwave data format specification. - Multichannel, surround, and ambisonic audio data description including
surround channel maps, ADM
AudioTrackFormat,AudioChannelFormatRefandAudioPackRefdata structures. - Broadcast-Wave metdata extension, including long description, originator information, SMPTE UMID and coding history.
- Reading and writing of embedded iXML and axml/ADM metadata.
- Reading and writing of timed cues and and timed cue region.
Feature Roadmap
Some features that may be included in the future include:
- Broadcast-Wave
levlwaveform overview data reading and writing. - Sampler and Instrument mentadata.
Use Examples
- blits shows how to use
WaveWriterto create a new file with BLITS alignment tones. - wave-inter uses
WaveReaderandWaveWriterto interleave several input Wave files into a single polyphonic Wave file. - wave-deinter uses
WaveReaderandWaveWriterto de-interleave an input Wave file into several monoarual Wave files.
Note on Testing
All of the media for the integration tests is committed to the respository
in zipped form. Before you can run tests, you need to cd into the tests
directory and run the create_test_media.sh script. Note that one of the
test files (the RF64 test case) is over four gigs in size.
Description
Languages
Rust
98.3%
Shell
1.7%