11 releases

Uses old Rust 2015

0.2.4 Jan 14, 2021
0.2.3 Nov 19, 2020
0.2.2 Apr 29, 2020
0.2.1 Jul 7, 2019
0.1.5 Oct 30, 2018

#189 in Audio

Download history 3180/week @ 2023-12-17 4452/week @ 2023-12-24 2795/week @ 2023-12-31 3318/week @ 2024-01-07 3294/week @ 2024-01-14 3173/week @ 2024-01-21 3695/week @ 2024-01-28 5566/week @ 2024-02-04 3801/week @ 2024-02-11 1766/week @ 2024-02-18 2266/week @ 2024-02-25 2715/week @ 2024-03-03 2917/week @ 2024-03-10 4425/week @ 2024-03-17 4631/week @ 2024-03-24 3585/week @ 2024-03-31

15,939 downloads per month
Used in 4 crates

BSD-2-Clause

28KB
482 lines

Samplerate

Build Status Docs

A samplerate conversion library for Rust. This library provides a high-level API for libsamplerate-sys and hence is built on top of libsamplerate.

Example

extern crate samplerate;
extern crate hound;

use samplerate::{convert, ConverterType};
use hound::{WavSpec, WavWriter, SampleFormat};

fn main() {
    // Generate a 880Hz sine wave for 1 second in 44100Hz with one channel.
    let freq = std::f32::consts::PI * 880f32 / 44100f32;
    let input: Vec<f32> = (0..44100 * 5).map(|i| (freq * i as f32).sin()).collect();

    // Resample the input from 44100Hz to 48000Hz.
    let resampled = convert(44100, 48000, 1, ConverterType::SincBestQuality, &input).unwrap();

    // Write the resampled pcm data to disk.
    let mut writer = WavWriter::create("resampled.wav", WavSpec {
        channels: 1,
        sample_rate: 48000,
        bits_per_sample: 32,
        sample_format: SampleFormat::Float,
    }).unwrap();
    resampled.iter().for_each(|i| writer.write_sample(*i).unwrap());
}

Dependencies

~4MB