The Virtual Audio Cable (VAC) software implements an idea of a physical interconnection cable applied to Windows audio applications. Like traditional audio devices (CD Player, FM receiver, equalizer, amplifier etc.) are connected by the electric (analog or digital) cables, Windows audio applications can be connected together by the Virtual Cables created by the VAC.
VAC has a Windows WDM/KS virtual device driver that creates a set of virtual audio devices named Virtual Cables. Each cable has a pair of audio ports, input and output. These ports are internally connected within each cable so all digital audio data sent (played) to the output port by "source" application are implicitly transferred to the input port and can be retrieved (recorded) by another (destination) application.
A Virtual Cable is similar to an ordinary audio adapter (a sound card) with its input and output externally connected between each other. Since a real adapter usually has a DAC (digital-to-analog converter) and ADC (analog-to-digital converter) in its signal path, an unneeded double digital-to-analog and analog-to-digital conversions are performed in case of such connection. Only rare and/or expensive adapters have a digital input and output that can be connected to transfer a signal clearly. VAC does such transfer itself, without any additional audio hardware.
Each port of each Virtual Cable is multi-client, allowing multiple applications to open the port at the same time. In the WDM/KS terms, it means each cable pin can be instantiated several times. All sounds (audio streams) coming to the playback port are mixed together, and each client connected to the recording port will get an individual copy of a signal via its recording/capture stream. Mixing and distributing are performed on the cable basis only, different cables are completely independent from each other.
As a WDM/KS filter driver, VAC represents a lowest-level audio layer that can be effectively used by any upper-level layer (KS-aware applications, DirectSound and MME subsystems, ASIO wrappers and so on). A small utility, Audio Repeater, is included into the package to perform various useful tasks.