文本阅读:
3.10示例71
wrap~对象采用先前在图3.8中描述的方法将幅度为9的锯齿波转换为一个单位幅度的锯齿波,该锯齿波随后用来从第2个波表中获得一个包络函数。这包括函数用来控制循环采样器(来自章节2.6)的颗粒尺寸。在这里,该波表包含了6个正弦波的6个周期。这些颗粒通过乘以一个升余弦函数(cos~和+1)而被平滑。
示例C09.sample.hold.pd(未给出图示)为一个采样保持单元,它是在音频信号域中完成控制任务的另一种有用的设备。
3.10.6MIDI风格的合成器
示例C10.monophonic.synth.pd(图3.16)也实现了一个单复音、面向音符的合成器,但在此例面向的是MIDI控制能力。在本例中,包络生成和音高音序的编写都不是由音频信号处理的,而是由控制流完成的。这里需要使用几种新对象:
【notein】:MIDI 音符输入。3个输出口给出了接收到的MIDI音符开和音符关事件(音符关事件是以力度为0的音符开事件出现的)的音高、力度和通道号。输出是按照Pd的惯例采用从右往左的顺序。
notein
7f-在下面存储音高
|音高力度B日。-发出"调眼力屋"的消息loat |力度存储在这里
音符开
过滤器【ge1】|检测音符开或关
atripnote 关开
E1oat 回调出音高
|音高
mtofl
/1277 eiecl与最后一个音符开的音高进行比较测试phasor】【s1 100(6 1ooo7
--0.5
iine-包络发生器现在控制幅度和颗粒尺寸
【cog~l 这取代了前一音色中的tabread4~
(输出)
网3.16|一个MIDI风格的单复音合成器