#signal-processing #digital-signal-processing #analysis #magnitude #generate

dasp-rs

A crate for digital signal processing, speech processing, music analysis, and phonetics

1 unstable release

Uses new Rust 2024

new 0.1.0 Mar 13, 2025

#618 in Audio

CC-BY-NC-4.0

215KB
3K SLoC

DASP-RS

dasp-rs is a Rust crate for digital audio signal processing.


lib.rs:

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 or items:

[dependencies]
dasp-rs = "0.1.0"
use dasp-rs::get_duration;
let audio = dasp-rs::audio_io::load("example.wav", None, None, None, None).unwrap();
let duration = get_duration(&audio);
println!("Duration: {} seconds", duration);

Modules

See the individual module documentation for detailed information on available functionality.

Dependencies

~66MB
~863K SLoC