        Virtual Audio Cable 2.04 for Win9x/NT4/2000
        ===========================================

Author: Eugene Muzychenko, Novosibirsk, Russia
        2:5000/14@FidoNet, music@spider.nrcde.ru

Product homepage: http://spider.nrcde.ru/music/software/eng/vac.html


        Introduction
        ------------

The Virtual Audio Cable implements an idea of physical interconnection
cable applied to Windows digital sound devices (Wave In and Wave Out).
Driver creates a pairs of Wave In/Out multi-client device ports; "In"
and "Out" ports in each pair are internally connected so all digital
audio data sent (played) to "Out" part of the cable by one program is
directly transferred to the "In" part and can be retrieved (recorded)
by another program. This mechanism allows to interconnect several
programs that are using Wave devices - software synthesizers, sound
processors, sound editors, sequencers etc. Additionally, it allows to
record pure digital audio data produced by programs that don't create
WAV files, sending audio only to Wave device in real time.

Each port of driver is multi-client, allowing multiple applications to
open the port at same time. All sounds sends to Out port are mixed,
all clients connected to In port get the individual copy of sound.

Small utility, Audio Repeater, is included into the package to monitor
sounds transferred by the cable.

DirectSound output is supported under Win9x. Unfortunately, Microsoft
haven't made low-level interface for DirectSound VxD input, and
therefore all DS input to applications goes from Wave In thru MS
emulating layer.


        System requirements
        -------------------

VAC is designed to work under Windows 95/98 and Windows NT 4.0/2000.
Separate packages are provided for 9x and NT.

Any amount of RAM enough for Windows will be enough for VAC too.


        Features
        --------

Up to 64 cables in full version, one cable in demo.

1..50 milliseconds per interrupt in full version, 100 in demo.

Almost no sound latency with maximal interrupt frequency.

Almost any sound format (sample rate and size) with 1 (mono) or 2
(stereo) channels. Number of bits per sample is limited to 32.

Unlimited number of clients connected to each port.

Sound mixing (with saturation) between output port clients.

DirectSound output support under Windows 9x.

Audio Repeater application that transfers from any Wave In to any Wave
Out device.


        Installation
        ------------

If driver files are packed, first unpack the archive to any empty
directory on your hard disk.

Uninstall all previous versions of VAC.

In Windows 95, go to the Control Panel, double click "Add New
Hardware" icon, answer "No" to auto search prompt, then select "Sound,
video and game controllers". In device list dialog select "Have disk"
and enter a path to the driver directory. Select "Virtual Audio Cable"
and follow instructions displayed.

In Windows NT, go to the Control Panel, double click "Multimedia"
icon, select "Devices" tab, click "Add", select "Unlisted or updated
driver", enter a path to the driver directory and select "Virtual
Audio Cable".

Windows restart is not required. Windows NT sometimes makes restart if
it can't safely replace old driver.

Audio Repeater application can be placed in any directory with
creating shortcut to it.

After installation, there appears a new Wave Device "Virtual Audio
Cable", having two Digital Audio ports: "Virtual Cable 1 In" for input
port and "Virtual Cable 1 Out" for output port. In Windows 9x, new
device also appears in Device Manager list. If DirectSound 5 or higher
is installed, "Virtual Cable N (DirectSound)" device appear in
DirectSound application menus.

There will be "emulated" Virtual Cable DirectSound device for each
cable. That is because DirectX 8 and Win98 DirectSound violate
Microsoft's own DDK specification and don't permit VAC driver to
specify one device node with different device numbers. VAC uses a
workaround that prevents DirectSound to obtain device node but in this
case DirectSound makes "emulated" device for each virtual cable. Simply
ignore that extraneous devices.


        Configuration
        -------------

Full version of VAC creates (and further recognizes) a parameter
values in the registry:

"Number of cables" (DWORD, 1..16, default 1)
"Milliseconds per interrupt" (DWORD, 1..50, default 20)

For Win9x, these values are in

HKEY_LOCAL_MACHINE\SOFTWARE\EuMus Design\Virtual Audio Cable

For WinNT, these values are in

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VirtualAudioCable

You can edit these values using RegEdit or any other registry editor.

Number of milliseconds per interrupt sets the interrupt frequency (20
ms per int -> 50 ints per second, and so on). At this frequency sound
data is transferred from Out side to In side (many applications use a
term "latency time". The more interrupts per second, the smaller
latency time, the more overhead in system. Typical audio cards use
15..20 interrupts per second.

Changes will take effect after driver restart. That can be achieved
with two methods: Windows restart, and local driver restart.

To restart driver only, you can remove and reinstall it under Win9x,
or restart driver service under WinNT.

To restart service under NT, open the Control Panel, then open Devices
icon, select Virtual Audio Cable, click Stop and then click Start.

Remember that all applications that may use virtual cables must be
closed during driver restart. If they aren't, Windows always prompt
you to reboot entire system.


        Working with cables
        -------------------

Both cable sides are standard Windows MME wave devices. In Win9x, if
DirectSound is installed, there is additional DirectSound Out port.
You can use "In" and "Out" ports of each cable in any program that
works with audio devices. All cables are completely independent. Both
sides of one cable must be open with same format: if no side isn't
open, each side accepts any wave format; when one side is open with
given format, other accepts only the same format.

Each port is multi-client, allowing unlimited number of programs that
may use the port at same time.

Virtual cable behaves as a real cable:

- when only output side is open, all played data is lost;

- when only input side is open, silence is recorded;

- when both sides are open, all data sent to output side appears
unchanged at input side;

- if multiple programs are connected to Out port, all sound streams
are mixed together;

- if multiple programs are connected to In port, they get individual
copies of main sound stream.


Mixing of output streams is implemented with saturation (clipping). If
level over- or underflow occurs, the maximal or minimal sample value
is used.

Mixing works only with samples up to 32 bit. Higher sample size allows
only one client per output port.

All internal data transfers from output to input side are completely
digital, and no quality degradation occurs. If you play WAV file to
output side and simultaneously record data from input side, all
recorded data will be same as played, except of possible leading
and/or trailing silence.


        Monitoring cable transfers
        --------------------------

Audio Repeater is created primarily to monitor cable transfers. If VAC
transfers sound from its Out to its In internally, Audio Repeater
transfers from any Wave In device to any other Wave Out device. Thus,
selecting Virtual Cable N In and any sound card Out in Audio Repeater
causes all sound appeared at In port of virtual cable to be sent to
sound card DAC making it audible. Maybe, you can find other useful
applications for the Audio Repeater :)


        Removing the driver from your system
        ------------------------------------

To remove driver from system:

1. Open your Control Panel.

(in Win9x) 2. Open System icon, then open "Sound, video and Game
controllers".

(in WinNT) 2. Open Multimedia icon, select Devices tab, then open
"Audio Devices" group.

3. Select "Virtual Audio Cable" and click Remove.

Under WinNT, there can appear an error deleting kernel-mode driver
service. In that case, open distribution directory in Windows
Explorer, right-click RemoveService.inf file, and select Install in
context menu. Service will be deleted immediately if it is stopped, or
marked for deletion and deleted at next system startup.

Audio Repeater EXE file can be deleted at any time.


        Obtaining new versions of the driver
        ------------------------------------

Distribution rights are granted to NTONYX Ltd. Versions of VAC and
other information can be obtained at http://www.ntonyx.com. Current
demo version can be found at
ftp://spider.nrcde.ru/pub/sound/other/vacdm*.zip.


        Distribution policy
        -------------------

Full version of the driver is commercial. Demo version is free of
charge, full version is granted to registered users after payment.
Demo can be distributed freely if its package and file contents
remains unchanged, and there are no commercial purposes. You cannot
sell it, independently or in one set with other products. Full version
is restricted to use on only one computer at a time, and cannot be
copied, modified or reselled.
