<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Sound</id>
	<title>Sound - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Sound"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Sound&amp;action=history"/>
	<updated>2026-04-05T03:06:26Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Sound&amp;diff=821&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“{{In Progress}}  An example of an older-style PCI sound card  当声音没有出现时被用户才会注意到它。 它构成了用户反馈体验的一个组成部分。 例如，当用户点击错误的东西时，Windows资源管理器、KDE和其他桌面环境会发出哔哔声。 它也正在游戏和多媒体体验中更占主导的地位；许多游戏和电影现在都有5.1个通道的配乐。 因此，越来…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Sound&amp;diff=821&amp;oldid=prev"/>
		<updated>2022-03-12T03:09:36Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{In Progress}}  &lt;a href=&quot;/index.php?title=%E6%96%87%E4%BB%B6:Old_Sound_Card.jpg&quot; title=&quot;文件:Old Sound Card.jpg&quot;&gt;right|frame|An example of an older-style PCI sound card&lt;/a&gt;  当声音没有出现时被用户才会注意到它。 它构成了用户反馈体验的一个组成部分。 例如，当用户点击错误的东西时，Windows资源管理器、KDE和其他桌面环境会发出哔哔声。 它也正在游戏和多媒体体验中更占主导的地位；许多游戏和电影现在都有5.1个通道的配乐。 因此，越来…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{In Progress}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Old_Sound_Card.jpg|right|frame|An example of an older-style PCI sound card]]&lt;br /&gt;
&lt;br /&gt;
当声音没有出现时被用户才会注意到它。 它构成了用户反馈体验的一个组成部分。 例如，当用户点击错误的东西时，Windows资源管理器、KDE和其他桌面环境会发出哔哔声。 它也正在游戏和多媒体体验中更占主导的地位；许多游戏和电影现在都有5.1个通道的配乐。 因此，越来越多的爱好者自制的操作系统至少能支持声音播放。&lt;br /&gt;
&lt;br /&gt;
==PC声音的简短历史记录==&lt;br /&gt;
PC上最初的音响设备是[[PC Speaker]]，最早可以追溯到IBMPC(1981年推出)。 20世纪80年代末，几家制造商开始生产附加声音设备，尤其是Creative (Game Blaster) 和AdLib (AdLib音乐合成器卡)。 其中，Creative更为成功，[[Sound Blaster 16]]在五年多的时间里成为事实上的标准。 现在几乎所有的卡都与Sound Blaster 16有一些向后兼容性。&lt;br /&gt;
&lt;br /&gt;
1997年，英特尔指定了一个新标准，[[AC97]] (“音频编解码器1997” 的缩写)，该标准实际上通过指定更高质量的采样来取代了Sound Blaster标准。 2004年，英特尔又推出了另一个标准，这次是[[Intel High Definition Audio]]标准（代号为“Azalia”），它规定了对以前标准的音频质量的又一次改进。&lt;br /&gt;
&lt;br /&gt;
专业(和发烧友)市场的声卡和标准已经与主流卡分开发展。 这些卡的重要功能不是花哨的功能，而是非常低的延迟 (&amp;lt;5ms) 和高质量的采样 (在96KHz的24位采样并不罕见)。 [[MIDI]]是当今专业音频的重要组成部分，自20世纪90年代初以来一直如此。 声卡可以从2个通道到32个或更多。&lt;br /&gt;
&lt;br /&gt;
==声音编程==&lt;br /&gt;
将声音支持编程到您的操作系统中不仅仅是为已相当通用的声卡 (例如 [[Sound Blaster 16]]) 编写驱动程序，并让您的用户空间应用程序能处理它; 它需要将支持声音生成、传输(进出不同设备、应用程序甚至计算机)、混音、输出和控制的架构整合在一起，同时保持低延迟和高质量。 在这方面，有几个关键问题：&lt;br /&gt;
* 您的声音传输架构应该是无损的，即32位采样应该以32位承载。 以16位携带这些样本 (例如) 会导致声音退化，因此应避免。&lt;br /&gt;
* 同样的传输机制也应该为不同的采样率提供支持。 44100Hz是CD的标准，但是DVD以48000Hz的采样率携带声音。 将这两种情况间搞错，会导致扬声器发出非常奇怪的声音。 此外，在输出之前，这些将需要转换为统一采样率。&lt;br /&gt;
* 两个应用程序需要同时访问声音设备。 例如，来自即时通讯程序和用户MP3播放器的通知。 操作系统的工作是将这些声音流混合在一起并产生可理解的结果。&lt;br /&gt;
* 今天的音频不仅简单是立体声的，它可以是任意数量的通道。 较简单的应用程序仍然使用单声道声音，而DVD和高清晰度电影的声道分别为5.1和7.1声道。 您的操作系统将需要能够将声音路由到这些通道中的任何一个，并决定在较大的通道集中放置单声道和立体声声音的位置。 此外，[[MIDI]]音频还需要在设备和应用程序之间正确路由。&lt;br /&gt;
* 声音和游戏图形一样，必须实时完成。 由随机硬盘或CPU使用率引起的音频跳音是“非常”明显的。 不幸的是，简单地增加缓冲区大小并不总是最好的解决方案，因为这会导致人们收听新录制的音频 (行业中的 “监听”) 遭到延迟。&lt;br /&gt;
一些（但不是全部）声卡将具有允许在硬件中完成部分处理的功能。 简单的混合和采样处理是专用硬件最常见的独有功能。&lt;br /&gt;
&lt;br /&gt;
某些应用程序 (例如游戏) 将尝试使用最大数量的通道。 较旧版本的Windows允许应用程序对声音硬件进行“独占”控制，以获得低延迟的声音和有保证的通道。 但是，由于Windows Vista的所有声音(包括音量)都是软件混合的，支持无限数量的通道。&lt;br /&gt;
&lt;br /&gt;
混合所有声音的软件具有很少CPU开销的几个优点:&lt;br /&gt;
* 更容易开发声卡驱动程序——他们所要做的就是将缓冲流传输到设备，而不是担心通道、通道效果、通道音量等等。&lt;br /&gt;
* 跨硬件提供一致的环境 - 一款游戏将不会耗尽所有通道，所有通道效果（回声、混响等）都将得到支持。&lt;br /&gt;
&lt;br /&gt;
=== 声音架构 ===&lt;br /&gt;
{{In Progress}}&lt;br /&gt;
====简单的方法====&lt;br /&gt;
[[Image:Really_Simple_Audio_Architecture.png]]&lt;br /&gt;
&lt;br /&gt;
这是所有架构中最简单的: 单个应用程序通过单个设备驱动程序处理单个设备。 这在基于UNIX的理念下会很好地工作：read()、write()和ioctl()都会产生立竿见影的效果。 该应用程序可以从声音设备读取多个样本，对它们进行处理(可能将它们记录到磁盘上，添加混响等)， 然后将生成的声音样本写回到设备的扬声器端口上。&lt;br /&gt;
&lt;br /&gt;
==== Ring/Hub 方法====&lt;br /&gt;
音频体系结构的一个更复杂的示例是基于Ring的概念。 Ring负责在系统周围传输音频信号，并且插入Ring的每个模块都以某种方式作用于信号。&lt;br /&gt;
&lt;br /&gt;
每个应用程序、输入或输出、混音器、滤波器或某种插件都可以在Ring上表示，音频在Ring上传播，并被其他一些或所有Ring模块修改。 这已经在Creative的X-Fi声卡系列的硬件中成功实现； 有关更多详细信息，请参见[http://www.pcper.com/article.php?aid=177&amp;amp;type=expert&amp;amp;pid=2 这里]。&lt;br /&gt;
&lt;br /&gt;
在内核中，不需要严格实现为一个Ring： Hub体系结构以不同的方式实现大致相同的效果。&lt;br /&gt;
&lt;br /&gt;
'''ToDo: 描述其他方法，研究并充实这些方法。 看看今天的内核中使用了什么（关于ALSA和co如何工作的信息在没有阅读源代码的情况下只能是比较粗略的）。'''&lt;br /&gt;
&lt;br /&gt;
== 资源 ==&lt;br /&gt;
* [[wikipedia:Digital audio|An overview of digital audio]]&lt;br /&gt;
* [[wikipedia:MIDI|An overview of MIDI]]&lt;br /&gt;
* [http://www.alsa-project.org/ ALSA项目] 提供了可能对设计音响系统有用的文档，以及许多不同声卡的GPLed驱动程序。&lt;br /&gt;
&lt;br /&gt;
[[Category:Sound]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>