All Projects → dechamps → Flexasio

dechamps / Flexasio

Licence: other
A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME.

Projects that are alternatives of or similar to Flexasio

Omnimidi
A software MIDI synthesizer for professional use.
Stars: ✭ 181 (-55.09%)
Mutual labels:  audio, asio
Awesome Video
A curated list of awesome streaming video tools, frameworks, libraries, and learning resources.
Stars: ✭ 397 (-1.49%)
Mutual labels:  audio
Midiwriterjs
♬ A JavaScript library which provides an API for programmatically generating and creating expressive multi-track MIDI files and JSON objects.
Stars: ✭ 381 (-5.46%)
Mutual labels:  audio
Mystiq
Qt5/C++ FFmpeg Media Converter
Stars: ✭ 393 (-2.48%)
Mutual labels:  audio
Spectro
🎶 Real-time audio spectrogram generator for the web
Stars: ✭ 383 (-4.96%)
Mutual labels:  audio
Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (-1.99%)
Mutual labels:  audio
Howler.js
Javascript audio library for the modern web.
Stars: ✭ 19,425 (+4720.1%)
Mutual labels:  audio
Ytmdl Web V2
Web version of ytmdl. Allows downloading songs with metadata embedded from various sources like itunes, gaana, LastFM etc.
Stars: ✭ 398 (-1.24%)
Mutual labels:  audio
Auto Editor
Auto-Editor: Effort free video editing!
Stars: ✭ 382 (-5.21%)
Mutual labels:  audio
Duckhunt Js
DuckHunt ported to JS and HTML5
Stars: ✭ 390 (-3.23%)
Mutual labels:  audio
Mumble
Mumble is an open-source, low-latency, high quality voice chat software.
Stars: ✭ 4,418 (+996.28%)
Mutual labels:  audio
Nussl
A flexible source separation library in Python
Stars: ✭ 383 (-4.96%)
Mutual labels:  audio
Free Spoken Digit Dataset
A free audio dataset of spoken digits. Think MNIST for audio.
Stars: ✭ 396 (-1.74%)
Mutual labels:  audio
Supercolliderjs
The JavaScript client library for SuperCollider
Stars: ✭ 381 (-5.46%)
Mutual labels:  audio
Matchering
🎚️ Open Source Audio Matching and Mastering
Stars: ✭ 398 (-1.24%)
Mutual labels:  audio
Audiowave Progressbar
Lightweight audiowave progressbar for Android
Stars: ✭ 380 (-5.71%)
Mutual labels:  audio
Beats
A command-line drum machine. Convert a beat notated in YAML into a *.wav file.
Stars: ✭ 389 (-3.47%)
Mutual labels:  audio
Android Openslmediaplayer
Re-implementation of Android's MediaPlayer and audio effect classes based on OpenSL ES APIs.
Stars: ✭ 393 (-2.48%)
Mutual labels:  audio
Web Audio Samples
Web Audio API samples by Chrome WebAudio Team
Stars: ✭ 402 (-0.25%)
Mutual labels:  audio
Audiofile
A simple C++ library for reading and writing audio files.
Stars: ✭ 399 (-0.99%)
Mutual labels:  audio

FlexASIO, the flexible universal ASIO driver

Brought to you by Etienne Dechamps - GitHub

ASIO is a trademark and software of Steinberg Media Technologies GmbH

If you are looking for an installer, see the GitHub releases page.

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

Usage

After running the installer, FlexASIO should appear in the ASIO driver list of any ASIO Host Application (e.g. Cubase, Sound Forge, Room EQ Wizard).

The default settings are as follows:

  • DirectSound backend
  • Uses the Windows default recording and playback audio devices
  • 32-bit float sample type
  • 20 ms "preferred" buffer size

All of the above can be customized using a configuration file. You might want to use a third-party tool such as flipswitchingmonkey's FlexASIO GUI to make this easier.

For more advanced use cases, such as low-latency operation and bit-perfect streaming, see the FAQ.

Troubleshooting

The FAQ provides information on how to deal with common issues. Otherwise, FlexASIO provides a number of troubleshooting tools described below.

Logging

FlexASIO includes a logging system that describes everything that is happening within the driver in an excruciating amount of detail. It is especially useful for troubleshooting driver initialization failures and other issues. It can also be used for verification (e.g. to double-check that FlexASIO is using the device and audio format that you expect).

To enable logging, simply create an empty file (e.g. with Notepad) named FlexASIO.log directly under your user directory (e.g. C:\Users\Your Name Here\FlexASIO.log). Then restart your ASIO Host Application. FlexASIO will notice the presence of the file and start logging to it.

Note that the contents of the log file are intended for consumption by developers. That said, grave errors should stick out in an obvious way (especially if you look towards the end of the log). If you are having trouble interpreting the contents of the log, feel free to ask for help.

Do not forget to remove the logfile once you're done with it (or move it elsewhere). Indeed, logging slows down FlexASIO, which can lead to discontinuities (audio glitches). The logfile can also grow to a very large size over time.

Device list program

FlexASIO includes a program that can be used to get the list of all the audio devices that PortAudio (and therefore FlexASIO) knows about, as well as detailed information about each device.

The program is called PortAudioDevices.exe and can be found in the x64 (64-bit) or x86 (32-bit) subfolder in the FlexASIO installation folder. It is a console program that should be run from the command line. It doesn't matter much which one you use.

Test program

FlexASIO includes a rudimentary self-test program that can help diagnose issues in some cases. It attempts to emulate what a basic ASIO host application would do in a controlled, easily reproducible environment.

The program is called FlexASIOTest.exe and can be found in the x64 (64-bit) or x86 (32-bit) subfolder in the FlexASIO installation folder. It is a console program that should be run from the command line.

It is a good idea to have logging enabled while running the test.

Note that a successful test run does not necessarily mean FlexASIO is not at fault. Indeed it might be that the ASIO host application that you're using is triggering a pathological case in FlexASIO. If you suspect that's the case, please feel free to ask for help.

Reporting issues, feedback, feature requests

FlexASIO welcomes feedback. Feel free to file an issue in the GitHub issue tracker, if there isn't one already.

When asking for help, it is strongly recommended to produce a log while the problem is occurring, and attach it to your report. The output of FlexASIOTest, along with its log output, might also help.


ASIO logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].