文本阅读:
7.9音高平移163
回到图7.17,我们看到,通过一个简单的可变延时线,我们可以在一个有限的时间间隔内维持任意的音高平移,但如果我们想延续一个固定的转调,则总会最终跑到由可接受的延时时间所构成的对角带之外。在最简单的情形中,我们简单地让转调向上和向下变化,并使其保持在这个对角带之内。
这是可行的,比如若我们想要如图7.19所示对一个声音施加颤音。这里的延时函数是:
个输入时间
输出时间
7.199使用一个可变延时线实现顺音。由于音高平移是在向上和向下之间来回变化的,因此可以让它保持在可接受延时所构成的对角带之内,不漂移出去d【n】=do+acos(an)
其中do是平均延时,a是对平均延时的偏离幅度,o是角频率。瞬时转调公式(第161页)近似为:
t=1+aocos(on一m/2)
其值域为1-ao到1+ao。
另一方面,假设我们希望在一段更长的时间里维持一个恒定的转调。在这种情况中,我们不能永远维持这个转调,但仍旧可能在被不连续的变化所打断的各个固定的时间间隔内保持这个转调,如图7.20所示。延时时间是一个经过适当归一化的锯齿波函数的输出,可变延时线的输出经过了如图所示的包络处理,以避免不连续点。
可以用图7.21所示框图来实现这一要求。锯齿波发生器的输出有2个用处。首先,该输出被调整至do和do+s之间,这个调整后的锯齿波用来控制延时时间,以样点为单位。初始延时do应该至少足以让可变延时是可行的,比如对于4点内插,其值就必须至少为一个样点。