文本阅读:
3.10示例65
图3.12所示为Pd对上一节所述4种类型的控制操作的表示方法。延时可以用2个明确的延时对象实现:
口m
9Iom
【del】,【delay】:简单延时。你可以通过de1a力创建参数或是右输入口来指定延时时间。左输入口输入的"bang"消息用来设置延时,随后,
(b)
(a)
在经过了指定毫秒数的延时以后会输出一个
O
"bang"。所谓简单延时指的是向一个已经设置o好的延时发送一个"bang"将其重置到一个新 ogel 自elecl
【loatl
的输出时间上,同时取消先前设定的时间。
O
o
【pipe:复合延时。到达左输入口的消
息将在经过指定的延时之后出现在输出口,(c)(d)
该指定延时由第一个创建参数设置。如果有多3.12】Pd中的四种控制操作:(a)延时;(b)个创建参数,则可用来指定一个或多个输入合开;(c)提减;(a)重同步口,用于构成消息的数值或符号数据。任意数量的消息都可以用pipe同时存储,在输出时这些消息可以被重新排序,这取决于它们被赋予的不同延时时间。
Pd中对控制流的合并没有使用直接的对象,而是由Pd自身的连接机制实现。图3.12b给出了数字块作为示例。一般来说,当一个控制输入口有一个以上的连接时,各个控制流就会在此被合并。
Pd提供了几个对象用来删减控制流,图3.12c给出了其中的两个:
moses】:删减数值范围。左输入口接收的数值消息如果小于某一门限值(由创建参数或右输入口设置)的话,它将出现在左输出口,否则将出现在右输出口。
select,sel】:删减指定的数值。只有当左输入口接收的数值消息与测试值完全匹配时,输出口才会产生一个"bang"。测试值由创建参数或右输入口设置。
最后,Pd对控制流的重同步操作也暗含在其连接机制中,如图3.12d所示。具有一个以上输入口的大部分对象会令其他所有输入口同步到最左侧的输入口上。因此图中所示float对象将其右侧输入口(用来获取数值)重同步到其左侧的输入口上。给左输入口发送一个"bang"
会让float把先前已经接收到的最新的数值输出出去。
3.10示例
3.10.1采样和折叠
示例Co1.nyquist.pd(图3.13a)用一个振荡器播放波表,从频率500扫至1423Hz。该