If the hardware supports a loopback pin on the render endpoint, WASAPI uses the audio provided on this pin for the loopback stream. The implementation of loopback by WASAPI depend on the capabilities of the hardware. Exclusive-mode streams cannot operate in loopback mode.
In Windows 10 versions 1703 and higher, event-driven loopback clients are supported, and no longer need the workaround involving the render stream.Ī client can enable loopback mode only for a shared-mode stream (AUDCLNT_SHAREMODE_SHARED). Each time the client receives an event for the render stream, it must signal the capture client to run the capture thread that reads the next set of samples from the capture endpoint buffer. To work around this, initialize a render stream in event-driven mode. In versions of Windows prior to Windows 10 1703, pull-mode capture client does not receive any events when a stream is initialized with event-driven buffering and is loopback-enabled.
In the code example in Capturing a Stream, the RecordAudioStream function can be easily modified to configure a loopback-mode capture stream. However, other types of audio applications might find loopback mode useful for capturing the system mix that is being played by the audio engine. WASAPI provides loopback mode primarily to support acoustic echo cancellation (AEC). Initialize a capture stream in loopback mode on the rendering endpoint device.Īfter following these steps, the client can call the IAudioClient::GetService method to obtain an IAudioCaptureClient interface on the rendering endpoint device.Obtain an IMMDevice interface for the rendering endpoint device.To open a stream in loopback mode, the client must: As always you can reach out to with additional questions about this process, or anything else tech related to your show at Phill圜AM.In loopback mode, a client of WASAPI can capture the audio stream that is being played by a rendering endpoint device. We’ve got a whole tutorial on advanced screensharing for clip playback in Streamyard using VLC so be sure to check that out if you're going to use this audio loopback for Streamyard. VLC Player is a program that you can set audio outputs for independently which is extremely useful for screensharing video clips into Streamyard without messing up the rest of your sound. Instead, leave Zoom/Streamyard feeding directly to your headphones and set either the system overall, or the specific application you’re sharing, to output to that Multi-output device. This is because you would wind up sending everyone on the call their own audio right back on a slight delay and that will really mess with them. For one, you’re pretty much never going to want to set your Zoom or Streamyard speakers to that Multi-output device or to the VB-Cable directly.
So that’s the bulk of it! There a few more issues to be aware of though.
It’s called VB-Cable Virtual Audio and you can find the download page by clicking here. So let’s turn to a program that’s free, works on Macs and PCs and installs safely with just a few clicks.
Soundflower has been the gold standard for years, but it’s Mac only and if you try to install it these days you have to override Mac’s newest security guidelines just to trick it into installing. There’s even one that’s actually called " Loopback" but it costs quite a bit of money, so let’s ignore that one. That’s where installing a third party loopback application comes in handy. Streamyard also has a solution but it only works with Chrome tabs, so if you need to share sound from another program (like say Premiere for a tutorial!) you’re out of luck. Zoom has their own proprietary solution to this that auto-installs at the time that you install Zoom, but its actual quality isn’t fantastic. So let’s break it down.įirst, why would you need this? Well, anytime you’re screensharing content over services like Zoom or Streamyard that includes audio, you’ll need loopback sound of some kind. It can wind up being a kind of tricky concept, but it has myriad uses, especially in the days of social distancing. This is the concept of virtualy routing the audio out from your computer directly to a destination without needing any cables or additional hardware.