#audio #samplerate

samplerate

A library based on libsamplerate for converting samplerates

10 releases

Uses old Rust 2015

0.2.3 Nov 19, 2020
0.2.2 Apr 29, 2020
0.2.1 Jul 7, 2019
0.2.0 Apr 24, 2019
0.1.5 Oct 30, 2018

#53 in Audio

Download history 80/week @ 2020-08-08 23/week @ 2020-08-15 21/week @ 2020-08-22 73/week @ 2020-08-29 94/week @ 2020-09-05 75/week @ 2020-09-12 63/week @ 2020-09-19 62/week @ 2020-09-26 92/week @ 2020-10-03 54/week @ 2020-10-10 22/week @ 2020-10-17 45/week @ 2020-10-24 29/week @ 2020-10-31 38/week @ 2020-11-07 47/week @ 2020-11-14 30/week @ 2020-11-21

232 downloads per month

BSD-2-Clause

27KB
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