Skip to content

ASIO401 2.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 15 May 21:51
· 1 commit to master since this release

Major changes

  • 🎉🎉🎉 ASIO401 now supports the QA403 and QA402 audio analyzers! 🎉🎉🎉 (see usage docs)
    • This includes configurable input and output scales, as well as support for the additional sample rates.
    • This comes in addition to the QA401, which is still fully supported.
    • With my thanks to Matt Taylor from QuantAsylum for his help understanding the QA403/QA402 protocol and behavior.
    • See #23.
  • New configuration option: fullScaleInputLevelDBV
    • This is used to configure the QA40x input gain.
    • This replaces the attenuator option, which is now deprecated as it is not flexible enough for the QA403/QA402 which has more than two input gain levels.
  • New configuration option: fullScaleOutputLevelDBV
    • This is used to configure the QA403/QA402 output gain.
  • Fix a bug that could prevent applications from working with ASIO401 if they issued a GetLatencies() call before a CreateBuffers() call. See dechamps/FlexASIO#122.
    • One example of an affected application is vvvv. More generally this affects all applications based on NAudio.
  • The core streaming logic of ASIO401 underwent a complete rewrite.
    • The new logic uses a double buffering mechanism on the backend side to make ASIO401 much more resilient to glitches/dropouts from missed thread scheduling deadlines, especially at higher sample rates.
    • The priming logic was also improved to be more efficient, less prone to glitches, and more compliant with the ASIO spec.

Minor changes

  • ASIO401 will now reject buffer sizes that are not multiples of 32 (for the QA401) or 64 (for the QA403/QA402) if output channels are used.
    • Indeed it has been observed that the hardware will output garbled audio with such buffer sizes.
  • ASIO401 will now abort pending I/O on stop.
    • This should make the driver more responsive to stop commands, especially when large buffer sizes are used.
  • Fix a bug where, if an host application calls OutputReady() after returning from bufferSwitch(), ASIO401 may output corrupted audio. See dechamps/FlexASIO#180.
  • Incorrect calls made by the host application on an uninitialized driver will now return an error instead of crashing. See #20.
  • ASIO401 will now refrain from logging if the logfile size exceeds 1 GB. See dechamps/FlexASIO#146.
    • This is to avoid accidental disk space exhaustion when forgetting to remove the logfile.
  • Fix a bug in ASIO401Test where it would always operate in "inhibit OutputReady()" mode even if the --inhibit-output-ready command line option wasn't passed.
  • ASIO401Test default text output is now less verbose and more readable.