当前位置:首页 > 工业技术
数字音频规范与程序设计  基于Visual C++开发
数字音频规范与程序设计  基于Visual C++开发

数字音频规范与程序设计 基于Visual C++开发PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:曹强编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2012
  • ISBN:9787508498195
  • 页数:459 页
图书介绍:本书共分十一章,涵盖了Windows平台下数字音频相关规范与编程的许多方面,详细介绍了Windows系统下高层与底层的多媒体音频接口(APIs);WAVE音频的全面解析、播放与录音;MIDI音乐的全面解析、播放与录制;USB MIDI驱动设计;MP3的格式与编解码;乐音的基频检测;音频混音器原理与编程;低延迟ASIO音频驱动开发;普通音频插件与VST(i)插件的设计;游戏开发中经常使用的DirectSound播放与录制等。
《数字音频规范与程序设计 基于Visual C++开发》目录

第1章 Windows音频体系与Visual C++开发基础 1

导读 1

1.1 认识声音与音频 1

1.2 Windows音频体系层次结构 2

1.2.1 用户模式与内核模式 2

1.2.2 关于声音的延迟问题及解决方法 3

1.3 Visual C++开发基础 5

1.3.1 区分C、C++和Visual C++三者的关系 5

1.3.2 事件驱动与消息处理 8

1.3.3 开发环境概述 11

1.3.4 MFC概述 12

1.3.5 利用向导创建一个简单的对话框程序 13

第2章 MCI与MMAPI多媒体编程接口 20

导读 20

2.1 MCI简介 20

2.1.1 MCI逻辑结构 21

2.1.2 MCI接口、函数与命令 21

2.1.3 MCI消息与宏定义 24

2.2 MCI编程步骤 24

2.3 MCI编程实例 27

2.3.1 播放CD 27

2.3.2 WAVE播放与录音 27

2.3.3 基于MCIWnd的多媒体播放器 28

2.4 MMAPI简介 28

2.4.1 四种多媒体文件I/O 29

2.4.2 波形音频处理 40

2.4.3 MIDI的流缓冲区与非流缓冲区处理 41

2.4.4 多媒体定时器 47

第3章 WAVE格式及播放与录制 49

导读 49

3.1 认识WAVE 49

3.2 WAV文件结构 50

3.3 采样点与采样帧的区别 51

3.4 WAVE中常用的一些块 53

3.4.1 格式块 53

3.4.2 数据块 54

3.4.3 提示块 55

3.4.4 播放列表块 55

3.4.5 关联数据块 56

3.4.6 采样块 57

3.5 多媒体波形音频函数 59

3.6 波形音频处理的回调机制 60

3.7 WAVE播放 61

3.7.1 WAVE播放基本流程 61

3.7.2 双缓冲播放机制 65

3.7.3 关于死锁的问题 66

3.8 WAVE录音 66

3.9 编程实例 70

3.9.1 WAV文件解析及分离与合并 70

3.9.2 WAVE播放器 71

3.9.3 WAVE录音机 71

第4章 MIDI相关标准与程序设计 73

导读 73

4.1 MIDI规范 73

4.1.1 什么是MIDI 73

4.1.2 MIDI信息 75

4.1.3 其他MIDI规范 94

4.1.4 GM、Gs与XG 96

4.1.5 GM2 99

4.2 MIDI文件解析 100

4.2.1 MIDI文件格式 100

4.2.2 MIDI文件示例 107

4.2.3 与MIDI相关的时间计算 108

4.2.4 程序实例 111

4.3 USB MIDI 123

4.3.1 USB MIDI概述 123

4.3.2 USB MIDI的实现机制 124

4.3.3 USB-MIDI功能器件 125

4.3.4 USB MIDI数据格式 129

4.3.5 USB MIDI操作模型 130

4.3.6 描述符 132

4.3.7 USB MIDI驱动设计 137

4.3.8 USB驱动程序 145

4.3.9 用户模式音频驱动几个上层接口的实现 154

第5章 数字音乐合成 159

导读 159

5.1 合成器概述 159

5.2 MIDI的发音原理 160

5.3 FM合成原理 161

5.4 波表合成 163

5.4.1 波表合成器工作原理 165

5.4.2 波表合成的关键技术 166

5.4.3 频率变换 167

5.4.4 循环(Loop) 168

5.4.5 波表合成器的衡量指标 168

5.5 软波表与硬波表 169

5.6 音色制作 170

5.6.1 样本准备与分配 170

5.6.2 样本参数调整 171

5.6.3 音色参数调整 171

5.6.4 设置效果参数 172

5.6.5 保存音色文件 172

第6章 音频混音器编程 173

导读 173

6.1 混音器原理 173

6.1.1 声卡硬件模型 174

6.1.2 音频线路 175

6.1.3 控件 177

6.2 混音器编程 179

6.2.1 Mixer API函数介绍 180

6.2.2 枚举系统中的混音器设备 180

6.2.3 打开混音器设备 181

6.2.4 枚举音频线路 182

6.2.5 获取线路信息 185

6.2.6 枚举线路的相关控件 185

6.2.7 获取与线路相关的所有控件信息 187

6.2.8 通过控件ID获取控件信息 188

6.2.9 通过控件类型获取控件信息 188

6.2.10 获取或设置控件的值 189

6.2.11 多声道控件 190

6.2.12 多条目控件 191

6.2.13 混音器专用消息 193

6.3 程序实例——混音器调节软件 193

第7章 音频插件设计 195

导读 195

7.1 普通音频插件 195

7.1.1 插件的实现原理 195

7.1.2 基于动态链接库的方法实现音频插件 196

7.1.3 实现支持三种插件类型的MiNi播放器 200

7.1.4 给Winamp编写一个MIDI键盘插件 209

7.1.5 基于ATL的方法实现COM插件 212

7.2 VST音频插件 212

7.2.1 VST插件概述 212

7.2.2 VST SDK与音频数据处理 214

7.2.3 创建一个最简单的VST插件 214

7.2.4 设计一个Stereo Delay效果的VST插件 218

7.2.5 VST XML文件 226

7.2.6 设计一个简单的FM合成器插件 226

7.2.7 VST GUI编程 242

7.2.8 实现一个自行设计界面的Ring Modulator插件 247

7.2.9 VST宿主程序设计 249

第8章 基音的时频域检测 253

导读 253

8.1 概述 253

8.2 音乐信号的前期处理 254

8.2.1 信号数字化 254

8.2.2 音框 255

8.2.3 静音与杂音处理 256

8.3 时域基频检测方法 259

8.3.1 自相关函数法 259

8.3.2 自相关函数法的程序实例 261

8.3.3 平均振幅差函数法 261

8.3.4 平均振幅差函数法的程序实例 262

8.4 频域检测方法 263

8.4.1 傅里叶变换的原理及其物理意义 263

8.4.2 快速傅里叶变换法 270

8.4.3 快速傅里叶变换法的程序实例 271

8.4.4 谐波积频谱法 272

8.4.5 谐波积频谱法的程序实例 273

8.4.6 倒谱法 274

8.4.7 极大似然法 275

8.5 时频域检测方法 276

8.5.1 小波变换法 276

8.5.2 ACF与AMDF结合法 276

8.5.3 ACF与AMDF结合法的程序实例 277

8.6 基频检测的后期处理 277

8.7 软件调音器的设计 278

第9章 ASIO音频驱动设计 280

导读 280

9.1 何为ASIO 280

9.2 用户层ASIO驱动设计 281

9.2.1 ASIO的有限状态机 282

9.2.2 音频数据流的传输 283

9.2.3 ASIO驱动接口 286

9.2.4 数据同步 289

9.2.5 四个重要的回调函数 289

9.2.6 几个重要的数据结构 290

9.2.7 输入输出延迟问题 293

9.3 用户层ASIO驱动的实现 295

9.3.1 准备工作 297

9.3.2 添加自注册功能 298

9.3.3 实现IASIO的所有接口 299

9.4 在音频软件中使用ASIO驱动 306

9.4.1 ASIO播放 307

9.4.2 ASIO录音 312

第10章 MP3格式与编解码 316

导读 316

10.1 MP3文件格式 316

10.1.1 MP3简介 316

10.1.2 MP3文件格式 320

10.1.3 程序实例——MP3文件分析 335

10.2 MP3编解码 336

10.2.1 MP3编码的相关概念 336

10.2.2 MP3编码过程 359

10.2.3 MP3解码过程 377

10.2.4 程序实例 390

第11章 DirectSound开发与应用 410

导读 410

11.1 DirectX概述 410

11.2 DirectSound简介 413

11.2.1 DirectSound的功能组成与组件对象 414

11.2.2 DirectSound的缓冲区 414

11.2.3 DirectSound的数据结构 415

11.3 DirectSound播放 415

11.3.1 Visual C++编译环境配置 415

11.3.2 DirectSound回放的基本流程 416

11.3.3 枚举系统输出声音设备 417

11.3.4 创建DirectSound对象 418

11.3.5 设置声音设备的协作等级 418

11.3.6 创建声音缓冲区对象 420

11.3.7 加载WAVE声音数据 422

11.3.8 声音缓冲区回放 422

11.3.9 声音缓冲区控制 428

11.3.10 混音 429

11.3.11 3D音效和声音效果 430

11.3.12 DirectSound 3D收听者 434

11.3.13 设置声音特效 434

11.4 DirectSound录音 435

11.4.1 枚举系统录音设备 436

11.4.2 创建设备对象 436

11.4.3 获取录音设备的性能 436

11.4.4 创建录音缓冲区 436

11.4.5 获取录音缓冲区信息 437

11.4.6 为录音缓冲区对象设置通知机制 438

11.4.7 开始录音 439

11.5 使用DirectSound中的效果 441

11.5.1 在缓冲区中设置效果 441

11.5.2 混响(Reverb) 442

11.5.3 合唱(Chorus) 443

11.5.4 回响(Echo) 444

11.5.5 镶边(Flanger) 445

11.5.6 参量均衡(Parametric EQ) 446

11.5.7 咕噜(Gargle) 447

11.5.8 失真(Distortion) 448

11.5.9 压缩(Compression) 449

11.6 扬声器配置 451

11.6.1 设置扬声器配置 451

11.6.2 获取扬声器配置 451

11.7 程序实例 452

11.7.1 DirectSound播放 452

11.7.2 DirectSound录音 452

11.7.3 DirectSound效果器 453

附录 MP3附表 454

参考文献 459

相关图书
作者其它书籍
返回顶部