3 releases
0.1.2 | Jan 23, 2023 |
---|---|
0.1.1 | Jan 17, 2023 |
0.1.0 | Jan 15, 2023 |
#464 in Audio
31 downloads per month
66KB
1.5K
SLoC
microdsp
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
- Monophonic pitch detection using the MPM algorithm. Supports downsampling and overlapping windows.
- Audio onset detection using spectral flux novelty. Used to detect transients and "starts of sounds". Supports downsampling and overlapping windows.
- Normalized least mean squares adaptive filter. Can for example be used for signal cancellation and time delay estimation.
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
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.
Dependencies
~2MB
~94K SLoC