libdaisy-rust icon indicating copy to clipboard operation
libdaisy-rust copied to clipboard

Example Request: Low Latency Convolution

Open matt-erhart opened this issue 4 years ago • 5 comments

see http://blog.reverberate.ca/post/zero-latency-convolution/

This would be my learning project, figure other might like it too, but you could get it working much fast than me. It's useful for reverb & cabinet/mic simulation via impulse responses. I assume it's what all the impulse response (IR) guitar pedals are doing.

matt-erhart avatar Apr 04 '21 20:04 matt-erhart

I want to get some DSP functions into the library (or a separate DSP crate) eventually. Once I get the core hardware enabled and working I want to do stuff like that and other things that can be ported from the cpp version of this library.

mtthw-meyer avatar Apr 06 '21 02:04 mtthw-meyer

There are some existing crates to look at as well. For using/contributing/forking.

https://github.com/liebharc/basic_dsp

https://github.com/klangner/dsp.rs

mtthw-meyer avatar Apr 08 '21 20:04 mtthw-meyer

This is still beyond my current knowledge level. You can watch me experimenting with stuff over here https://github.com/mtthw-meyer/embedded-dsp

mtthw-meyer avatar Apr 19 '21 20:04 mtthw-meyer

Cool! Check out https://www.youtube.com/channel/UCUR_LsXk7IYyueSnXcNextQ/playlists for more info on time-frequency analysis (using convolution) in the non-real time context.

matt-erhart avatar May 03 '21 21:05 matt-erhart

This is still beyond my current knowledge level. You can watch me experimenting with stuff over here https://github.com/mtthw-meyer/embedded-dsp

Hi,

You can also check:

https://github.com/RustAudio/dasp

How can we create a variable to store the dsp engine?

I try to create the DSP instance during #[init], then return it to [local]:

let oscillator = SinOsc::new(440.0);
Local {
   oscillator
}

But in the audio_handler:

let s = oscillator.next();
audio.push_stereo((s, s)).unwrap();

No sound is played.

chaosprint avatar Oct 20 '22 08:10 chaosprint