| Crates.io | ridgeline |
| lib.rs | ridgeline |
| version | 0.2.0 |
| created_at | 2021-09-29 22:06:19.248965+00 |
| updated_at | 2021-10-01 19:56:14.747063+00 |
| description | Simple frequency spectrum analysis |
| homepage | |
| repository | https://github.com/kaikalii/ridgeline |
| max_upload_size | |
| id | 458403 |
| size | 41,473 |
Ridgeline is a crate for simplifying frequency spectrum analysis of streamed signals.
For more information, check out the documentation.
The SignalSource trait defines behavior for a signal. SystemAudio is a
SignalSource implementation that streams audio samples from a system audio device.
Spectrometer is an iterator that wraps a SignalSource and yields Spectrums.
Spectrum contains frequency data for a signal at a single point in time.
The aplitude of a given frequency can be queried with Spectrum::amplitude.
use std::{thread::sleep, time::Duration};
use ridgeline::*;
// Stream audio from the default input device
let audio_input = SystemAudio::from_default_device().unwrap();
// Create a `Spectrometer` from the audio input stream with 5000 FFT buckets
// The actual FFT buffer uses SIZE * 2 buckets, but only the lower half is usable
let spectrometer = audio_input.analyze::<5000>();
// Print the frequency with the highest amplitude
for spectrum in spectrometer {
println!("{} Hz", spectrum.dominant());
sleep(Duration::from_millis(10));
}