当前位置:首页 > 其他书籍
CSOUND音乐编程入门
CSOUND音乐编程入门

CSOUND音乐编程入门PDF电子书下载

其他书籍

  • 电子书积分:20 积分如何计算积分?
  • 作 者:杨万钧编著
  • 出 版 社:
  • 出版年份:2015
  • ISBN:
  • 页数:0 页
图书介绍:
《CSOUND音乐编程入门》目录

第1章 初识Csound 1

1.1 Csound的发展及特点 1

1.1.1 计算机声音合成的发展 1

1.1.2 什么是Csound 5

1.1.3 音乐家为什么要编程 7

1.1.4 为什么要用Csound 10

1.2 Csound的授权方式 11

1.2.1 什么是GPL 11

1.2.2 Csound的授权方式 12

1.3 Csound的获得 13

1.3.1 Csound的版本 13

1.3.2 Csound的获得 21

1.4 Csound的安装 23

1.4.1 Csound在Windows下的安装 23

1.4.2 Csound在Mac OS X下的安装 29

1.4.3 Csound在Linux下的安装 30

1.4.4 Csound在移动平台下的安装 32

1.5 在Csound中获得帮助 36

1.5.1 在线帮助 36

1.5.2 网络教程 37

1.5.3 社区交流 38

第2章 Csound使用基础 40

2.1 Csound的基本概念 40

2.1.1 Csound的工作原理 40

2.1.2 Csound的执行缓冲区 40

2.1.3 Csound中振幅值的表示 41

2.2 初次使用Csound 43

2.2.1 如何设置Csound的声音 43

2.2.2 Csound的使用 44

2.2.3 Gsound的控制台输出 45

2.2.4 运行第一个Csound程序 47

2.3 Csound命令行 50

2.3.1 Csound命令行 50

2.3.2 通过终端执行Csound 52

2.4 Csound前端程序 54

2.4.1 Csound前端程序 54

2.4.2 CsoundQt简介 55

2.4.3 CsoundQt的配置 58

第3章 Csound的设置 73

3.1 Csound环境变量 73

3.1.1 Csound环境变量 73

3.1.2 环境变量的设置 75

3.1.3 Python的设置 77

3.2 音频配置与音频处理性能的调试 79

3.2.1 音频设备及驱动类型的选择 79

3.2.2 性能调试与延迟 81

3.2.3 CsoundQt音频设置 82

3.2.4 实时音频输入与输出 83

3.3 实时音频处理 84

3.3.1 实时音频 84

3.3.2 周期和缓冲区大小(Period&BufferSizes) 85

3.3.3 控制率(Control Rate) 85

3.3.4 PulseAudio的使用 85

3.3.5 优化音频I/O延迟 87

3.4 渲染为音频文件 88

3.4.1 需要渲染为音频文件的场合 88

3.4.2 渲染为音频文件的操作 89

3.4.3 渲染选项 90

3.4.4 同时进行实时音频输出与音频文件渲染 90

3.4.5 CsoundQt中的设置 92

3.5 MIDI配置 93

3.5.1 Csound的MIDI模块 93

3.5.2 不同操作系统下的MIDI模块 93

3.5.3 CsoundQt下的MIDI I/O设置 94

3.5.4 MIDI键盘的使用 94

3.5.5 MIDI控制器的使用 96

3.5.6 其他类型MIDI数据的操作 97

第4章 Csound的语法结构 99

4.1 Csound的语法规范 99

4.1.1 Orchestra和Score 99

4.1.2 Csound文档结构 101

4.1.3 操作码(Opcode) 102

4.1.4 变量(Variable) 103

4.2 Orchestra和Score的标准化文件格式 104

4.2.1 结构化数据文件格式 104

4.2.2 Score文件预处理 108

4.3 Orchestra的语法结构 109

4.3.1 Orchestra的语法结构 109

4.3.2 标准数字Score 121

4.4 Score Statements 131

4.4.1 e Statement 132

4.4.2 fStatement 134

4.4.3 i Statement 136

4.5 局部变量与全局变量 141

4.5.1 变量类型 141

4.5.2 局部作用域(Local Scope) 144

4.5.3 全局作用域(Global Scope) 147

4.5.4 全局音频变量的使用 150

4.5.5 用于全局变量的操作码chn 160

第5章 Csound的过程控制 163

5.1 初始化进程和执行进程 163

5.1.1 初始化进程(Init Pass) 163

5.1.2 执行进程(Performance Pass) 164

5.1.3 隐式增量 165

5.1.4 初始化与赋值的差异 168

5.1.5 Audio Vector简析 170

5.1.6 综合应用实例 171

5.2 i变量与k变量的应用 172

5.2.1 存取k变量的初始值 172

5.2.2 reinit重新初始化 174

5.2.3 Instruument的执行顺序 176

5.2.4 Instrument的命名 178

5.3 i-time与k-rate 180

5.3.1 i-time和k-rate相关的操作码 180

5.3.2 与k-rate周期大小有关的问题 183

5.3.3 时钟周期使用限制 185

5.3.4 何时使用i-rate或k-rate 186

第6章 流程控制 187

6.1 条件表达式与流程控制 187

6.1.1 流程控制的类型 187

6.1.2 常见循环类型 189

6.1.3 条件表达式中的i-time与k-time 189

6.2 if-then-else 190

6.2.1 if-then-else 190

6.2.2 i-rate的例子 191

6.2.3 k-rate的例子 192

6.2.4 条件判断的简写形式 193

6.3 if-goto 195

6.3.1 if-goto 195

6.3.2 i-rate的例子 195

6.3.3 k-rate的例子 198

6.4 1oop 199

6.4.1 loop循环 199

6.4.2 i-rate的例子 201

6.4.3 k-rate的例子 204

6.5 Time Loop 205

6.5.1 Time Loop 205

6.5.2 timeout基础 206

6.5.3 timeout应用 209

6.5.4 使用操作码metro实现Time Loop 214

第7章 Function Table 218

7.1 Function Table的定义 218

7.1.1 Function Table的生成 218

7.1.2 GEN01:导入音频文件 225

7.1.3 GEN10:生成波形 226

7.2 Function Table的读写操作 229

7.2.1 向Function Table中写入数值 229

7.2.2 从Function Table中读取数据 236

7.3 Function Table的文件操作 239

7.3.1 将FunctionTable中的内容保存到文件 239

7.3.2 将录制好的FunctionTable写入声音文件 240

7.4 Function Table相关操作码小结 242

第8章 数组 244

8.1 数组的分类与创建 244

8.1.1 数组的类型 244

8.1.2 数组的命名规则 257

8.1.3 数组的创建 257

8.2 数组的操作 259

8.2.1 数组的基本操作 259

8.2.2 数组与Table间的操作 263

8.2.3 数组与FFT数据间的操作 266

8.2.4 数组的数学运算 270

8.2.5 在UDO中使用数组 283

第9章 自定义扩展 289

9.1 用户自定义操作码(UDO) 289

9.1.1 用户自定义操作码 289

9.1.2 将Csound Instrument代码转换为UDO 290

9.1.3 基本范例 291

9.1.4 对UDO进行优化设计 295

9.2 使用setksmps对ksmps进行自定义 299

9.2.1 setksmps特性 299

9.2.2 setksmps的默认参数 300

9.3 UDO应用实例 302

9.3.1 使用#include文件加载UDO 302

9.3.2 递归调用UDO 303

9.3.3 播放单声道或立体声音频文件 304

9.3.4 修改FunctionTable中的数据 306

9.3.5 打印输出FunctionTable中的内容 310

9.3.6 实现加法合成的递归调用型UDO 312

9.3.7 字符串实现数组功能 315

9.3.8 相关链接与操作码 316

9.4 宏(MACRO) 317

9.4.1 Orchestra宏 317

9.4.2 Score宏 321

第10章 实时事件 324

10.1 常规事件处理 324

10.1.1 执行顺序的重新安排 324

10.1.2 Score中的InstrumentEvent 328

10.2 实时事件类型 331

10.2.1 MIDI Note-On Event的使用 331

10.2.2 Widget的使用 332

10.2.3 Realtime Score(Live Event Sheet)的使用 335

10.3 使用流程控制实现实时事件 339

10.3.1 条件语句的使用 339

10.3.2 利用i-rate loop计算Instrument Event Pool 341

10.3.3 使用Time Loop 346

10.3.4 重编译 349

10.4 相关链接与操作码 354

10.4.1 相关链接 354

10.4.2 相关操作码 354

第11章 Score编写技巧 356

11.1 Csound Score的编写技巧 356

11.1.1 手工输入代码编写Score 356

11.1.2 Score语言的扩展:bin=“…” 359

11.1.3 使用Csbeats 361

11.1.4 使用Perl语言进行扩展 365

附录 常用Csound操作码 367

Ⅰ.Ⅰ基本信号处理类操作码 367

Ⅰ.Ⅰ.Ⅰ振荡器及相量相关操作码 367

Ⅰ.Ⅰ.Ⅱ随机信号及噪声信号发生器 368

Ⅰ.Ⅰ.Ⅲ包络控制 369

Ⅰ.Ⅰ.Ⅳ延迟 370

Ⅰ.Ⅰ.Ⅴ滤波器 370

Ⅰ.Ⅰ.Ⅵ混响 371

Ⅰ.Ⅰ.Ⅶ信号测量、动态处理、采样电平操作 372

Ⅰ.Ⅰ.Ⅷ空间效果 372

Ⅰ.Ⅱ高级信号处理类操作码 373

Ⅰ.Ⅱ.Ⅰ调制与失真 373

Ⅰ.Ⅱ.Ⅱ粒子合成 374

Ⅰ.Ⅱ.Ⅲ卷积运算 374

Ⅰ.Ⅱ.Ⅳ FFT和频谱处理 374

Ⅰ.Ⅱ.Ⅴ物理建模与FM Instrument 376

Ⅰ.Ⅲ数据相关类操作码 376

Ⅰ.Ⅲ.Ⅰ Buffer与FunctionTable 376

Ⅰ.Ⅲ.Ⅱ信号输入和输出、采样和循环回放、Soundfont 377

Ⅰ.Ⅲ.Ⅲ文件输入与输出 379

Ⅰ.Ⅲ.Ⅳ转换器与数据类型 380

Ⅰ.Ⅲ.Ⅴ打印输出和字符串 380

Ⅰ.Ⅳ实时交互类操作码 381

Ⅰ.Ⅳ.Ⅰ MIDI相关 381

Ⅰ.Ⅳ.ⅡOSC和网络 382

Ⅰ.Ⅳ.Ⅲ人机交互界面 383

Ⅰ.Ⅴ Instrument控制类操作码 384

Ⅰ.Ⅴ.Ⅰ Score参数访问 384

Ⅰ.Ⅴ.Ⅱ时间和节拍 384

Ⅰ.Ⅴ.Ⅲ条件与循环 385

Ⅰ.Ⅴ.Ⅳ程序流程控制 385

Ⅰ.Ⅴ.Ⅴ Event触发 385

Ⅰ.Ⅴ.Ⅵ Instrument管理 386

Ⅰ.Ⅴ.Ⅶ信号交换和混音相关 386

Ⅰ.Ⅵ其他类别的操作码 387

Ⅰ.Ⅵ.Ⅰ数学相关 387

Ⅰ.Ⅵ.Ⅱ信号转换 388

Ⅰ.Ⅵ.Ⅲ与Python及系统相关 389

Ⅰ.Ⅵ.Ⅳ插件相关 389

参考文献 391

致谢 392

后记 393

作者简介 394

返回顶部