Reading audio from system output

I have no idea, I’ve never even heard of that app.

Windows WASAPI has a loopback mode :

https://docs.microsoft.com/en-us/windows/desktop/coreaudio/loopback-recording

But adding support for that in JUCE might be a bit iffy since an equivalent apparently doesn’t exist on macOs. (I don’t know about Linux.)

Ah yes, that’s it. Well, bummer about MacOS but I still request this for Windows if possible! I’m sure a lot of users would want it!

Here is an open source project for macOS that does it. The downside is it is a kernel extension, and kernel extensions are now required to be signed or users can’t load them. And getting a kernel extension signing key, you need to tell Apple what you are going to do with you extension and why and then wait 6+ months.

Is there any chance that WASAPI loopback recording will be supported? I know there’s no macOS alternative but it would be a useful feature in Windows. It’s for example implemented in Reaper.

Here’s an example implementation with code:



I haven’t found any license mentioned but the general implementation seems to be not to complicated.

1 Like

With Windows virtual sound driver structure like https://www.vb-audio.com/Voicemeeter/index.htm
it is easy to capture each sound output from any program.

I could probably also use reaper to capture the audio and then send it to my application using ReaASIO. But this is not the point.

Windows supplies a feature to directly capture the current audio output. My question simply is whether this will be supported in JUCE.

Any comments from the JUCE team regarding support for WASAPI loopback recording?

Maybe this is such a ridiculous request that it doesn’t deserve an answer. If so, I’m afraid I don’t see it. Please let me know.

My guess is that it will not be supported. It would be a Windows-only feature that would add even more complexity to the WASAPI-implementation in JUCE.

Yeah, sorry for not replying. It’s an understandable FR and not ridiculous, but not being very cross-platform or widely requested it’s not really something we’d prioritise. If it was easy we might consider it, but to figure out a clean, portable way to present this kind of thing and then implement it on the few platforms that support it would involve quite a bit of research.

Thanks for the reply, Jules. I’ll have a look for an implementation myself than. That is, if I find some time.

Bump!
Has the situation evolved this last two years?
I would definitely use this feature if it was available.
(I want to throw audio-out thru speech-reco).

2 votes so far Windows WASAPI Loopback, I doubt there’s going to be any progress made here.

In the meantime I’m trying to implement it with miniaudio library with moderate success. Got the loopback working. But stopping and opening a new device ends up in an infinite “wait for an object” loop. I reckon it might be conflicting with what’s going on with JUCE’s WASAPI back end at that moment.

1 Like

If anyone is still looking for a solution, I can upload a Projucer project based on the JUCE AudioRecordingDemo with WASAPI Loopback recording implemented using miniaudio library.

3 Likes

Yes please I need it

Here you go:
LoopbackRecordingDemo.zip (26.3 KB)

3 Likes

thanks

I want do process(volume up, down etc.) on both system audio and our input audio, how or where can i do that with this program

This is a general question, unrelated to the topic and to the demo project I posted.
But you do your processing and volume manipulation on audio buffer in a processing block. If I recall correctly, in the LoopbackRecordingDemo it’s in the AudioRecorder class.

1 Like