Sounds Logical
home

WaveWarp Users' Guide: last updated 28 February 2002

Table Of ContentsPrevious PageNext Page

7.2-- Soundcard settings options

7.2.1-- The WaveWarp Soundcard manager

Selecting the "Soundcard Settings" option opens the WaveWarp Soundcard Manager Interface as illustrated in Figure 78. This interface provides full control over WaveWarp's access to the soundcard(s) installed on your computer. In principle, WaveWarp can make use of all soundcards installed under Windows. Simultaneous use of multiple soundcards and/or multi-channel soundcards is fully supported, enabling you to create elaborate multichannel effects limited only by the number of physical channels available on your soundcard(s). The user-configurable soundcard manager streamlines the process of working with multiple soundcards simultaneously. Specifically, the soundcard manager provides the following functionality:

1. I/O channel mapping- allows you to assign any physical soundcard I/O channel to any WaveWarp signal. See section 7.2.2-- for more information.

2. Bit resolution selection -- allows you to select the bit resolution independently for each channel (limited by the available bit resolution of your soundcard(s)). See section 7.2.3-- for more information.

3. Buffer settings - allows you to adjust the buffer settings independently for each I/O channel in order to optimize the audio throughput performance for your given system. See sections 7.2.5-- and 7.2.6-- for more information.

Figure 78 Screenshot of the WaveWarp Soundcard Manager Interface accessed via the "Options->Soundcard Settings" menu item. This interface enables convenient access to the channel assignment, software drivers, and settings of all physical hardware I/O channels used by WaveWarp. The Input and Ouput channels are adjusted separately (via the respective tab sheets).

7.2.2-- Physical I/O hardware channel assignment

The main panel of the WaveWarp Soundcard Manager (see Figure 78) entitled "Mapping of driver on DrawingBoard" lists all of the soundcard software drivers for all of the soundcards installed on your computer. There are separate tab sheets for all available I/O channel/driver configurations as listed below:

    ¬ Stereo - the physical channels of a given soundcard are accessed pairwise by successive stereo software drivers (or a single stereo driver for a conventional stereo soundcard rather than a multichannel soundcard). The corresponding WaveWarp components each have a single stereo input (or output).

    ¬ Dual Mono - the physical channels of a given soundcard are accessed pairwise by successive stereo software drivers (or a single stereo driver for a conventional stereo soundcard rather than a multichannel soundcard) configured as dual mono pairs. The corresponding WaveWarp components each have two mono inputs (or outputs).

    ¬ Single-channel Mono - the physical channels of a given soundcard are accessed by successive mono software drivers (or a single mono driver for a conventional stereo soundcard). The corresponding WaveWarp components each have a single mono input (or output). These are intended for use when single channel mono processing is all that is required on a given signal chain.

For a given tab sheet, each entry in the list has a "Driver Name" (preset in the driver software by the soundcard vendor) and a "Device ID" number (assigned by WaveWarp) listed sequentially from top to bottom. This number appears in the component identification on the DrawingBoard against the given driver name. The purpose of this ordered list is to map the WaveWarp components against the desired physical I/O channels. For example, suppose a DrawingBoard has been created with no Input (or Output) Soundcard components. Then an Input (or Output) Soundcard component is selected from the Component Library and dragged onto the DrawingBoard. A dialog automatically opens indicating all the available drivers for the given DrawingBoard, reflecting the list in the WaveWarp Soundcard Manager minus any which have been intentionally excluded by unchecking the respective "Accessible" checkboxes (see below). The default selection will automatically be at the top of the list (i.e. the next available). However, you are free to select a different driver than the default, i.e. any of the available options. The physical hardware channel assigned to the signal will be that corresponding to the chosen driver. Now consider that a second Input (or Output) Soundcard component is placed on the DrawingBoard. The dialog automatically opens indicating all the available drivers for the given DrawingBoard, reflecting the list in the WaveWarp Soundcard Manager, minus the device already used and any which have been intentionally excluded. The pattern continues for successive additions of soundcard components onto the DrawingBoard until all accessible physical hardware channels have been used up. If another soundcard component is dragged on after using up all available physical hardware channels, a "placeholder" component will appear with the

"missing component icon" (see section 2.27--). If this DrawingBoard is saved then reloaded on a computer with sufficient physical I/O hardware channels for all the soundcard components, then the "placeholder" components will be replaced by physical hardware channels.

WaveWarp assigns the initial ordering of devices in the list by querying the order of devices installed under Windows, which, in turn, is ultimately determined by the order in which the soundcards were installed under Windows. However, the order can be easily changed by selecting a given entry in the list, then using the "Up/Down" (arrow buttons located below the "Device ID" list in the WaveWarp Soundcard Manager) to move the selected entry to any arbitrary location in the list. All open DrawingBoards will then automatically have their corresponding Soundcard components re-mapped, and all future DrawingBoards will adopt the new mapping when assigning I/O devices. This conveniently allows multiple soundcard channels to be accessed in any desired order, irrespective of the order in which the devices have been installed under Windows.

The "Accessible" checkbox for each driver in the list determines whether or not that driver is available to WaveWarp. By default, all drivers for all soundcards are configured to be accessible to WaveWarp. However, if you choose to de-select any driver in the list, it will no longer be accessible by WaveWarp, and all open DrawingBoards (and future DrawingBoards) will have their soundcard components re-mapped, taking account of the fact that certain devices have been "excluded" from use by WaveWarp. This is useful if, for example, you wish all of your Windows system sounds to be routed through a given device (set to an appropriately low volume !). By making this device inaccessible to WaveWarp, you can avoid being shocked by Windows system sounds being played at the loud(er) volumes set for your WaveWarp DrawingBoards. Another example where it is useful to make certain devices(s) inaccessible to WaveWarp is when you wish to dedicate these devices solely to a separate audio application (such as a sequencer etc). Finally, any device driver which is "causing trouble" can be conveniently excluded from WaveWarp.

7.2.3-- Adjusting the bit resolution per physical I/O channel

For a given tab sheet in the WaveWarp Soundcard Manager (see Figure 78), each entry in the list has a "Sample Size" dialog via which the bit resolution of the given driver/channel can be set. The "Custom" option allows you to select any (non-standard) value between 16- and 32-bits (e.g. 26 etc).

Notes:

    1. By default, only the standard Windows options - namely 8- and 16- bit - will be listed, despite the potential capabilities of the soundcard(s)/driver(s). In order to activate all the possibilities for all the soundcard(s)/driver(s), press the "Scan System for all installed Drivers and Options" (located at the bottom of each tab sheet in the WaveWarp Soundcard Manager Interface). All the available bit resolutions from the full standard set of 8-, 16-, 18-, 20-, and 24-bits will then appear for each soundcard/driver.

    2. For all bit resolutions in excess of 16-bits, WaveWarp supports only the "unpacked, left-justified" format. The older "packed" format (which saves on-card memory at the expense of CPU usage) is not supported by WaveWarp. Neither is the "unpacked, right justified" format since this is rarely used.

7.2.4-- What about setting the sample rate(s) for the soundcards ?

There is no explicit method (or reason) to set the sample rate of any soundcard. WaveWarp will attempt to send/receive the data at the sample rate determined by the signal on the DrawingBoard (see 8.1-- for a description of WaveWarp's multirate capabilities). If there is a problem with attempting to operate the soundcard(s) at the given sample rate (e.g. because the soundcard doesn't support the sample rate under question), the DrawingBoard will not start and WaveWarp will notify you of the conflict. However, for convenience, the WaveWarp Soundcard Manager automatically queries each soundcard/driver to determine which of the standard sample rates it supports, and reports the results "up front" under the "Available sample-rates" entry for each device/driver.

Note: by default, only a limited subset of sample rates will be listed, namely 11.025-, 22.05, and 44.1 kHz. In order to query for a larger range of standard sample rates for all the soundcards, press the "Scan System for all installed Drivers and Options" (located at the bottom of each tab sheet in the WaveWarp Soundcard Manager Interface). All the available sample rates from the full standard set of 8-, 11.025-, 16-, 22.05, 32-, 44.1-, 48-, 96-, and 192-kHz will then appear for each soundcard/driver.

7.2.5-- Explanation of buffers and latency

Although the WaveWarp audio engine is intrinsically sample-by-sample (one of the key features of the software), all audio data which is read from soundcard inputs or written to soundcard outputs is arranged in buffers ("chunks" of samples) before being sent to/from the DrawingBoard. The reason why buffers are required is due to the fact that the Windows operating system cannot guarantee uninterrupted flows of data to and from the soundcard(s) on a sample-by-sample basis. This is because Windows is a general-purpose operating system, and interacts asynchronously with the external devices. It is not a true real-time operating system (RTOS) which would enable guaranteed access to external devices on demand e.g. on every sample hit. Consequently, when Windows passes data between WaveWarp and the soundcard(s), the process occurs on average in real-time even though sample-by-sample real-time access can not be guaranteed. In order to absorb the fluctuations in the rate at which Windows communicates with the soundcards, the data must be arranged in buffers. A useful analogy is to consider a hose-pipe delivering water at a constant rate (i.e. the soundcard delivering samples at a constant rate). The task is to connect this source hose-pipe to a recipient hose-pipe (i.e. the DrawingBoard). The most direct solution is to simply connect the two hose-pipes together. This corresponds to pure sample-by-sample communication, which, as already stated, is not possible under Windows. Instead, buckets (i.e. buffers) must be used. A minimum of two buckets is required. The first bucket is filled from the source hose-pipe, then handed over to be emptied into the recipient hose-pipe. In the meantime, the second bucket is being filled. When it is full, it is passed on to be emptied, and the first bucket is returned for re-filling, and so on. In this way, the flow from the source to the recipient is continuous, as required. In fact, generally more than two buffers are required to alleviate the need for precise relative timing when managing the buffers. This is analogous to having multiple full buckets and multiple empty buckets available at any given time, thereby eliminating the need to precisely synchronize the filling of one bucket with the emptying of the other in the two-bucket scenario depicted earlier.

An important consequence of buffering is that a delay (or "latency") is introduced into the signal path. Continuing with the hose-pipe/bucket analogy, it is clear that there is a time delay between the onset of the flow, and the water reaching the recipient hose-pipe. The length of this delay is precisely equal to the time taken to fill the first bucket. Note that the use of multiple buckets does not increase the latency, since only one bucket needs to be filled before being delivered to the recipient.

Likewise, the audio latency will depend directly on the buffer lengths. For example, if the soundcard input buffer is set to a length of 2000 samples, the latency will be about 46 milliseconds (independent of the number of buffers used) for a sample rate of 44.1 kHz. Likewise, If the soundcard output buffer has a length of 2000 samples, this would contribute an additional latency of 46 milliseconds, giving a total end-to-end latency of about 92 milliseconds, or about a tenth of a second.

Latency is generally not an issue when playing from audio files to soundcard outputs as long as all outputs are subjected to the same latency. However, latency is a key issue when working with "live" audio inputs. For example, the aforementioned latency of 0.1 seconds would be clearly noticeable (and distracting) when playing a musical instrument or speaking into a microphone. In fact, the human ear is sensitive to latencies above about 2 milliseconds or so (i.e. about 80 samples at 44.1 kHz). When working with "live" inputs, it is therefore desirable to minimize the end-to-end latency. WaveWarp allows you to do so by providing the facility to set the lengths of the input and output buffers. Individual settings are available for each soundcard/driver, as discussed below.

7.2.6-- Adjusting the buffer settings per physical I/O channel

The "Buffer Settings" button in the WaveWarp Soundcard Manager interface (Figure 78) opens the appropriate dialog box for adjusting the buffer settings of the selected soundcard driver/channel.

Make sure that you have selected a selected soundcard driver/channel (by clicking on it in the list) before hitting the "Buffer Settings" button, otherwise nothing will happen.

The output (playback) and input (record) buffers are independently adjustable. The screenshots in Figure 79 and Figure 80, respectively, show the dialog boxes for the input and output buffer adjustments for a typical soundcard channel, in this case the first pair of channels (accessed via the first of multiple stereo WAVE drivers) of a Terratec EWS88MT multi-channel soundcard.

By default, the buffers for all soundcards are set to nominal values which are found to perform reasonably well over a wide range of hardware set-ups. The "Playback Start Number" is an important parameter for the output buffering (see Figure 80) which specifies the number of output buffers which must be filled before the playback initiates. This parameter is included to cater for older (and slower) computers where a "pop" may be audible in the output when the DrawingBoard is started. By increasing the "Playback Start Number", the pop can be eliminated. However, the overall latency of the output is then increased by the length of the output buffer multiplied by the "Playback Start Number". This parameter should thus only be increased from the default value of zero when necessary to alleviate pops.

In those situations where you are working only with audio outputs and not with live audio inputs, it is normally not necessary to adjust the buffers from their default values. However, depending on the hardware configuration and CPU performance of your computer, the playback may be intermittent ("jumpy") with the default settings, and it may be necessary to increase the buffer lengths and/or increase the number of buffers in order to eliminate this undesirable behavior. This is also the case if you choose to utilize the high bit resolution features of your soundcard (e.g. 24-bits rather than 16-bit) since this puts more demand on the soundcard interface in terms of data throughput, with a consequent need for larger buffers.

In "live" input situations, on the other hand, it is generally necessary to reduce the lengths of both the input and output buffers in order to minimize the latency for a given hardware/driver configuration. The recommended approach is to experiment by trail-and-error to reduce the buffer lengths until the system is just on the verge of "jumping". As you do so, it may be necessary to increase the number of buffers in order to alleviate the timing burden, but this has no effect on the latency.

Figure 79 Screenshot of the input buffer adjustment dialog for a given soundcard selected in the WaveWarp Soundcard Manager Interface (Figure 78). In this example, the first pair of input channels (accessed via the first of multiple stereo WAVE drivers) of a Terratec EWS88MT multi-channel soundcard are being adjusted.

Figure 80 Screenshot of the output buffer adjustment dialog for a given soundcard selected in the WaveWarp Soundcard Manager Interface (Figure 80). In this example, the first pair of output channels (accessed via the first of multiple stereo WAVE drivers) of a Terratec EWS88MT multi-channel soundcard are being adjusted.

Table Of ContentsPrevious PageNext PageTop Of Page

home - news - products - store - support - site map - company info
© 2007 Sounds Logical. All rights reserved.
Sounds Logical
legal notice - privacy statement