Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
This is a bugfix release focused on fixing audio discontinuities (glitches) issues related to full duplex operation and compatibility with the REW host application.
- The default value for the
suggestedLatencySecondsoption 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.
- FlexASIO now refuses to initialize when an input device is accidentally set as the output device, or vice-versa.
- Add the
sampleTypeconfiguration 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
suggestedLatencySecondsconfiguration 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.
- 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.
FlexASIOTestnow supports sample rates other than 48 kHz.
- The FlexASIO source code has been moved to an
src/subfolder to declutter the GitHub home page.
You probably want FlexASIO 0.5a. For some reason GitHub is showing the releases in the wrong order.
- Add the
deviceconfiguration 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.
PortAudioDevices, a command-line utility that outputs detailed information about the list of PortAudio devices. Mainly useful for setting the new
- Add the
channelsconfiguration option which can be used to customize the hardware audio device channel count. See CONFIGURATION for details. Closes #25.
- Add the
bufferSizeSamplesconfiguration 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
suggestedLatencySecondsconfiguration option which can be used to customize the latency hint that is provided to PortAudio. See CONFIGURATION for details. Closes #20.
With the new
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.
- 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.
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.
- 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.
- 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.
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.)
- 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.
FlexASIOTest, a command-line self-test utility to help testing and troubleshooting FlexASIO. Closes #7. See the README for details.
- 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
.exefile (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.
- 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
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