FlexASIO,灵活的通用ASIO驱动程序
由[Etienne Dechamps][]提供 - [GitHub][]
ASIO是Steinberg Media Technologies GmbH的商标和软件
如果您正在寻找安装程序,请查看[GitHub发布页面][releases]。
描述
FlexASIO是一个通用[ASIO][]驱动程序,这意味着它不局限于特定的音频硬件。其他通用ASIO驱动程序的例子包括[ASIO4ALL][]、[ASIO2KS][]、[ASIO2WASAPI][]。[KoordASIO][]是FlexASIO的一个衍生版本,专注于WASAPI和用户便利性。
通用ASIO驱动程序使用操作系统提供的硬件无关音频接口来产生和消费声音。这类驱动程序的典型用途是让ASIO可以与没有自带ASIO驱动程序的音频硬件一起使用,或者在捆绑的ASIO驱动程序不提供所需功能的情况下使用。
虽然ASIO4ALL和ASIO2KS使用一种称为*[内核流](也称为"DirectKS"、"WDM-KS")的低级Windows音频API来运作,而ASIO2WASAPI仅使用[WASAPI][](仅限独占模式),FlexASIO的不同之处在于它使用了一个名为[PortAudio][]的中间库,该库本身支持大量的操作系统声音API,包括内核流和WASAPI(共享和独占模式),以及更常见的[MME][]和[DirectSound][] API。因此,FlexASIO可以用于与Windows系统上可用的任何*声音API进行接口。更多信息,请参阅[后端文档][BACKENDS]。
除此之外,这还使得模拟典型Windows应用程序以共享模式打开音频设备成为可能。这意味着其他应用程序可以同时使用相同的音频设备,Windows音频引擎会混合各种音频流。其他通用ASIO驱动程序不提供此功能,因为它们总是以独占模式打开音频设备。
系统要求
- Windows Vista或更高版本
- 兼容32位和64位ASIO主机应用程序
使用方法
运行[安装程序][releases]后,FlexASIO应该会出现在任何ASIO主机应用程序(如Cubase、Sound Forge、Room EQ Wizard)的ASIO驱动程序列表中。
默认设置如下:
- DirectSound [后端][BACKENDS]
- 使用Windows默认录音和播放音频设备
- 32位浮点采样类型
- 20毫秒"首选"缓冲区大小
以上所有设置都可以通过[配置文件][CONFIGURATION]进行自定义。您可能想使用第三方工具,如flipswitchingmonkey的[FlexASIO GUI][FlexASIO_GUI]来简化这个过程。
对于更高级的用例,如低延迟操作和位完美流传输,请参阅[FAQ][]。
故障排除
[FAQ][]提供了处理常见问题的信息。此外,FlexASIO还提供了一些故障排除工具,如下所述。
日志记录
FlexASIO包含一个日志系统,它以极其详细的方式描述驱动程序内部发生的一切。这对于排查驱动程序初始化失败和其他问题特别有用。它还可以用于验证(例如,检查FlexASIO是否使用了您期望的设备和音频格式)。
要启用日志记录,只需在您的用户目录下直接创建一个名为FlexASIO.log
的空文件(例如,使用记事本创建C:\Users\您的名字\FlexASIO.log
)。然后重新启动您的ASIO主机应用程序。FlexASIO会注意到该文件的存在并开始向其中记录日志。
请注意,日志文件的内容主要供开发人员使用。尽管如此,严重错误应该会以明显的方式突出显示(特别是在日志末尾)。如果您在解释日志内容时遇到困难,请随时[寻求帮助][report]。 完成后请记得删除日志文件(或将其移至其他位置)。实际上,记录日志会降低FlexASIO的速度,可能导致音频中断(杂音)。随着时间推移,日志文件也可能变得非常大。为防止意外耗尽磁盘空间,当日志文件超过1 GB时,FlexASIO将停止记录。
设备列表程序
FlexASIO包含一个程序,可用于获取PortAudio(因此也包括FlexASIO)所知道的所有音频设备列表,以及每个设备的详细信息。
该程序名为PortAudioDevices.exe
,可在FlexASIO安装文件夹的x64
(64位)或x86
(32位)子文件夹中找到。这是一个控制台程序,应从命令行运行。使用哪个版本并不重要。
测试程序
FlexASIO包含一个基本的自测程序,可在某些情况下帮助诊断问题。它试图在可控、易于重现的环境中模拟基本ASIO主机应用程序的行为。
该程序名为FlexASIOTest.exe
,可在FlexASIO安装文件夹的x64
(64位)或x86
(32位)子文件夹中找到。这是一个控制台程序,应从命令行运行。
运行测试时最好启用[日志记录][]。
请注意,测试运行成功并不一定意味着FlexASIO没有问题。实际上,可能是您使用的ASIO主机应用程序触发了FlexASIO的某个特殊情况。如果您怀疑是这种情况,请随时[寻求帮助][report]。
报告问题、反馈、功能请求
FlexASIO欢迎反馈。如果[GitHub问题追踪器][]中还没有相关问题,请随时[提交问题][]。
在寻求帮助时,强烈建议在问题发生时[生成日志][logging],并将其附加到您的报告中。[FlexASIOTest
][test]的输出以及其日志输出也可能有所帮助。