电子音乐技术 77


分类:相关阅读 / 「电子音乐技术」

电子音乐技术 77
前一篇:电子音乐技术 76 下一篇:电子音乐技术 78
文本阅读:
  3.10示例69
  tabread4~的输出的幅度由第2个vline~对象控制,这是为了防止前一个事件仍旧在播放中而新事件却开始播放时在输出中出现不连续。"cutoff(截止)"vline~对象将输出斜变衰减至0(不管其是否在播放),因此,一旦输出为0,就可以对波表的索引值进行不连续的变化。
  为了开始一个新"音符",首先需要让"cutoff"vline~对象斜变至0;然后在延时5ms以后(在此时点上vline~已经归0了)对相位进行重置。完成这些操作需要两个消息:第一个消息是把相位置变为1(该消息不带有时间值,因此会不经过斜变直接跳至1)。数值"1"
  指明了波表中第一个可读的样点,因为我们使用的是4点内插。第2个消息使用的是同一个消息块,它令相位在10000000ms内斜变至441000000。(在Pd中,较大的数是用指数形式表示的,因此这2个数显示为4.41e+08和1e+07。)商为44.1(单位是每毫秒),表示数量为1的转调。上方的vline~对象(用来生成相位)通过其上方的"rphase"对象接收这些消息。
  本例假设波表会在两端平滑地斜变至0,该音色右下部分所示为如何录制这样一个波表(在本例中为4s长)。这里使用一个常规的(同时也是计算量更小的)line~对象就足够了。
  虽然波表应该至少长4s才能工作,但是你可以录制比这个短的波表,这只需提前将 line~
  对象截止即可。唯一的忠告是:如果你对一个波表同时进行读取和写入,那你应该避免在同一时刻对波表中的同一区域进行读取和写入操作。
  对于tabread4~旁边的vline-对象来说,之所以选择使用它而没有选择使用line~是因为后者会把间断点舍入到最近的块边界处(一般为1.45ms),如果波表在每秒钟内重复10或20次以上的话,这可能会在声音上产生可闻的非周期性,使你不能以更高的重复速率获得一个精美的周期性的声音。
  在下一章中我们将回到以vline~为基础的采样,为其加入转调、包络和多复音等内容。
  3.10.4从信号到控制
  示例Co6.signal.to.control.pd(未给出图示)演示了从音频信号回到数值控制流的转换,它借助了一个新的代字号对象:
  snapshot-:将音频信号转换成控制消息。它总会给出最新计算出来的音频样点("尽可能快"转换),因此确切的采样时间最多将偏离一个音频块。
  我们经常需要对音频信号的幅度进行自动检测,而不是对一个单一的样本进行取值;示例Co7.envelope.follower.pd(这里也没有给出图示)引入了另外一个对象来完成这种操作。
  Lenv~:RMS包络跟随器。输出的控制信息给出了输入音频信号的短时RMS幅度(以分贝为单位)。创建参数让你可以选择用于RMS计算的样点数:更小的数值将产生更快(可能也是更不稳定)的输出。