#file-format #file-io #file

wav

This project is no longer maintained (and wasn’t a very well implemented project to begin with), use hound instead

10 releases (2 stable)

new 1.0.1 May 18, 2024
1.0.0 May 15, 2021
0.6.0 Mar 5, 2021
0.5.0 Dec 20, 2020
0.3.0 Mar 14, 2020

#159 in Audio

Download history 6250/week @ 2024-01-27 5870/week @ 2024-02-03 7610/week @ 2024-02-10 6606/week @ 2024-02-17 5998/week @ 2024-02-24 5457/week @ 2024-03-02 5810/week @ 2024-03-09 7504/week @ 2024-03-16 6766/week @ 2024-03-23 8608/week @ 2024-03-30 9460/week @ 2024-04-06 10326/week @ 2024-04-13 10522/week @ 2024-04-20 12116/week @ 2024-04-27 12458/week @ 2024-05-04 9584/week @ 2024-05-11

46,780 downloads per month
Used in 46 crates (26 directly)

LGPL-3.0

540KB
547 lines

WAV

⚠️ THIS PROJECT IS NO LONGER MAINTAINED, USE hound INSTEAD ⚠️

This is a crate for reading in and writing out wave files. It supports uncompressed PCM bit depths of 8, 16, 24 bits, and 32bit IEEE Float formats, both with any number of channels. Unfortunately other types of data format (e.g. compressed WAVE files) are not supported. There is also no support for any metadata chunks or any chunks other than the "fmt " and "data" chunks.

Example

use std::fs::File;
use std::path::Path;

let mut inp_file = File::open(Path::new("data/sine.wav"))?;
let (header, data) = wav::read(&mut inp_file)?;

let mut out_file = File::create(Path::new("data/output.wav"))?;
wav::write(header, &data, &mut out_file)?;

lib.rs:

This is a crate for reading in and writing out wave files. It supports uncompressed PCM bit depths of 8, 16, 24 bits, and 32bit IEEE Float formats, both with any number of channels. Unfortunately other types of data format (e.g. compressed WAVE files) are not supported. There is also no support for any metadata chunks or any chunks other than the "fmt " and "data" chunks.

Example

use std::fs::File;
use std::path::Path;

let mut inp_file = File::open(Path::new("data/sine.wav"))?;
let (header, data) = wav::read(&mut inp_file)?;

let mut out_file = File::create(Path::new("data/output.wav"))?;
wav::write(header, &data, &mut out_file)?;

Dependencies