Rust: no_std
digital low pass filter library
This 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! :)
How to use
use audio_visualizer::waveform::staticc::png_file::waveform_static_png_visualize;
use lowpass_filter::{ChannelInterleavement, Channels};
use lowpass_filter::simple::sp::apply_lpf_i16_sp;
fn main() {
let audio_data_lrlr = [0_i16, 1, -5, 1551, 141, 24];
let (mut left, mut right) = Channels::Stereo(ChannelInterleavement::LRLR)
.stereo_interleavement()
.to_channel_data(&audio_data_lrlr);
apply_lpf_i16_sp(&mut left, 44100, 120);
apply_lpf_i16_sp(&mut right, 44100, 120);
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",
);
}
Visual Examples
#1: Original Waveform of a short sample
#1: Lowpassed Waveform
#2: Original Waveform of a song
#2: Lowpassed Waveform
#2: 3x Lowpassed Waveform