电子音乐技术 54


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

电子音乐技术 54
前一篇:电子音乐技术 53 下一篇:电子音乐技术 55
文本阅读:
  46第2章波表与采样器
  设计用来与phasor~对象更容易配对,能在相位折回处实现触发的功能。
  示例B08.sampler.nodoppler.pd使用了2个samphold~对象来更新块尺寸和读取点,这些更新准确地发生在phasor~出现折回的地方,此时余弦包络为0,因此瞬时发生的改变不会被听到。在这种情况下,我们可以使用更为简单的循环波表转调公式来建立频率、块尺寸和转调之间的联系。示例B09.sampler.transpose.pd(未在本书中列出)对此进行了演示。
  2.6.5交叠的样本循环器
  如章节2.3所述,有时候只需要使用两个或多个相互交叠的循环采样器产生一个适度连续的声音即可,无需在循环的两端进行过于急剧的包络处理。当被循环的块很短--比如1/10秒或更短--时,尤为如此。图2.16a所示的示例B10.sampler.overlap.pd实现了两个彼此相位相差半个周期的循环采样器。这里的新对象类是:
  Ioadbang】:在加载时输出一个"bang"消息。在本音色中它用来确保由"块尺寸(chunk size)"确定的转调分度在块尺寸一开始被鼠标点击时能够产生一个有效的转调系数。
  expr:求数学表达式的值。变量以5f1、5f2等形式出现,与该对象的各个输入口相对应。可以进行算术运算,并可用圆括号进行分组。Pd提供了很多库函数,比如本例中所示的求幂函数"pow"。
  wrap~:折回到区间0至1。因此,比如1.2会变成0.2,0.5会保持不变,-0.6会变成0.4。
  send~、s~、receive~、r~:send 和receive的信号版本。被发送给一个send~
  对象的音频信号将会出现在具有同一名称的所有receive~对象的输出口上。与send和receive 不同的是,你不能让一个以上的send~对象使用同一个名称(要使用这种连接,请参阅throw~和catch~对象)。
  在本例中,波表读取机制部分是复制过来的,对"chunk-size-samples"(一个消息流)和"read-pt"(一个与先前一样经过平滑的音频信号)采用了完全一样的计算。不过,在另一个复本中,"phase"音频信号被"phase2"代替。图的最上部给出了这2个相位信号的计算方法:第1个信号是一个phasor~对象的输出,第2个信号则加上了0.5并被折回,因此是在相位上加了0.5个周期(x弧度)。对这2个相位信号进行与先前一样的范围调整,两者都用来计算波表和cos~对象的索引值,并控制2个samphold~对象。最后,2个复本的计算结果加在一起作为输出信号。
  2.6.6自动的读取点进动
  图2.16b所示的示例B11.sampler.rockafella.pd把上述想法应用到了自动计算读取点上。