文本阅读:
68第3章音频与控制计算
vline~对象也能用来按图3.4(b和c)所示的"最近样点"模式和"两点内插"模式将数值控制流转换成音频流。为了实现"最近样点"转换,只需简单地让vline~的斜变时间为0。
对于线性内插,令斜变时间为一个样点(如果采样速率为44100Hz,那么就是0.0227ms)。
3.10.3非循环波表播放器
有一种应用领域需要对控制流与音频信号之间的分界特别关注,这就是采样。到目前为止,我们的采样器都通过不停地循环来回避这个问题。这样做可以在存取多种声音时对其参数--诸如循环尺寸和包络形状等--进行连续的变化。不过,使用采样的很多情况都要求波表的内部特征在可预测、可同步的时间点上出现。比如,录制的打击乐声音通常都要从头播放,一般也不需要循环播放,而且通常它的播放都与音乐中的其他部分呈一个确定的时间关系。
在这种情况下,控制流比音频信号更适合作为触发信号。示例C05.sampler.oneshot.pd
(图3.14)展示了实现这一点的一种可能方法。图中左下方的4个代字号对象构成了播放用的信号处理网络。vline~对象生成一个相位信号(实际上就是一个波表查找索引)给tabread4~对象,这替代了示例B03.tabread4.pd(第41页)中的phasor~及其后续模块。
bang(<--播放采样
utoffo5让声音截止
delay 5】等待截止消息来完成声音
了设置上方的1ine-在第一个样点处开始,
|phase 1,4.41e+08 1e+07;|然后一直播放(或是直到下一个触发信
|cutoff 1
号为止)
开始新的播放
Q<--录制
r phasel
vline-|
adc-1lldel 3990l
|tabread4~tab28|
hip-5l0 1o(
o,157
Ir cutoffl
iine-l
|tabwrite~tab28|
(输出)
图图3.14 非循环采样器