State of Audio DSP & Feature Extraction in Julia: Gaps, Priorities, and Future Directions

Hey everyone,
​I’ve been exploring signal processing in Julia and working on some basic DSP and communications tools. As I look into expanding toward audio signal processing, Music Information Retrieval (MIR), and feature extraction, I wanted to check in with the community regarding the current state of the ecosystem and where the most meaningful gaps lie.
​Looking at the existing landscape, we have solid foundational I/O and streaming types in the JuliaAudio organization (SampledSignals.jl, PortAudio.jl, LibSndFile.jl) alongside DSP.jl. However, higher-level toolkits specifically modern native counterparts to Python’s librosa / torchaudio or C++'s Essentia for feature extraction (MFCCs, CQT/VQT, chromagrams, pitch/onset tracking) and real-time DSP nodes seem either fragmented or unmaintained.
​Before committing to a larger open-source project in this space, I’d love to gather thoughts from folks working with audio in Julia:
​Current Workflows: What packages or custom setups are you currently using for audio feature extraction, MIR, or real-time audio manipulation in Julia? Do you find yourself wrapping C++/Python libraries via CxxWrap or PythonCall?
​Key Friction Points: What specific transforms, psychoacoustic models, or audio block abstractions do you consistently find missing or awkward to implement in pure Julia?
​Julia’s Unique Advantage: Where does Julia offer a clear competitive edge over established C++ and Python tools in the audio domain (e.g., zero-allocation real-time pipelines without GC pauses, differentiable DSP via AD engines, or native GPU feature extraction)?
​Strategic Focus: From a practical standpoint, do you feel there is sufficient demand in the community to justify building a dedicated, unified audio DSP/feature-extraction framework in Julia? If so, which direction would yield the highest return on effort (e.g., offline MIR & ML feature pipelines, real-time live audio processing graphs, or differentiable/GPU audio primitives)?
​Looking forward to hearing your thoughts, current workarounds, and ideas!
Thanks
-JB

Thanks for this initiative! I’ll stop on the third sentence and mention that it would be great to have better support for different file formats. Support for MP3 exists but is not maintained and not part of the General registry. And I couldn’t find support for .m4a (is there?).

I guess, both m4a and wav can be used interchageably having the same loseless formats, you can convert it’s a trivial method but I have to check it out myself!

Hey!

Thanks for raising this topic. I am not a professional audio developer nor a researcher in this field. However, I have maintained a keen interest in audio related area as a hobby for several years. I’m writing from a user perspective, like reproduction of audio waves.

I would like to ask, is it possible to play a waveform (WAV) file at standard or high-resolution sampling frequencies, with a specific focus on ultra-low latency and jitter?

I’m wondering how far Julia can go in the realm of low-latency, low-jitter music reproduction. Which packages and operating systems would you recommend? Are there any tricks to streamline the process? I’m not that much into DSP as for now, my focus is to reproduce audio data with minimal interference.

P.S. In addition to SampledSignals.jl, PortAudio.jl, LibSndFile.jl and DSP.jl, I think it’s worth adding WaveFlow.jl (developed by @Gesee) to the list.