Foobar2000 0.9.6.7 & WASAPI 2.1

Foobar放出了新版本0.9.6.7,修正了一些bug。比较神奇的是,这次距离0.9.6.6之间居然没有beta版本放出呢。WASAPI输出插件也已经更新到2.1了。

Adds Windows Audio Session API exclusive mode output support, allowing bit-exact output and muting all other sounds on Windows Vista systems. Windows Vista SP1 or newer required.
Version 2.0 highlights: fixed incompatibility with Windows 7; improved compatibility with certain soundcards.
Version 2.1 highlights: fixed glitch-on-seek bug.

这是WASAPI的changelog,支持Win7并且修正了bug,推荐使用Vista或者Win7的朋友使用最新的WASAPI来进行输出。

顺便附上下载地址好了:

http://www.foobar2000.org/?page=Download

 

扫盲:

那么WASAPI到底是啥东西呢?我引用一篇老文章给做个简单的解释。

Vista是微软近几年来,最大的操作系统改版。而在这次的新版本中,音效架构也出现了重大的变革,过去Windows XP的音效层级,除了应用程序之外,以下便属于核心模式(Kernel Mode)。这样的作法比较容易因为部分层级出错,就影响到整体的音效处理,因此在Vista上把过去核心模式层级的程序模块,大部分都移到使用者模式的层级中,如此一来可以增加系统稳定度,亦可以方便程序除错。Vista的音效架构起了大幅度的变化,主要的核心模式层级只剩下音效驱动的部分,而过去微软所制定出来的MME以及DirectSound API便不再直接起作用,取而代之是以WASAPI(Windows Audio Session API)来模拟这些旧有的API。

WASAPI是Vista新的UAA(Universal Audio Architecture)音效架构的API之一,这个新的API是以Session为概念,当不同的应用程序调用WASAPI,它们的需求会被各自独立成不同的Session进行音讯处理,处理过程会经过多个不同功能的APO(Audio Processing Objects),这些APO主要用来处理音量增益、格式转换及混音等功能,但并不包括SRC的动作。而且各个APO的功能各自独立不会混杂在一起,如此一来也能确保音讯处理时的质量,好过什么功能全包在一起的KMixer大杂烩,所以微软在APO的加入后,便拿掉了KMixer的功能,并将以上这些层级划分到使用者模式上,当这些流程处理完毕,才会将音讯送到驱动程序进行底层的运算处理。

从新的音效架构中,玩家可以得知Vista拿掉了几个过去常用的音效API,以及对音质影响颇大的KMixer,因此就这部分我们可以嗅出音质进化的味道。但是Vista新的音效架构,虽然改善了XP在安全性及音质层面的缺陷,却也导致了其它阶段性的问题产生。由于Vista推出前期有不少声卡厂商,还来不及针对WASAPI撰写新的驱动,因此只能以支持Windows XP的WDM(Windows Driver Model)驱动硬上,虽然Vista仍然可以使用WDM驱动,但并无法保证其兼容性,而且在音效架构本身就有所变化的同时,使用WDM驱动是可以完成安装没错,但却会出现音效播放时的时间位移或是音效中断等状况。除此之外,许多玩家会使用的创新未来EAX游戏音效处理,主要是透过DirectSound3D这个API,将数据送至音效晶片进行运算处理,藉此减轻处理器的运算负担,但在新的Vista音效架构中DirectSound已被移除,改由模拟转换的方式送至WASAPI中进行后续处理,但WASAPI并无法将数据直接送进硬件层,因此中间的转换过程便会造成EAX音效产生错误,这也使得创新未来必须重新针对各系列支持EAX音效的产品撰写驱动程序,就我们目前了解,X-Fi系列产品最先获得支持,至于较前期的声卡也会在近期陆续更新驱动。因此玩家若要在Vista使用音效,最好先到声卡的官网上,确认产品是否已有新的Vista驱动,否则难保不会出问题。

当然在Vista的音效功能中,除了解决KMixer的音质问题之外,WASAPI新的Session概念,也可以让每个使用音效的应用程序,个别控制其音量大小,也就是说如果同时有两个应用程序播放音效,玩家将可以在Vista的音量混音程序中,各别调整这两个应用程序的音量,这是过去在XP下所办不到的。另外Vista的音效控制还新增了几个功能,其中低音加强及低音保护,主要是针对低频段的几个频率讯号进行增益或衰减,如此一来可以满足玩家对于强劲低频的追求,或是降低其信号强度,以免发音单体出现破音的状况。而房间修正的功能,则是可以将麦克风放置在玩家最常聆听计算机音效的位置进行收音,然后透过喇叭系统播放测试讯号,如此一来麦克风便能将喇叭系统所处的空间播放状况收录下来,交由Vista进行空间反射的试算,自动调整声音播放时的频段增益,达到较好的聆听效果。而房间修正的功能只有在喇叭播放装置上才能进行调整,因为以耳机进行聆听的状况下,并不会有空间反射问题,但却会出现音场上的限制,因此针对耳机系统,Vista也提供了音效仿真功能,可以透过算法来创造出不同空间的环境音效。

从音效架构来看,理论上Vista操作系统下的播放音质会比XP来得好,因此我们一样采用foobar2000来播放测试讯号,并透过RMAA进行音质比对。在测试的过程中,小编发现Realtek的HD Audio Codec无法以foobar2000的KernelStreaming输出,但在X-Fi声卡中并不会出现这个问题,这有可能是因为创新未来的驱动程序仍以WDM为基础,而Realtek的HD Audio Codec则已针对UAA架构进行开发,所以在foobar2000中无法使用Kernel Straming输出,因此小编只针对DirectSound及ASIO输出进行测试。从RMAA所测得的结果,我们可以发现在Vista操作系统中,使用DirectSound跟ASIO输出,其失真度的测试表现略有差异,其中不论是总谐波失真(Total Harmonic Distortion)或是互调失真(Intermodulation Distortion)的成绩,都仍以ASIO输出为佳。但不是说Vista的音效架构比较好吗?架构优于XP是肯定的,只是DirectSound的输出就Vista音效架构上来看,虽然少了KMixer的干扰,但仍会透过仿真程序经WASAPI后端各APO处理后,才会送交驱动程序进行硬件层的连结,但ASIO就先天的特性来说,为了低延迟而直达硬件层,确实还是占有较高的优势。但如果我们对比XP及Vista在相同设定值下的成绩,可以发现Vista操作系统下所测得的大部分数据,都要比XP相同设定值所测得的成绩来得好,而且DirectSound及ASIO的差距幅度也明显减少,从这部分不难看出架构上的优势。另外就最佳设定值的取向来看,我们可以发现在Vista操作系统中,若内建音效要获得较好的声音质量,仍得使用ASIO输出外加SSRC的DSP,其设定值和XP的播放环境相同。除此之外,小编也对比了XP及Vista操作系统中的两个最佳化设定,我们可以发现尽管Vista的音效架构优于XP,但透过foobar2000的音质设定最佳化,则可以克服XP音效架构先天的缺陷,达到和Vista一样的播放质量。因此就音效使用来说,如果玩家习惯采用foobar2000当成播放软件,并且作了音质最佳化的动作,那就XP及Vista几乎没什么差别,但若是其它功能不足的应用程序直接播放音效,那么Vista的预设环境便优于XP。

这片文章基本上要表达的意思,就是说,在Vista(Win7)这个新的WASAPI音频构架下,十分不推荐使用DirectSound输出,因为在Vista(Win7)下已经没有DirectSound了,都是模拟出来的。当然如果你的声卡支持原生ASIO,也可以使用ASIO输出。我的MAYA44支持原生ASIO,但是我个人觉得用ASIO听歌有点蛋疼,还是WASAPI比较好一些。

另外既然说到这里,就再顺便说一下Vista(Win7)下的音频设置好了。

在Vista(Win7)下,可以设置播放设备和录制设备的属性,包括采样率、位深和是否支持独占等等。这个是很重要的设置哦~

player

我这里设置的是24位,48000Hz。这样设置就代表,系统发出的一切声音都将会以这个形式输出。采样率是影响音质的一个很重要的参数,而且重采样这个动作,是非常非常影响音质的。 我们听的歌,都是来自CD的,CD的格式是16位 44100Hz,所以如果在foobar里使用DirectSound输出,这里这样设置的话,输出的内容会被重采样到48000Hz,这就十分影响音质了。如果在foobar里用WASAPI输出的话,则会保持音源格式,也就是16位 44100Hz输出,这样就不会对音质产生影响。

但是为什么我要设置成24bit 48000Hz呢?=_=当然我有个专业声卡,我比较蛋疼都是原因之一。不过更重要的是,我们看的视频,无论是TVRip还是DVDRip或者是BDRip,音频都是48000Hz的(只要压制的时候别乱搞),所以这里这样设置,在看视频的时候就能保持原48000Hz输出了。

这样的话,foobar听歌可以44K输出,平时应用则是48K输出,皆大欢喜皆大欢喜。

“Foobar2000 0.9.6.7 & WASAPI 2.1”的2个回复

  1. Pingback: 银河星尘

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注