Universal ASIO driver "FlexASIO"

I would like to inform you about this “Universal ASIO driver” as an alternative to ASIO4ALL. Based on Portaudio Open-Source Cross-Platform Audio API, it features, among others, WASAPI mode, with options to use bit perfect signal path and very good response & latency. Configuration only via a text file named FlexASIO.toml

https://github.com/dechamps/FlexASIO

Instructions for configuration: https://github.com/dechamps/FlexASIO/blob/master/CONFIGURATION.md

Here is a working example:

# Use WASAPI as the PortAudio host API backend.
backend = "Windows WASAPI"
bufferSizeSamples = 256
[input]
# Disable the input. It is strongly recommended to do this if you only want to
# stream audio in one direction.
device = ""
suggestedLatencySeconds = 0.0
wasapiExclusiveMode = true
[output]
# Select the output device. The name comes from the output of the
# PortAudioDevices program.
#device = "Speakers / Headphones (IDT High Definition Audio CODEC)"
device = "Speakers (E-MU E-DSP Audio Processor (WDM))"
# Open the hardware output device with 6 channels. This is only required if you
# are unhappy with the default channel count.
channels = 2

# Set the output to WASAPI Exclusive Mode.
wasapiExclusiveMode = true
suggestedLatencySeconds = 0.0

Description

FlexASIO is a universal ASIO driver, meaning that it is not tied to specific audio hardware. Other examples of universal ASIO drivers include ASIO4ALL, ASIO2KS, ASIO2WASAPI.

Universal ASIO drivers use hardware-agnostic audio interfaces provided by the operating system to produce and consume sound. The typical use case for such a driver is to make ASIO usable with audio hardware that doesn’t come with its own ASIO drivers, or where the bundled ASIO drivers don’t provide the desired functionality.

While ASIO4ALL and ASIO2KS use a low-level Windows audio API known as Kernel Streaming (also called “DirectKS”, “WDM-KS”) to operate, and ASIO2WASAPI uses WASAPI (in exclusive mode only), FlexASIO differentiates itself by using an intermediate library called PortAudio that itself supports a large number of operating system sound APIs, which includes Kernel Streaming and WASAPI (in shared and exclusive mode), but also the more mundane APIs MME and DirectSound. Thus FlexASIO can be used to interface with any sound API available on a Windows system. For more information, see the backends documentation.

Among other things, this makes it possible to emulate a typical Windows application that opens an audio device in shared mode. This means other applications can use the same audio devices at the same time, with the Windows audio engine mixing the various audio streams. Other universal ASIO drivers do not offer this functionality as they always open audio devices in exclusive mode.

Requirements

  • Windows Vista or later
  • Compatible with 32-bit and 64-bit ASIO Host Applications
5 Likes

Thanks, good to know about this. Shared mode already make it more flexible than ASIO4ALL.

1 Like

1 Like