本书的内容按照十六讲、80个知识点进行布局; 通过十二个编程案例和两个工作坊, 按照编程步骤解说的方式, 让学习者知其功能、知其用法。具体内容包括Max编程语言的逻辑; Max板块在MIDI信息实时处理方面的基础; MSP板块对音频实时处理的基本思路和方法; Max编程语言与外置插件、设备等进行信息交互的方法等。包括自动生成音乐、实时声音可视化、实时生成和声、构建虚拟打击垫以及声波变频器、使用语音控制图像生成和音频、实时多声道处理、摄像头信息生成音乐、颜色合成器以及VST/网络/OSC通信的案例。
班文林,中国音乐学院作曲系副教授,硕士研究生导师,东京艺术大学音乐音响创新方向博士,清华大学信息艺术设计系访问学者,Max出品公司Cycling's官方认证的Max编程语言国际讲师。交互式音乐作品入选东京Max User Group音乐会、国际现代音乐协会日本分会(JSCM)年度音乐会/研讨会、ACMP2011、ACMP2018、AMC SOUND PROJECT 2012、ICMC2017、中国音乐新媒体联盟声音装置展等。在国内外发表该领域论文十余篇;拥有多项交互式信息控制器专利和相关软件著作权。日本音乐学学会会员、先端艺术音乐创作学会(JSSA)会员、中国音乐家协会电子音乐协会会员、艺术与人工智能学会会员、全日本中国人博士协会理事。
第一讲 基本编程方法(1)
一、Max编程语言的基本结构
二、Max编程语言的Patcher窗口
三、基本对象命令的种类
四、连线的种类
五、构成Patcher的对象命令与连线
六、实参变量设置(尝试第一个程序设计)
第二讲 基本编程方法(2)
七、信息命令[message]
八、浮点数控件[flonum]
九、打印对象命令[print]与信息“print”
十、信息在Max编程语言中的处理逻辑和顺序(四则运算程序)
第三讲 制作随机生成音乐的程序
十一、对象命令[drunk]与随机算法
十二、关于[itable]控件
十三、使用计算机板载软件合成器
十四、对象命令[key]与[sel]
十五、内录MIDI文件的方法
十六、指定音区范围的方法
十七、独立程序界面设计以及生成程序
第四讲 构建MIDI信息二维可视化程序
十八、MIDI信息解析相关对象命令
十九、关于[zmap]
二十、关于[Icd]
二十一、关于[preset]
第五讲 实时和声生成程序
二十二、关于[ezadc~]与[live.gain~]
二十三、关于音频实时解析相关对象命令
二十四、[fiddle~]安装到Max编程语言的方法
二十五、关于[onebang]对象命令
二十六、另一个生成音符关信息的[flush]对象命令
二十七、程序变化[pgmout]对象命令
第六讲 构建虚拟打击垫
二十八、关于DSP设置和声卡设置
二十九、关于音频采样相关对象命令
三十、关于矩阵控制对象命令[matrixctrl]
三十一、关于播放列表对象命令[playlist~]
三十二、矩阵数值映射的方法
三十三、多轨信号输出与mc类对象命令
三十四、多轨信号输出录音对象命令[mc.sfrecord~]
三十五、使用触屏设备控制程序
第七讲 构建声波变频器
三十六、构建模拟信号输入输出
三十七、关于[selector~]对象命令
三十八、关于[umenu]和[panel]对象命令
三十九、控制[tapout~]延迟线的算法
四十、关于音频信号显示方式
四十一、关于BEAP中的录音模块
第八讲 交互式音乐工作坊(上)
四十二、关于[gate~]出口选择对象命令
四十三、关于子文件连线类型与实际不匹配问题
四十四、关于[tempo]音乐速度对象命令
四十五、关于条件语句的代码结构
第九讲 交互式音乐工作坊(下)
四十六、DIY一个“对象命令”Patcher
四十七、构建减法合成器合成音源
四十八、关于滤波器对象命令[biquad~]
四十九、关于[snapshot~]对象命令
五十、关于[function]控件
五十一、和声的分散琶音效果
五十二、连接若干个BEAP模块
五十三、交互式音乐中的“节(section)”
第十讲 语音控制图像生成与音频交互
五十四、关于[fzero~]对象命令
五十五、指定[lcd]颜色的方法
五十六、消除[Icd]中的残存数据
五十七、关于[record~]和[buffer~]对象命令
五十八、关于[groove~]对象命令
第十一讲 实时多声道处理
五十九、从Package Manager中查找新的工具——软件包
六十、基于ICST Ambisonics实现多声道声相自动控制和分配
六十一、基于马尔可夫链算法实现多声道自动控制
第十二讲 使用摄像头输入信息生成音乐
六十二、视频输入与矩阵(Matrix)
六十三、[jit.robcross]和[jit.sobel]对象命令
六十四、[jit.rgb2luma]黑白转换对象命令
六十五、[jt.3m]视频分析对象命令
六十六、[pipe]延迟对象命令
第十三讲 颜色声音合成器
六十七、关于[jit.findbounds]对象命令
六十八、FFT与[pfft~]对象命令
六十九、FM合成器音色合成
第十四讲 手套控制器交互案例工作坊
七十、关于[key]生成连续变化信息
七十一、关于LowkeyNW软件包
七十二、关于手套控制器的设置
七十三、控制清单(相当于乐谱)
第十五讲 在Max编程语言中使用VST
七十四、构建[vst~]程序
七十五、查找[vst~]中控制参数的名称
七十六、为音频加上[vst~]效果器
第十六讲 Max编程语言、网络与OSC通信
七十七、网络与Max编程语言
七十八、Max编程语言接入局域网
七十九、Max编程语言进行OSC通信
八十、通过OSC通信实现声相控制
附录
一、Max/MSP板块类对象命令参照表(按首字母排序)
二、Max编程语言学习资源
三、MIDI控制器列表书
四、Max编程语言常用数值运算
五、打击乐与计算机交互小品乐谱
六、Ma×编程语言的简史与应用