Skip to main content

Crate dasp_rs

Crate dasp_rs 

Source
Expand description

§DASP-RS: Digital Audio Signal Processing in Rust

DASP-RS provides a collection of tools and utilities for audio signal processing, analysis, and generation. It includes functionality for handling audio input/output, performing signal transformations, generating synthetic signals, extracting audio features, working with magnitude spectra, and pitch-related operations. The library is designed to be modular and extensible, leveraging Rust’s performance and safety features.

§Key Features

  • Audio I/O: Loading and saving audio files with flexible options.
  • Signal Processing: Time-frequency transforms (e.g., STFT, CQT) and filtering.
  • Signal Generation: Creating synthetic waveforms and noise.
  • Feature Extraction: Computing audio features like tempo, pitch, and spectral properties.
  • Magnitude Operations: Manipulating and analyzing magnitude spectra.
  • Pitch Utilities: Converting between frequency, MIDI, and musical notations.
  • Utilities: General-purpose functions for audio analysis and conversion.

§Usage

To use this library, add it to your Cargo.toml and import the desired modules:

[dependencies]
dasp-rs = "0.2.0"
// Option 1: Use prelude for convenience
use dasp_rs::prelude::*;
 
let audio = Decoder::from("example.wav")
    .sample_rate(22050)
    .mono()
    .load()?;
 
let duration = get_duration(&audio);
println!("Duration: {} seconds", duration);
// Option 2: Explicit imports for clarity
use dasp_rs::{types::AudioData, io::{Decoder, export}, util::get_duration};
 
let audio = Decoder::from("example.wav")
    .sample_rate(22050)
    .mono()
    .load()?;
 
let duration = get_duration(&audio);
println!("Duration: {} seconds", duration);

§API Structure

The API is organized by concern for clarity and discoverability:

  • prelude - Convenient imports for common use cases
  • types - Core audio data types (AudioData, AudioError)
  • io - Audio input/output operations
  • proc - Signal processing algorithms
  • feat - Audio feature extraction
  • util - Utility functions
  • pitch - Pitch detection and conversion
  • mag - Magnitude spectrum operations
  • generate - Signal generation

Modules§

feat
Audio feature extraction
generate
Signal generation
io
Audio input/output operations
mag
Magnitude spectrum operations
pitch
Pitch detection and conversion
prelude
Prelude module for convenient imports.
proc
Signal processing algorithms
types
Core audio data types
util
Utility functions