Assets 3

This is a bugfix release focused on fixing audio discontinuities (glitches) issues related to full duplex operation and compatibility with the REW host application.

Significant changes

  • The default value for the suggestedLatencySeconds option was changed from zero to 3 times the ASIO buffer length.
    • This fixes issues with audio glitches (discontinuities) when running in full duplex mode.
    • Users who care about latency might want to explicitly set this option back to zero if it works for them.
  • Work around a bug in the REW host application which sets the ASIO sample rate incorrectly. See #31.
    • FlexASIO would always use its default sample rate even if a different one was selected in REW, resulting in audio playing too slow or too fast.

Minor changes

  • FlexASIO now refuses to initialize when an input device is accidentally set as the output device, or vice-versa.

@dechamps dechamps released this Nov 18, 2018 · 18 commits to master since this release

Assets 3

🎉 This is the first official stable release of FlexASIO. 🎉

Significant changes

  • Add the sampleType configuration option which can be used to customize the sample format. Previously, FlexASIO would always use 32-bit float as the sample type. See #13.
  • When using WASAPI Exclusive mode, FlexASIO will now try to guess the device native sample type and use that, instead of the 32-bit float default. See #13.
  • If only input channels or only output channels are used, FlexASIO will only open the corresponding device, not both. See #24.
  • Related to the above, FlexASIO will now accept a sample rate as long as the input or output device can accept it. Previously, both devices had to accept the sample rate. See #24.
    • This means that WASAPI Shared is now significantly easier to use when using only a single device.
    • When using both input and output devices, you still need matching sample rates for WASAPI Shared to work.
  • Change the default value of the suggestedLatencySeconds configuration option to 0.0, as this seems to be the most sensible value regardless of use case. See #8.
    • This significantly improves FlexASIO latency in the default configuration.

Minor changes

  • Fix a bug where FlexASIO would fail to initialize if there are no audio input devices (or no audio output devices) installed. See #28.
  • Fix a bug where FlexASIO would drop the first few audio buffers just after the stream started. See #27.
  • Add a Frequently Asked Questions page.
  • Overall documentation clean up and improvements.
  • The parsed configuration is now dumped to the log. See #26.
  • Fix a potential race condition around sample position and timestamps.
  • FlexASIOTest now supports sample rates other than 48 kHz.
  • The FlexASIO source code has been moved to an src/ subfolder to declutter the GitHub home page.

@dechamps dechamps released this Nov 11, 2018 · 52 commits to master since this release

Assets 3

You probably want FlexASIO 0.5a. For some reason GitHub is showing the releases in the wrong order.

Significant changes

  • Add the device configuration option which can be used to change the hardware audio device that FlexASIO will use, instead of using the backend default device. It can also be used to disable the input or output side. See CONFIGURATION for details. Closes #22.
  • Add PortAudioDevices, a command-line utility that outputs detailed information about the list of PortAudio devices. Mainly useful for setting the new device configuration option.
  • Add the channels configuration option which can be used to customize the hardware audio device channel count. See CONFIGURATION for details. Closes #25.
  • Add the bufferSizeSamples configuration option which can be used to customize the suggested ASIO buffer size, instead of the 20 ms default. See CONFIGURATION for details. Closes #19.
  • Add the suggestedLatencySeconds configuration option which can be used to customize the latency hint that is provided to PortAudio. See CONFIGURATION for details. Closes #20.

With the new bufferSizeSamples and suggestedLatencySeconds options, FlexASIO is now theoretically capable of ultra-low-latency operation. See the example in CONFIGURATION for a set of options to use as a starting point.

Minor changes

  • The default ASIO buffer sizes have changed slightly. The new default behaviour is to advertise minimum, preferred and maximum buffer sizes of 1 ms, 20 ms and 1 s, respectively, at whatever sample rate FlexASIO is set to. Previously, the buffer size did not depend on the sample rate.
  • The default PortAudio "suggested latency" is now set to the ASIO buffer size. Previously, FlexASIO would use the "default low latency" number from the PortAudio device information.
  • Lots of additional detail added to log messages.
  • Core FlexASIO business logic code underwent a lot of refactoring. Watch out for regressions.
  • The FlexASIO license has changed from GPL to MIT.

Built from commit 0d26439 with Visual Studio 2017 15.8.7, Visual C++ runtime 14.15.26706, ASIO SDK 2.3.1, PortAudio pa_stable_v190600_20161030.

@dechamps dechamps released this Nov 11, 2018 · 46 commits to master since this release

Assets 3

A few last minute additions to FlexASIO 0.5.

  • Fix a bug in 0.5 that prevented WDM-KS from initializing. (Not that much of a regression, since WDM-KS was nearly unusable in 0.4, and was not selectable in previous versions.) With that fix WDM-KS is now operational, but make sure to read the updated documentation in BACKENDS to understand the limitations. Fixes #21.
  • FlexASIO will now probe the capabilities of the ASIO host application, and log the results. This will be useful to understand what features are supported by host applications and are therefore worth implementing in the future.

@dechamps dechamps released this Nov 1, 2018 · 104 commits to master since this release

Assets 3

Significant changes

  • The default backend used by FlexASIO has changed from WASAPI Shared to DirectSound.
    • The goal of this change is to reduce user frustration by making it more likely that FlexASIO will "just work" out of the box; this sidesteps the whole sample rate shenanigans that were required to make WASAPI Shared work.
    • Note that this has significant implications in terms of latency and the overall behaviour of the audio pipeline; see BACKENDS for details.
    • To go back to the previous WASAPI Shared backend, simply set backend = "Windows WASAPI" in your configuration file (see below).
  • FlexASIO behaviour can now be customized using a configuration file. See CONFIGURATION for details.
  • New configuration option: backend, which can be used to change the backend that FlexASIO uses. It can be set to any PortAudio-supported host API, such as MME, DirectSound, WASAPI, or WDM-KS. See BACKENDS for details.
  • New configuration option: wasapiExclusiveMode, which can be used to choose between the shared and exclusive WASAPI modes.

Minor changes

  • Attempting to open the FlexASIO "control panel" (settings button) will now display the configuration documentation, instead of doing nothing.
  • Fix a FlexASIOTest crash when driver initialization fails.

Built from commit 2c27632 with Visual Studio 2017 15.8.7, Visual C++ runtime 14.15.26706, ASIO SDK 2.3.1, PortAudio pa_stable_v190600_20161030.

@dechamps dechamps released this Oct 27, 2018 · 120 commits to master since this release

Assets 3

Hotfix release that fixes a grave regression introduced in 0.3 that made it impossible to install FlexASIO on Windows 7. See #15. (Windows 8 and greater is not affected.)

@dechamps dechamps released this Oct 24, 2018 · 128 commits to master since this release

Assets 3

Significant changes

  • Fix a grave bug that can make it impossible to open the audio stream. This can happen under somewhat random conditions, though it seems more likely to happen in 32-bit mode. Closes #14.
  • Fix a grave bug that made FlexASIO-provided timing information unusable. The timestamps and sample counts reported by FlexASIO were completely corrupted, potentially causing erratic behaviour in host applications. Closes #9.
  • FlexASIO will now log to a text file, instead of requiring the use of a debugger to get the logs. Closes #5. See the README for details.
  • Redirect the PortAudio debug output to the FlexASIO log. Closes #4.
  • Add FlexASIOTest, a command-line self-test utility to help testing and troubleshooting FlexASIO. Closes #7. See the README for details.

Minor changes

  • Romove the Microsoft Visual C++ redistributable installers that were introduced in 0.2; go back to shipping the MSVC runtime DLLs directly to address the reboot issue in #12.
  • Fix a bug where FlexASIO would violate the ASIO specification by not zero-filling the reserved fields in timing-related data structures.
  • Make FlexASIO behaviour more similar to the canonical ASIO SDK example by not setting the speed field in timing-related data structures.
  • Increase the resolution of timestamps that are reported to the ASIO host application.
  • FlexASIO log lines now include a precise ISO 8601 timestamp. This might make it easier to troubleshoot performance or timing-related issues.
  • Include detailed FlexASIO build information, PortAudio build information, and host process information in the FlexASIO log.
  • FlexASIO log lines now include the Process ID and Thread ID. This makes it easier to understand the log in context and to troubleshoot race conditions.
  • Include version metadata in .dll and .exe file (can be seen in e.g. the "Details" tab on file properties).
  • Install the 64-bit (x64) and 32-bit (x86) binaries in different subfolders to make it easier to bundle dependent DLLs.
  • Ship PDB files with the installer to make it possible for end users to get proper thread stacks.
  • Remove version information from registry.

Built from commit d42407f with Visual Studio 2017 15.8.7, Visual C++ runtime 14.15.26706, ASIO SDK 2.3.1, PortAudio pa_stable_v190600_20161030.

@dechamps dechamps released this Oct 13, 2018 · 207 commits to master since this release

Assets 3
  • 64-bit ASIO host application support.
  • Installer now cleanly installs the MSVC++ runtime instead of using local DLLs.

Built from commit 2bc9eeb with Visual Studio 2017 15.8.7, Visual C++ runtime 14.15.26706, ASIO SDK 2.3.1, PortAudio pa_stable_v190600_20161030.

@dechamps dechamps released this Feb 20, 2014 · 0 commits to d738ddfdf1be3aa824ec9364a3ac38daf066f4e8 since this release

Assets 3

First release. It should work, but it's missing important features, such as a configuration interface. See the README for details.

Compiled from commit d738ddf
Bundled with PortAudio library version: pa_stable_v19_20140130, January 30, 2014, SVN rev 1919