声卡入门·2009版 说说音频API
夏昆冈 于 2010.03.25 19:54:22 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:09.44/85

一般程序如果需要指挥声卡干播放或者录制的活儿,就需要一个指令,不同的声卡干同样的活,却可能会有不同的指令或者不同的指令方法,为了统一调用的过程,于是出现了好几套API,API就是Application Programming Interface,应用程序编程接口的意思,有了API,可以抛开硬件去设计程序,因为不管什么声卡,只要能够支持该套API就可以用统一的指令去调用。

MME

MultiMedia Extensions,多媒体扩展,这是Windows平台最古老的API了,这是最为简单易用的一套API,直接包含在WinAPI或者 WinAPI32当中,编程序的时候只需调用WinAPI中相关的函数就可以实现播放和录制,实现输入输出功能。MultiMedia Extensions是一套高级的API,系统监管程度很高,流程也很长,因此响应速度并不快。所有能用于Windows平台的声卡都支持这套API,也是目前运用最为广泛,兼容性最好的API。

DirectSound

  • Windows95发布后,微软发现游戏商还是乐意用DOS作为游戏平台,原因是游戏开发商发现Windows95并不适合执行视频和音频任务,因为WinAPI32包含的多媒体函数响应太慢了。微软于是推出了著名的DirectX,DirectX是一套视频音频API以及视频音频的DSP(效果器)API。DirectSound是其中的一部分,DirectSound有2D/3D之分,DirectSound有效果器函数,因此在输出的时候还可以加入回声等效果,用来仿真真实的声效环境。 DirectSound主要为游戏提供服务,在一些播放器以及音频编辑器上,DirectSound也被作为实时效果API使用。DirectSound 注重输出,输入方面并没有特色。只要硬件支持,DirectSound能够明显加速输出响应。Windows的音频输出响应速度提高到了一个新的档次。除了古老的某些声卡之外,几乎所有声卡都支持DirectSound,至少支持DirectSound 2D。

    2006年11月,微软发布Windows Vista,Vista出人意料的放弃了对DirectSound 3D 硬件层(HAL)的支持,也就是说,那些支持DirectSound 3D硬件加速的声卡,通通失去了加速能力。最新发布的Windows 7继承了Vista的这个特性,DirectSound 3D硬件加速退出历史舞台。

    A3D

    这一套3D 音频API,它全称是Aureal 3-Dimensional,由Aureal公司开发,它能大大降低游戏开发组对音效的处理难度,所以迅速的流行开来,A3D有数个版本,A3D 1.0能通过2个扬声器来模拟3D音效,而A3D 2.0时,就开始支持4声道3D音效了,A3D不但获得开发组的好评,实际效果也非常出色,但成功来得太快,招致了自我的膨胀以及竞争对手的纠缠,众人期待的A3D 3.0 还没来得及正式应用,Aureal却倒下。创新收购Aureal后,并没有独立发展A3D,A3D从此也就销声匿迹。

    EAX

    EAX 即 Environmental Audio Extensions,环境音效拓展集,它算不上是一套独立的API,它是以DirectSound 3D为基础,构筑的一套3D API,它的开发者就是大名鼎鼎的Creative。Creative推出EAX是为了和A3D竞争,并最终获得市场的胜利,创新收购Aureal后,A3D的一些先进算法被导入到EAX当中。

    OpenAL

  • OpenAL是一个免费的跨平台的音频3D API,由Loki Software开发,但Loki Software没多久就倒闭了,自由软件社区接手进一步的开发,现在的实际主导者就是Creative。由于Vista放弃对DirectSound 3D硬件加速的支持,Creative也陷入尴尬境地,要让EAX继续发展下去,只能加强对OpenAL的支持。Creative希望在OpenAL的基础上重构EAX,要实现这一步并不难,但真正要广泛应用,还需游戏厂商的大力支持。时至今日,OpenAL的被支持力度仍旧比不上当年的DirectSound 3D,Creative要重现辉煌,尚需时日。但如果努力获得成功,可能获得极大的收益,因为OpenAL是唯一一个跨平台的API。

    WDM

    Windows driver module。这是Windows 98 SE/ME/2000的一个新特征,WDM驱动推出后,人们发现以前不支持多音频流的声卡都能播放多个音频流了。WDM也可以算是一套API,通讯的对象是驱动程序而不是普通的应用程序,只要驱动支持WDM,会增加不少功能,例如通用的软波表等。在输入输出方面,WDM比MultiMedia Extensions和DirectSound都要好点,现在几乎所有没有被淘汰的声卡都支持WDM。WDM可以让声卡的延时大大降低,某些时候甚至可以媲美ASIO,在一些专业的音频编辑创作软件中,已经对WDM提供了支持。

    ASIO

    即Audio Stream Input Output,这是一套带有专业色彩的API,名字就说明问题,是一套专门负责输入输出的API。在专业创作的时候,一点平时并不起眼的延时都会严重的破坏创作情绪,当按下琴键后需要几百毫秒才能有所反应的话,会是一个什么样子的感觉。ASIO因此诞生,音乐制作软件Cubase VST的开发者Steinberg公司提出了被称为Audio Stream Input Output的标准规范,ASIO完全摆脱了Windows操作系统对硬件的集中控制,它能实现在音频处理软件与硬件之间进行多通道传输的同时,将系统对音频流的响应时间降至最短。这套API在普通播放和录音时并没有大的优势,因此也不是太多声卡支持。

    Kernel streaming

    中文意思就是内核流,这是一种直接访问底层数据的方式,它可以绕开系统的混音器(Mixer)等“重重关卡”,直接与声卡通讯,这使得输出效率得到提高,输出延时降低。这与ASIO的原理有些相似,但Kernel streaming并不支持输入。

    UAA

    这是Vista推出一套新的驱动模型,全称Universal Audio Architecture,意思为通用音频架构。Microsoft认为声卡厂商的驱动质量良莠不齐,导致系统不稳定,因此对驱动模型做了修改。

    UAA主要包括三个部分

    Multimedia Device API - 多媒体设备API
    Device Topology API - 设备拓扑API,获取设备的功能布局
    Windows Audio Session API (WASAPI) - Windows音频对话API,例如同时启用Foobar2000和QQ,Windows会认为这是2组对话(Session),每组对话能单独的进行控制,这种新功能取代了老旧的混音器(Mixer),而混音器一直被发烧友认为是对音质有着劣化影响的,因此WASAPI被认为对音质有提升帮助。WASAPI在延时方面也有改善,相比老的驱动模型,它变得更加“迅速”。

    以及其他一些新特性,UAA理论上能增强音频子系统的稳定性,但它对声卡厂商的打击也是非常巨大的,很多厂商跟不上Microsoft的脚步,新驱动迟迟不能发布。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    120.153.000.***
    120.153.000.***
    发表于2017.12.26 06:50:33
    18
    10

    此帖使用Win10提交
    发表于2017.12.25 19:52:27
    17
    061.129.***.***
    061.129.***.***
    16
    10
    1979 莱茵河上的罗列莱之声圆舞曲
    1999 帕格尼尼圆舞曲
    2004 夜莺圆舞曲
    2008 巴黎圆舞曲
    2018 玛丽安圆舞曲
    此帖使用Win10提交
    发表于2017.12.25 18:43:55
    15
    123.120.215.***
    123.120.215.***
    发表于2017.12.25 16:40:18
    14
    123.120.***.***
    123.120.***.***
    看了您的这篇文章很长知识,对很多曲目的创作背景都有了更进一步加深的了解,请问:文中提到老约翰·施特劳斯的圆舞曲在1979-2018期间的新年音乐会上只有5部作品亮相,请在回复中详细写清楚是哪五部?以及各自的演奏年份,在此谢过了!
    发表于2017.12.25 16:17:52
    13
    073.047.008.***
    073.047.008.***
    发表于2017.12.25 11:01:34
    11
    107.170.***.***
    107.170.***.***
    先入为主
    此帖使用iPhone提交
    发表于2017.12.25 07:45:11
    10
    03
    看着难受也没办法
    此帖使用ZUK Z2131提交
    发表于2017.12.25 06:25:31
    9
    101.069.***.***
    101.069.***.***
    文盲不懂。
    此帖使用MZ-PRO 5提交
    发表于2017.12.24 20:23:11
    7
    122.142.077.***
    122.142.077.***
    发表于2017.12.24 19:07:07
    6
    03

    此帖使用VIVO X9PLUS提交
    发表于2017.12.24 18:41:30
    5
    218.098.026.***
    218.098.026.***
    发表于2017.12.24 17:41:53
    4
    03

    此帖使用Win10提交
    发表于2017.12.24 17:34:29
    3
    060.013.***.***
    060.013.***.***
    可惜去不了现场。
    此帖使用Win10提交
    发表于2017.12.24 17:33:19
    2
    03
    不过之前一直都是等新年以后的CD版...
    此帖使用Win10提交
    发表于2017.12.24 17:21:50
    1
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    8455 为防止广告机贴垃圾,不得已而为之
    表情
    正文