samplerate-rs 0.1.0

A fork of the samplerate crate that uses the pure C2Rust transpiled version of libsamplerate
Documentation
  • Coverage
  • 32.2%
    19 out of 59 items documented2 out of 25 items with examples
  • Size
  • Source code size: 36.82 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 3.07 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 34s Average build duration of successful builds.
  • all releases: 34s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • MeadowlarkDAW/samplerate-rs
    1 1 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • BillyDM

Samplerate-rs

Docs

A samplerate conversion library for Rust.

This is a fork of the samplerate crate the uses the pure C2Rust transpiled version of libsamplerate in place of the bindings to the C library. This allows compilation without needing to have CMake installed.

Example

extern crate samplerate;
extern crate hound;

use samplerate_rs::{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());
}