no_std
digital low pass filter libraryThis is a no_std
Rust library for simple digital low pass filters. You can use it for example to
get the low frequencies from a song.
I'm not an expert on digital signal processing. Code contributions are highly welcome! :)
```rust use audiovisualizer::waveform::staticc::pngfile::waveformstaticpngvisualize; use lowpassfilter::{ChannelInterleavement, Channels}; use lowpassfilter::simple::sp::applylpfi16sp;
/// Minimal example how to use this crate/how to apply low pass filter. fn main() { // read this from MP3 for example let audiodatalrlr = [0_i16, 1, -5, 1551, 141, 24];
// split into left and right channel
let (mut left, mut right) = Channels::Stereo(ChannelInterleavement::LRLR)
.stereo_interleavement()
.to_channel_data(&audio_data_lrlr);
// left
apply_lpf_i16_sp(&mut left, 44100, 120);
// right
apply_lpf_i16_sp(&mut right, 44100, 120);
// visualize effect as waveform in a PNG file
waveform_static_png_visualize(
&left,
Channels::Mono,
"test/out",
"example_waveform_lowpassed_left.png",
);
waveform_static_png_visualize(
&right,
Channels::Mono,
"test/out",
"example_waveform_lowpassed_right.png",
);
} ```