21
submitted 4 months ago by fil@programming.dev to c/rust@programming.dev

I've needed to detect a frequency of an audio signal a couple of times in my life, but I cannot for the love of me remember what does the FFT output actually mean. So I took this knowledge out of my latest project and packed it up in this crate.

Also this is my first potentially useful published crate, so if I missed anything, please let me know!

you are viewing a single comment's thread
view the rest of the comments
[-] anton@lemmy.blahaj.zone 3 points 4 months ago

The new version seems to fix that since your comment was written, but it will stil panics if less than 2 samples are provided, unless the crate it wraps panics at an earlier point.

let peak = buf
            .iter()
            .copied()
            .enumerate()
            .take(self.sample_count / 2)
            .max_by_key(|(_, s)| (s.abs() * 1000.0) as u32)
            .expect("to have at least 1 sample");
[-] BB_C@programming.dev 3 points 4 months ago

You should have mentioned OP.

@fil

[-] fil@programming.dev 2 points 4 months ago

Excellent catch! Added validation for the new params

this post was submitted on 22 Jun 2024
21 points (95.7% liked)

Rust

5989 readers
60 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS