I'm new to audio processing and dealing with data that's being streamed in real-time. What I want to do is:
- listen to a built-in microphone
- chunk together samples into 0.1second chunks
- convert the chunk into a periodogram via the short-time Fourier transform (STFT)
- apply some simple functions
- convert back to time series data via the inverse STFT (ISTFT)
- play back the new audio on headphones
I've been looking around for "real time spectrograms"
to give me a guide on how to work with the data, but no dice. I have, however, discovered some interesting packages, including PortAudio.jl
, DSP.jl
and MusicProcessing.jl
.
It feels like I'd need to make use of multiprocessing techniques to just store the incoming data into suitable chunks, whilst simultaneously applying some function to a previous chunk, whilst also playing another previously processed chunk. All of this feels overcomplicated, and has been putting me off from approaching this project for a while now.
Any help will be greatly appreciated, thanks.