        Virtual Audio Cable (VAC) driver frequently asked questions
        ===========================================================

Created at July 8, 1999 by Eugene Muzychenko

Last modified at July 22, 2000


==== I can't understand how VAC is related to my sound card and
audio applications. Can you explain it to me?


VAC behaves like real electric cable. In traditional modular audio
system, you need to connect output of each sound source (the deck,
pickup, guitar or synth) to input of each sound destination (amplifier,
equalizer, gate, processor etc.) by its own electric cable. If one
component's input is connected to other component's output, the first
can receive sound from second. Otherwize, it can't.

Computer sound system works very similar. There are internal sound
sources, i.e. Applications which generate, play or record any sounds
(Rebirth, WinAMP, Cool Edit, Cakewalk etc.). And there are external
sound devices, i.e. Sound Cards. Applications can transfer a sounds by
using Audio Ports of sound card; typical sound card has a Wave In port
and a Wave Out port. From theIn port applications can record sound,
and they can play sound to the Out port.

In native computer sound system, there are no way to internally
connect an application generating a sound to another application
recording or processing that sound; for expample, you cannot directly
transfer a sound from Rebirth to Sound Forge. You need a full duplex
sound card with its output plugged into its own input; there are two
digital/analog transforms which affects sound quality and volume
level, and there are high latency (recorded sound arrive about 100-300
ms later than original sound was played).

VAC seems like a set of real full-duplex sound cards with its digital
outputs hardwired to its digital inputs. Like a sound card, each
virtual cable has two ends - Wave Out audio port, and Wave In audio
port. Source application generates (or plays) the sound, sends it to
VAC Out port, VAC driver immediately transfers it to VAC In port, and
destination application receives the sound from VAC In port. You can
use VAC even without any real sound card in your system; but there
will be no real sound in your ears, only digital sound in the your
computer.

VAC doesn't make any sounds. With VAC, as with simple electric cable
alone, you can't hear anything. You need a complete sound system, i.e.
source and target applications to transfer sounds, and a real sound
card to hear it or record from the real world. You also must make
proper connections between your sound system components, otherwise
your goals will be not achived.


==== I've installed the VAC, but I can't see any new icon on
my desktop or any new application in my Start menu. Where are the cables?

VAC is a system device driver, it isn't an user application. After
installing, a new system Wave devices arrived. To see these devices,
you must run any sound recorder/player app like Cool Edit, Sound
Forge, WaveLab, Cakewalk, Cubase, WinAMP etc. Or you must go to the
system Multimedia/Audio control panel page.


==== I've set output of my sound program to VAC Out, and there
are no sound. What happens?

If you will connect sound source to one side of the cable and will
leave other side unconnected, you will not hear any sound. You need to
connect other side of VAC (In) to any other program which will receive
sound coming from first program.


==== I've set output of my sound program to VAC Out, then set
input of Cool Edit (Wave Lab, Sound Forge etc.) to VAC In. Sound
records fine but I can't monitor recording process from my
phones/speakers. What can I do?

If you want to monitor VAC In, use VAC multi-client feature that
allows you to connect multiple sound destination apps to single VAC
In. The simplest way to monitor is using Audio Repeater app, coming in
VAC package. Assign Audio Repeater In to VAC In, assign Out to your
sound card Out, and start Audio Repeater. Then you will hear all
sounds that comes through this virtual cable.


==== Can VAC render my MIDI sequence to Wave file?

Definitely, no. VAC simulates simple electric cable, it can't synthesize
sound from MIDI sequence. Although, VAC can help to record output of some
software synthesizers to the Wave file.


==== Why VAC doesn't route output of Roland VSC-xx, Yamaha S-YXGxx?

VAC simulates  plain MME  Wave device, which has Wave  In and Wave Out
ports. If application allows to explicitly assign its  output to given
Out port, then this port can  be VAC's. Some apps and many soft synths
implicitly routes  its  output  to  first  system Wave/DirectSound Out
port; in most cases it is hardware sound card.


==== Can VAC route sound between different PC's?

No. Maybe other app or driver will be created for this purpose.


==== I started wave record, then run Cakewalk but there are no Virtual
     Cables in Cakewalk ports list :(

Cakewalk behaves slightly strange, querying audio devices upon startup
only. During them, Cakewalk queries wave devices whether they support
various audio formats or not. If wave device doesn't support
particular format, Cakewalk excludes it from available wave ports.

If any activity (record or play) is present in particular Virtual
Cable, its format is fixed and any other formats will be rejected.
Thus, stop all activities in that cable, start Cakewalk, and then
restart play/record again.


==== I tried demo version with Reality (Mellosoftron, SimSynth etc.)
     and the sound is cracked and interrupted. What happens?

Demo version of VAC has 500 ms interrupt period. That means, only
every 500 ms sound buffers are updated. DirectSound typically uses 10
ms gap between playing and writing points (cursors) and from one VAC
interrupt to another DirectSound makes many writes into buffer,
corrupting the sound. In full version, you can specify any interrupt
period from 1 to 100 ms, and sound will be nice.


==== I'm using Audio Repeater to monitor one of VAC cables on my
     soundcard and there are some interrupts of the sound. What's
     incorrect?

All is correct. But all digital sound transmitters/receivers use its
own clock generators. If you directly transfer digital sound from one
real- time Wave Port to another, clock generators are working
independently and its frequencies are always slightly different. This
difference causes buffer desyncronization and periodic loss of small
portions of sound or insertion of small gaps.


==== Why Cubase's ASIO Multimedia Control Panel cannot determine
     optimal buffer size under Win9x?

VAC's VxD uses "application time event" technique to notify the
application that current sound buffer processing is finished. Cubase
buffer size detection algorithm disables task switching and
application time events. There is no way to correct this situation.


==== How much is sound latency with VAC?

VAC itself adds almost no latency; actual value is more dependent from
application sound buffer size, than from VAC interrupt frequency. For
example, if interrupt frequency is 100 (10 ms per interrupt) and the
application uses two buffers of 100 ms each, the maximal final latency
will be 100 * 2 + 10 = 210 ms. To reduce latency, try to increase
interrupt frequency, decreasing total sound buffer size.
