Processing audio streams in Julia

I’m looking for a way to process audio streams in Julia. Specifically I’d like to be able to open up a stream from web radio stations and do some machine learning on the data stream.

It looks like AudioIO.jl used to be the way this was done, but it’s deprecated. There’s MusicProcessing.jl but it appears to also be deprecated (there’s a note on an issue saying it probably won’t work with Julia 1.0+). There’s PortAudio.jl, but it also seems not to work with Julia 1.0+. Then again, I’m not sure that any of those would actually work with audio streamed over the internet.

PortAudio.jl hasn’t had a release in a long time, but if you install from master with add https://github.com/JuliaAudio/PortAudio.jl, it does seem to work. Unfortunately, on Linux, it expects to directly access the ALSA devices, so if you have Pulseaudio installed by your distribution you will have to disable that and give exclusive control of the hardware to PortAudio.

WAV.jl has a wrapper for Pulseaudio inside it, but it would need some work or real-time processing.