write_wav_to_file_path

Function write_wav_to_file_path 

Source
pub fn write_wav_to_file_path(
    file_path: &Path,
    header: WavHeader,
) -> Result<OpenWavWriter>
Expand description

Starts writing a wav to a Path. Returns an OpenWavWriter struct that is used to write the contents of the wav

§Arguments

  • ‘file_path’ - The path to where the wav will be written
  • ‘header’ - The header information in the wav. This specifies things like sampling rate, sample bit depth, ect

§Examples

use std::path::Path;

use wave_stream::samples_by_channel::SamplesByChannel;
use wave_stream::wave_header::{Channels, SampleFormat, WavHeader};
use wave_stream::{read_wav_from_file_path, write_wav_to_file_path};

let header = WavHeader {
    sample_format: SampleFormat::Float,
    channels: Channels {
            front_left: true,
            front_right: true,
            front_center: false,
            low_frequency: false,
            back_left: false,
            back_right: false,
            front_left_of_center: false,
            front_right_of_center: false,
            back_center: false,
            side_left: false,
            side_right: false,
            top_center: false,
            top_front_left: false,
            top_front_center: false,
            top_front_right: false,
            top_back_left: false,
            top_back_center: false,
            top_back_right: false,
        },
    sample_rate: 96000,
};
let mut open_wav = write_wav_to_file_path(Path::new("some.wav"), header).unwrap();
let mut writer = open_wav.get_random_access_f32_writer().unwrap();

// Sample 0
writer.write_samples(0, SamplesByChannel {
            front_left: Some(0.0),
            front_right: Some(0.0),
            front_center: None,
            low_frequency: None,
            back_left: None,
            back_right: None,
            front_left_of_center: None,
            front_right_of_center: None,
            back_center: None,
            side_left: None,
            side_right: None,
            top_center: None,
            top_front_left: None,
            top_front_center: None,
            top_front_right: None,
            top_back_left: None,
            top_back_center: None,
            top_back_right: None,
        }).unwrap();

// Sample 1
writer.write_samples(1, SamplesByChannel {
            front_left: Some(0.0),
            front_right: Some(0.0),
            front_center: None,
            low_frequency: None,
            back_left: None,
            back_right: None,
            front_left_of_center: None,
            front_right_of_center: None,
            back_center: None,
            side_left: None,
            side_right: None,
            top_center: None,
            top_front_left: None,
            top_front_center: None,
            top_front_right: None,
            top_back_left: None,
            top_back_center: None,
            top_back_right: None,
        }).unwrap();

// Sample 2
writer.write_samples(2, SamplesByChannel {
            front_left: Some(0.0),
            front_right: Some(0.0),
            front_center: None,
            low_frequency: None,
            back_left: None,
            back_right: None,
            front_left_of_center: None,
            front_right_of_center: None,
            back_center: None,
            side_left: None,
            side_right: None,
            top_center: None,
            top_front_left: None,
            top_front_center: None,
            top_front_right: None,
            top_back_left: None,
            top_back_center: None,
            top_back_right: None,
        }).unwrap();

writer.flush().unwrap();