Instruction Manual - ASIO4ALL Official Home

Instruction Manual

Last reviewed: 2021/03/12

Introduction

Welcome to ASIO4ALL! This manual enables you to make the most of your ASIO4ALL installation, especially as it comes to the advanced features newly introduced in this Version of ASIO4ALL.

In order to achieve the best possible results with ASIO4ALL on a very old computer, it is recommended that your computer is configured accordingly:

  • When running an old version of Windows, set the power scheme to “Always On” (XP) or “High Performance” (Vista) in order to turn off Processor P-State switching! Advanced: Modify an existing power scheme so as to not switch CPU speed, because other power settings are not that critical.
  • Turn off system sounds! While e.g. the Windows logon sound certainly will not be a problem, sound effects in response to button clicks, notifications etc. will mean that for the time they play, ASIO4ALL may be unable to initialize the audio device.

Note: Fortunately these issues are less important, should you be using a version of Windows that is less than 10 years old! You should not need to re-configure you system, then.

For updates, help and further information, please visit http://www.asio4all.com!

Getting Started

Setting up your audio software

In order to make use of ASIO4ALL, you need to configure your audio software accordingly. How you would do this depends on your particular software application. Generally, you would always enter the audio configuration menu and select ASIO -> ASIO4ALL v2.

There now should be a button to launch the ASIO control panel. How this button is labeled depends on your particular software. Once you press this button, the ASIO4ALL control panel should appear. Please consult the manual of your audio software for further assistance, if necessary!

There is, of course, a much easier way for accessing the ASIO control panel at any time. This mechanism has been around for almost 15 years now – with no known compatibility issues: Simply launch the control panel by clicking on the ASIO4ALL status icon in the System Tray area!
The tray icon will become visible whenever an application initializes the ASIO4ALL driver.  If there is no tray icon, your audio application is not currently using the ASIO4ALL driver. You can disable balloon notifications by switching to “Advanced” mode in the ASIO4ALL control panel.

Changes made in the control may not have an effect until you restart the audio application. Once you made it into the ASIO4ALL control panel – one way or the other –  you can now proceed with some basic configuration.

Basic configuration

WDM Device List

This is the list of audio devices found in your system. Highlight the device that you want to make changes to.

Note: All parameter changes always only apply to the device currently highlighted!

Activate the device you want to use by clicking on the button next to the device name! In the picture above, the Realtek High Definition Audio device would be enabled while all others are not.

The current state of each device is shown as a small icon on its associated button. It can be either of these:


ActiveThe device has been successfully started by the audio engine.  

InactiveThe device should be available for use in this session but has not been started yet

UnavailableThe device is in use elsewhere, such as by another audio application or by the dreaded “MS GS Software Wavetable Synth”, a MIDI output option you should never use!
Beyond LogicYou get this if the device for some unknown reason refuses to start and/or displays erratic behavior of any kind. Sometimes, closing and re-opening the control panel may cure the situation, as may unplugging and re-inserting of USB devices. Sometimes, this can also mean the same as “Unavailable”, whenever the device does not report its current availability or the lack thereof back to ASIO4ALL.

Note: If the device list is empty, this means that you do not have a single WDM audio device in your system. Please check with your audio hardware manufacturer for a WDM driver!

ASIO Buffer Size

Use the slider to adjust the ASIO buffer size for the device currently highlighted. Smaller buffer size means lower latency. Once you hear crackles or audio becomes distorted, you need to increase the buffer size. ASIO buffer size directly relates to audio latency. Thus, you want to get a rather small value here.
You may have noticed in the above picture that there is a mark underneath the slider handle. The mark represents the current size of the ASIO buffer.

Most of the time, the position of the mark will follow the position of the handle. But sometimes, it would not.
There are three possible reasons:
1. You changed the buffer size for a device that is not currently the active one.
2. The audio host application has decided to override the driver recommended value on purpose.
3. The audio application needs to be restarted in order for changes to take effect.

Load default settings

Pressing this button will reset all configuration options to their initial defaults. Use when audio initially worked and you later got lost in the configuration process. Also, if you updated your ASIO4ALL to a new version, this option will load the settings recommended by the new version.

Switch to advanced mode

Switches the control panel into “advanced” mode, where you can fix things or completely mess them up at your disposal. “Advanced” mode is explained in the “Advanced Configuration” section of this document.

Advanced configuration

Once the control panel has been switched to advanced mode, things begin to look a little more complicated. The device list is now expandable and you can enable more than one item at a time.

The device list contains Devices, Device Interfaces and so called “Pins”.
Devices are independent hardware units most of the time. It is easy to understand the concept of audio devices, as the term in this context means exactly what common sense would suggest.
Each audio device has one or more Device Interfaces (sometimes also called “filters” by Microsoft.) They represent physical sub units of a Device. If a Device has just one single Device Interface, this Interface will not be shown. Selecting a Device – in this case – would also select its Interface. In our example, the single Interface of the upper Device is hidden. The visible input(🎤) and output(🔈) items are not Interfaces, but rather so-called “Pins“.
Each Interface has one or more Pins. Each Pin represents a single in-bound or out-bound audio stream. If an Interface has just one single Pin, this Pin will not be shown. Selecting an Device/Interface – in this case – would also select its Pin. In our example, the Interfaces of the second Device are shown, but the Pins are hidden.

Note: It is perfectly possible to use ASIO4ALL without having understood any of the above!

Device aggregation

Using the button next to each entry, you can now selectively enable/disable each particular item in the device list. This way, you can also create multi-device-setups (“aggregate devices”) .

Multi-device-setups require that all the devices involved are running from the same clock source. You can achieve this by daisy-chaining devices via S/PDIF etc. On-board devices usually share a common clock source.

USB devices come in three flavors in this regard:

  1. Synchronous
  2. Asynchronous
  3. Adaptive

Only synchronous devices will adjust their audio clock to the USB clock of the computer and hence are likely to have no problems working together with other devices in the same setup. Ironically, these will be the cheapest devices on the market, as they use chips that do not even need a crystal for audio clocking.

Here is how to obtain this information about any USB audio device:

  • Download the free “usbtreeview” from the Web site of the author: https://www.uwe-sieber.de/usbtreeview_e.html.
  • Extract the archive and run the tool (no installation required)
  • Find your USB device and parse the descriptor information as shown below…

Note: If devices are not accurately synchronized, their audio streams are likely to drift apart over time. This may take minutes, sometimes hours, until there are audible artefacts.

Latency Compensation

Since ASIO4ALL does not have sufficient knowledge of the underlying hardware/driver architecture, it can only guess the actual latencies involved. With these sliders you can compensate for the latencies unknown to ASIO4ALL such that recordings in your sequencer Software are properly aligned with the rest.

Note: In multi-device-setups the largest respective value of all devices will be used. Therefore, if different devices have different inherent latencies, audio placement will not be accurate for some devices!

Hardware Buffer on/off

Note: For WaveRT drivers, this box is labeled “Allow Pull Mode (WaveRT)” instead!

Enables the hardware buffer for the highlighted device. This only works for so called “WavePCI” miniports, as other types of WDM drivers do not usually allow direct access to the hardware buffer. Adjustment for best hardware buffer performance involves the “ASIO Buffer Size” slider and the “Buffer Offset” slider (see below). Hardware buffering works best for rather small ASIO buffer sizes. Try something between 128 and 256 samples as a starter! The biggest advantage of using the hardware buffer is that this method uses a lot less CPU. In addition, it may be possible to decrease latencies even further.

In multi-device-setups, it is possible to mix Hardware-buffered devices with devices that are not. This, however, is not particularly recommended!

With Envy24-based PCI-sound cards, there may be an option in your sound card control panel that reads “DMA Buffer Transfer Latency” (Seen with Terratec products) or similar. You should set this to the lowest possible value, e.g. “1ms” for best results.

Note: If hardware buffering is not supported by a particular audio device, there will be an additional latency of a couple hundred milliseconds, which is clearly audible.

Kernel Buffers/Buffer Offset

If hardware buffering is disabled, this control lets you add up to two more buffers to be queued for audio output. Each additional buffer increases the output latency of the device by the time it takes to play one buffer.

Therefore, the initial setting of “2” should only be changed on less powerful machines, where reasonably small ASIO buffer sizes cannot be achieved with the default setting.

If hardware buffering is enabled, this control determines the amount of clearance (in ms) between where ASIO4ALL will insert data into/read data from the hardware buffer, and the position where ASIO4ALL currently thinks the hardware read/write position is.

Allow Pull Mode (WaveRT)

Note: These controls have no effect for WaveRT packet devices. Packet devices do not support polling – and always will use event mode. Therefore, the entire “Options” section will be hidden for packet devices. This is not a bug!

There are two basic access methods for a WaveRT device, “pull-mode” (also called “event-mode”) and “push-mode” (also called “polling mode”).

If this box is left unchecked, ASIO4ALL will not use “pull-mode”, otherwise it will use it whenever possible. The default mode will be polling, though, because it is the most compatible one. Especially for small ASIO buffer sizes and those that are not multiples of “32”, WDM drivers may refuse to support Event Mode buffer creation. In that case, ASIO4ALL will revert to polling instead, which you may not even notice.

The “Buffer Offset” only matters when polling is used. The default is now at 1ms, which should work in most cases. You may also try 0ms, which results in even less latency. As a general rule: Higher settings increase latency and stability, lower settings have the adverse effect. Thus, this value should be as close to zero as possible.

Always Resample 44.1<->48 kHz

ASIO4ALL can do real time resampling of 44.1 kHz audio to/from 48 kHz. Resampling will automatically take place whenever ASIO4ALL is opened for 44.1 kHz and the WDM driver does not support this sample rate.

There may, however, be instances in which case an audio device will support 44.1 kHz only by resampling internally. More often than not, however, this resampling quality is extremely poor and/or prone to stability issues. To work around this, you can enable this option.

Force WDM driver to 16 Bit

This option only has an effect if the supported bit depth of the WDM driver is larger than 16, but less than 24. Some devices report e.g. 20 Bits resolution but cannot actually be opened for more than 16 Bits resolution. Should this be the case on your system, this option provides a workaround. Originally, this was introduced as a workaround for an issue with the SigmaTel AC97 WDM driver.

Common usage cases optimizations

Playing software synths live

In this scenario, you do not need audio inputs. Therefore, you best disable them all, which normally will provide you with a better stability at very small ASIO buffer sizes, or allow smaller buffer sizes in the first place. Further, you should also disable all audio outputs you do not really need. To disable channels, use the advanced control panel, expand the items in the WDM device list and disable everything you do not want to use in this setup!

Computer as effects processor

Obviously, in this scenario you do need inputs. But, as always, you should disable all channels you do not want to use. Disable 44.1KHz resampling if it is not really necessary!

General purpose sequencer setup

Normally it matters most that you do not get any dropouts even when the CPU load goes through the roof. Thus, it is recommended that you relax the latency requirements a little and work with an ASIO buffer size that feels comfortable with all your favorite VST plugins active. This especially applies when you are recording audio, in which case dropouts are a little worse than just moderately annoying. If your sequencer provides latency compensation, you probably want to check that recorded audio is aligned properly, and, if not, make the necessary adjustments in the “Latency Compensation” section in the advanced settings dialog.

Latency does not matter a lot

In certain configurations, ASIO4ALL allows for bit transparent audio where the Windows driver stack does not. Hence, audiophiles prefer ASIO output over DirectSound or MME, which most likely does mangle audio data. In these scenarios, latency is of little concern and audio input is not asked for. Naturally, you would make sure that all inputs are disabled, set the ASIO buffer size to the maximum and be happy!

Troubleshooting

Since ASIO4ALL presents itself to the audio software as a single ASIO driver, but due to its various configuration options, can act like a chameleon, there are numerous things that can go wrong without ASIO4ALL being at fault. Most notably, if you change the device setup in the ASIO4ALL control panel, the number of available input and output channels is likely to change, as well as the names of the channels that are seen by the host application. Therefore, it is always advisable to restart your audio host application after any change in the audio device setup whenever you find that the particular application does not appear to be able to handle these kinds of changes on the fly.

More potential problems and possible solutions:

ASIO4ALL not visible in host audio configuration menu

There are two possible reasons for this: Either your audio application does not support ASIO or you installed ASIO4ALL v2 as an underprivileged user. In the latter case, please log on as Administrator and install ASIO4ALL v2 again. Once successfully installed, ASIO4ALL v2 should not require Administrator privileges anymore in order to run.

Audio device flagged as “Unavailable” or “Beyond Logic” even though it is not in use elsewhere

You want to make sure the “MS GS Software Wavetable Synth” or anything by a similar name is not enabled anywhere in you MIDI setup.

Another reason often observed may be a browser window open, which had e.g. a Youtube-Video running. It is not necessary that the video still runs – it still may be blocking your audio device.

If this can be ruled out, try to restart the audio host application. Sometimes, when switching from another driver to ASIO4ALL v2, the previous driver will not release the audio device in time.

If the device is an USB/PCMCIA/FireWire device, close the ASIO4ALL control panel, unplug the device, plug it in again and re-open the ASIO4ALL control panel.

Cannot play sound from another application when ASIO4ALL is active

This by design. As close to the hardware as possible means that all the software mixing provided by Windows will be bypassed. Without any software mixing – and the associated latency and bit mangling – you are stuck with the hardware mixing capabilities of your audio device. Most of the time, there simply are no hardware mixing capabilities at all.

Changes made in the control panel do not propagate between different audio applications

Neither do they propagate between different users! This is not a bug, but a feature! ASIO4ALL v2 stores settings per host application/per user! This makes it possible to have several instances of ASIO4ALL run at the same time for as long as they do not try to use the same piece of audio hardware exclusively.

Latencies displayed by the host application do not match the values that would result from the ASIO buffer size

ASIO4ALL supports the latency compensation features of ASIO hosts that perform latency compensation. This support is still a bit under development and will be improved as time passes. The values reported here are not just the latencies ASIO4ALL adds to the audio stream, but rather the represent the whole of driver/OS/hardware inherent latencies. If the guess was correct, that is…