Virtual Audio Cable (VAC)
25+ years of experience. Connects audio apps together since 1998.
A Virtual Cable behaves like a real electric cable. In a traditional modular audio system, you need to connect the output of each sound source (deck, pickup, receiver, guitar or synthesizer) to the input of each sound destination/target (amplifier, equalizer, gate, processor, speakers, headphone) by a separate electric cable (wire). If one component's input is connected to other component's output, the first can receive an audio signal from the second. Otherwise, it cannot.
Computer sound system works very similar. There are two kinds of objects that can be sound sources or destinations: applications that generate, play or record various sounds (Foobar2000, AIMP, WinAMP, Skype, Audacity, Audition etc.) and audio devices (sound adapters/cards). Applications do transfer sounds using device's endpoints; a simplest sound adapter has one recording (capture/input) and one playback (render/output) endpoint. From a recording endpoint, applications can record sounds, and they can play sounds to a playback endpoint.
Some audio devices have multiple recording/playback endpoints, or a single recording/playback endpoint only. For example, USB microphone adapter has a single recording endpoint and USB speakers adapter has a single playback endpoint.
In native Windows audio subsystem, there is no way to internally connect an application producing a sound to another application to record and/or process this sound. For example, you cannot directly transfer sounds from Skype to Audacity. You need a full-duplex sound adapter/card with its line output jack connected to its own input jack, and there will be two digital/analog transforms, affecting sound quality and volume level, and there will be high latency (recorded sound arrives about 100-300 ms later than original sound was played).
For the user, VAC looks like a set of real full-duplex sound adapters (cards) with their digital outputs hardwired to their digital inputs, making a loopback. Each input/output pair is called a Virtual Cable. Like a typical sound adapter, each Virtual Cable has two endpoints: playback and recording.
Source applications connect to playback endpoints and produce (play) their sounds. VAC driver immediately transmits sounds coming to each playback endpoint to the corresponding recording endpoint of the same Virtual Cable. Finally, destination applications receive sounds from the recording endpoints.
Keep in mind that a Virtual Cable is unidirectional. Only the playback side can accept audio signal/data from applications, and only the recording side can produce it to be received by applications. From the application's point of view, the playback side is a "data sink" and the recording side is a "data source".
At a beginning level, you can imagine a Virtual Cable as a kind of a pipe. When you direct a sound into your pipe end, other party can hear it from another end. But due to Windows audio principles, the pipe is unidirectional. That is, you can send a sound only to the playback end, and receive it only from the recording end.
As the VAC driver transmits sounds between applications, so the Audio Repeater application transmits sounds between audio devices/endpoints:
You can use VAC even without a real sound adapter (card) in your system. But there will be no audible sounds, only digital audio streams and/or files inside your computer.
Remember that VAC does not produce any sounds (except for trial voice reminder), it only transmits sounds produced by applications. With VAC only, as with simple electric cable alone, you will hear nothing. You need a complete audio signal path, i.e. source and target applications to transfer sounds, and a real sound adapter (card), either internal or external, to hear these sounds, or to record them from the real world. You must also make proper connections between your sound system components, otherwise your goals will not be achieved. Such connections are made by selecting the appropriate audio endpoints in audio applications' settings, and/or by changing default audio endpoint assignment.
Using VAC driver and Audio Repeater application, you can route an audio stream coming from any audio endpoint to many applications at the same time, sharing a real audio source. You can also mix audio streams from multiple applications together, routing the result to any audio endpoint.