stuffmatic / microdsp

DSP algorithms and utilities written in Rust. Performant, embedded friendly and no_std compatible.
MIT License
14 stars 0 forks source link
adaptive-filtering audio dsp embedded no-std novelty-detection pitch-detection rust

microdsp

Crates.io Docs.rs

microdsp is a collection of DSP algorithms and utilities written in Rust. The code is no_std compatible and suitable for use in embedded systems. Available algorithms include

To see microdsp in action on a microcontroller, check out these videos.

Installing

Add the following line to your Cargo.toml file:

microdsp = "0.1"

microdsp is no_std compatible and relies on alloc. When building for targets without a default allocator, one must be provided by the user. This can be accomplished in stable Rust 1.68 and higher using #[global_allocator] and #[default_alloc_error_handler].

Usage

See the crate documentation.

Demos

Cargo examples

The examples folder contains a number of demos that can be run with

cargo run --example [filename without .rs extension]

for example cargo run --example mpm. Some of these use rust-portaudio for real time audio input. If you run into portaudio related issues, you may find some pointers here.

Embedded

The microdsp-zephyr-demos repo contains demos showing how to do real time audio processing on a microcontroller using microdsp and Zephyr.

License

This project is released under the MIT license.