Virtual Audio Cable (VAC)
25+ years of experience. Connects audio apps together since 1998.
Recording audio output of an application (for example a browser)
Launch a playback (producing the sound) application.
Try to find audio output/playback settings in playback application.
If there are such settings, select a particular Line N (Virtual Audio Cable) endpoint as the output (playback/render) device.
If the application offers no way to select audio devices/endpoints explicitly (like most browsers, for example), open the "Playback" tab in Audio Properties Applet, right-click a particular Line N (Virtual Audio Cable) endpoint and choose "Set as Default Device". Be aware of default device issues.
If the application offers playback audio format selection, choose it.
Launch a recording (consuming the sound) application.
Find audio input/recording settings in recording application and assign a recording device as described above.
Make sure the N (a cable number) is the same for both applications.
If possible, choose the same recording audio format as chosen for playback.
Start recording. You will see a silence is recorded (with full VAC version) or there will be a periodical voice reminder (with trial version after initial silent period).
Start playback. You will see an audio position is moved and level meters are alive but there will be no audible sound because a signal is passed via Virtual Cable to a recording application directly.
Stop both recording and playback.
If your recording application can play recorded data (for example, any audio editor like Audacity, Wavosaur, Sound Forge, or Audition), you can immediately hear a recorded signal. Just make sure that its wave output is assigned to a real audio adapter (a card) playback endpoint and headphones/speakers are connected.
Monitoring signals during recording
Configure playback and recording applications as described above.
Launch Audio Repeater.
Select a proper Virtual Cable N ("Line N") as an input device.
Select a real (hardware) audio adapter playback endpoint as an output device.
Choose the appropriate audio format parameters.
Click Start button. You will see data queues moving.
Start recording and playback as described above.
To eliminate clock rate difference effects, use cable clock control feature.
A signal produced by the playing application will be distributed among your recording application and Audio Repeater which passes it to a real device and you will hear it. You should hear clear sound produced by the playback application (with full VAC version) or the sound with periodical voice reminder (with trial version).
You can also leave "None" in the Wave Out field of the Audio Repeater to only watch signal levels on the screen, not playing a signal back to the speakers. To only watch signal level, you can use Control Panel application instead.
Starting from Win7, there is a built-in Listen feature to monitor a cable. You don't need Audio Repeater in a simple case. But in more complex cases, Audio Repeater could be useful (for example, to connect a Virtual Cable to several devices at the same time). Unfortunately, only permanent cable clock control feature can be used in such case, so clock rate difference effects are more likely.
Determining actual audio format used by an application
Launch VAC Control Panel.
Launch an application and select a Virtual Cable N ("Line N") as a playback or recording device.
Start playback or recording. In VAC Control Panel, you will see the current cable format parameters. If the cable format is not limited, it probably reflects a format used by this application.
But due to the layering issues, if the application uses shared-mode device access, Virtual Cable device can receive a request from System Audio Engine, not from the application directly. Please also note that applications selecting a format, can change it from time to time.
Additionally, you can view VAC driver's Event Log to see which audio formats were requested for streaming (maybe unsuccessfully).
Chaining several audio applications one by other
Create an appropriate number of Virtual Cables using VAC Control Panel.
Launch your applications.
In the first application, which will be audio signal creator/producer, select a Virtual Cable N ("Line N") as a playback/output device.
In each intermediate application, which will be both audio signal consumer and producer, select a Virtual Cable X ("Line X") as a recording/input device and a Virtual Cable Y ("Line Y") as a playback/output device. The X for each recording device must be the same as the Y used for a playback device in previous application in the chain. In other words, each intermediate application must be connected to the next by a separate cable. You don't need to number them in ascending order, they simply must be separated.
If last application is not a final recording destination, select a real audio adapter as its playback device.
To temporarily exclude an intermediate application from the chain without changing other applications' settings, simply insert Audio Repeater instead.
To record Skype conversations, you need two Virtual Cables and at least two Audio Repeater instances:
In Skype, you must assign recording/input to Virtual Cable 1 ("Line 1") and assign playback/output to Virtual Cable 2 ("Line 2").
First Audio Repeater instance must transfer from your audio adapter's recording endpoint to Virtual Cable 1 ("Line 1"), supplying first Virtual Cable with a microphone signal.
Second Audio Repeater instance must transfer from Virtual Cable 2 ("Line 2") to your audio adapter's playback endpoint, passing Skype output to the speakers.
To eliminate clock rate difference effects, use cable clock control feature.
Now you can separately record your voice from the Virtual Cable 1 ("Line 1") and other party's voice from the Virtual Cable 2 ("Line 2"). Almost any multitrack recorder can be used - for example, N-Track Studio or Audition (formerly Cool Edit Pro).
If you want to record both parties from a single source (mixed), you need to start third Audio Repeater instance and transfer from the Virtual Cable 1 ("Line 1") to the Virtual Cable 2 ("Line 2"). Then you could record a mixed signal from Virtual Cable 2 ("Line 2").
To avoid an echo, make sure your microphone source line monitoring channel is muted in audio card's mixer.
Mixing signals from two or more microphones into a single source
Using built-in Listen feature or two Audio Repeater instances, create a real-time transfer from each microphone to the same Virtual Cable playback endpoint (for example, "Line 1").
In VAC Control Panel, make sure that speaking into each microphone causes cable signal indicators moving.
In desired audio applications, select Virtual Cable's recording endpoint (for example, "Line 1") as audio source.
Instead of microphones, you can use any other audio sources.
Be aware of the clock rate differences. You can use the cable clock adjustment feature of Audio Repeater to synchronize the cable clock with the particular device clock, but not with both clocks of two or more independent devices.
Distributing audio signal among several audio endpoints (devices)
Configure your playback application to use Virtual Cable N ("Line N") device as an output.
Launch Audio Repeater instance, select Virtual Cable N ("Line N") device for input and first audio device for output. Change format parameters if needed and start audio transfer.
Launch another Audio Repeater instance, select the same Virtual Cable N ("Line N") device for input and another audio device for output. Change format parameters if needed and start audio transfer.
Start playback in your application. You will hear a sound in speakers/headphones connected to both audio devices.
Please note that due to clock rate difference effect, you will not get a stable sound within a long period of time. Using the cable clock adjustment feature of Audio Repeater, you can synchronize the cable clock with the particular device clock, but not with both clocks of two or more independent devices.
Adding audio signal to a broadcast
If you have an audio broadcasting application that broadcasts a signal from your microphone and want to add a sound from another application (audio player, synthesizer, signal processor etc.), use the following configuration:
In the broadcasting application, choose Virtual Cable N as the input/recording device instead of the microphone.
Launch Audio Repeater, choose a microphone device as input and Virtual Cable N as output. If your microphone is mono, adjust the channel config. Click Start - Audio Repeater will transfer a signal from the microphone to Virtual Cable N. Say some words in the microphone - signal level indicators must react to them.
Start the broadcasting and check microphone signal latency. It will be greater than broadcasting directly from the microphone. If needed, try to adjust buffering settings to lower the latency.
Launch an application that should produce the additional sound and choose Virtual Cable N as output device. Activate audio playback - a signal will be mixed together with a microphone signal.
The same method can be used to mix an audio signal into a Skype conversation.
Remapping channels (extracting selected channels from a stream or inserting them to a stream)
To extract (gather) some channels from a stream (or split the stream):
Choose a Virtual Cable and configure its format range to accept the source multichannel stream. Make sure that the Enable channel mixing checkbox is cleared and "Ch mix" is "off" (channel mixing is disabled).
Route a multi-channel audio stream to the chosen Virtual Cable device.
Run Kernel Streaming version of Audio Repeater, choose the appropriate Virtual Cable as input device and leave output device field to be "None". Choose input channel configuration matching the source audio stream, click Start and check if all appropriate channel level indicators are active. If no, check your setup for common multi-channel issues. Finally, click Stop.
Choose Custom for input channel configuration and select channel positions that you want to extract.
Choose an output device (possibly another Virtual Cable) and appropriate channel configuration. For example, if you want to extract two channels, choose Stereo. If you want to extract to a non-standard channel set (for example, three channels), choose Custom and select appropriate number of adjacent channel positions, starting from FL. Then adjust the common number of channels if needed.
Configure another Virtual Cable (if used) and recording/processing application that will consume extracted channels.
Start recording/processing then start audio transfer in Audio Repeater. Signal level indicators corresponding to the source channels selected to extract should move.
To insert (scatter) some channels to a stream:
Choose a Virtual Cable and configure its format range to accept the destination multichannel stream. Make sure that the Enable channel mixing checkbox is cleared (channel mixing is disabled).
Run Kernel Streaming version of Audio Repeater, choose a source device (possibly another Virtual Cable) as input. Choose input channel configuration (standard or custom) matching the source audio stream. For example, if you want to insert two channels, choose Stereo. If the source stream has a non-standard channel set (for example, three channels), choose Custom and select appropriate number of adjacent channel positions, starting from FL.
Select the appropriate Virtual Cable as output device, choose Custom for output channel configuration and select channel positions where you want to insert (mix) the source channels. Then adjust the common number of channels if needed.
Run a recording/processing application and configure it to record a multi-channel audio stream from the chosen Virtual Cable device.
If needed, run another application that plays a multi-channel stream to the chosen Virtual Cable as a base sound. In such case, selected channels will be mixed into this sound stream.
Start recording/processing then start signal transfer in Audio Repeater then start the source stream and another application (if used). Signal level indicators corresponding to source stream channels should move. Recording/processing application will receive a multi-channel stream with source channels inserted at the specified positions.
If there are problems with multi-channel playback/recording, check your setup for common multi-channel issues.
Packing signals from two microphones into left and right channels of a single stereo stream
To pack signals from two microphones into left and right channels of a single stream:
In VAC Control Panel, choose a Virtual Cable and configure its format range to accept a stereo (two-channel) stream. Make sure that the Enable channel mixing checkbox is cleared and "Ch mix" is "off" (channel mixing is disabled). Leave Control Panel open to watch cable signals.
Set default format for the recording endpoint to "stereo", with desired sampling rate and bitness.
Run two instances of Kernel Streaming version of Audio Repeater. In each of them, choose the appropriate microphone pin as "Wave In", and leave "Wave Out" to be "None". Set input/recording channel configuration to "Mono".
Try to start each repeater to make sure that both microphone pins support selected sampling rate and bitness. If the repeater shown an error message related to unsupported format, correct sampling rate and/or bitness, and try again. If the microphone pin does not support mono (single-channel) formats, it cannot be used for such task.
If both repeaters are successfully started, speak into each microphone to make sure that the appropriate signal indicator moves, and stop them.
In both repeaters, choose the same Virtual Cable as "Wave Out", and set output channel configuration to "Custom". In first repeater, check the "FL" output box; in the second, check the "FR" box. Only a single channel should be checked in each repeater. Set number of channels to 1 in both repeaters.
Start recording/processing application (for example, Audacity) and choose the appropriate "Line N" recording endpoint (if possible, use WASAPI interface). Configure the application to record a stereo stream.
Start recording and make sure that VAC Control Panel shows that current audio format is stereo.
Start both repeaters, speak into microphones and check that the appropriate signal level indicators in VAC Control Panel are moving. If the recording/processing application has such indicators, they should move too.
Be aware of the clock rate difference effects.
Instead of microphones, you can use any other audio recording devices, or even signals produced by other applications, passing them via additional Virtual Cables. You can pack up to 8 signals by default, and up to 32 maximum. Just configure the appropriate formats for Virtual Cable, and run a separate Audio Repeater instance for each signal.