在超级对撞机上编程Steve Reich的钢琴阶段

2020-05-11 14:35:21

史蒂夫·赖奇的“钢琴阶段”(特别是这里讨论的第一乐章)是早期极简主义的开创性作品之一。它由五个音高组成,以十二个音符的模式排列,并在两种乐器上演奏,它展示了当使用正确的系统操纵最少量的音乐材料时所能产生的音乐影响(请参阅处理音乐)。

为了演奏这部作品,赖克指挥两位钢琴家重复演奏上述数字,同时开始演奏。然而,其中一名表演者开始加速,因此他们与另一名表演者步调不一致(造成类似轻微回声/混响的效果)。当速度较快的表演者继续演奏时,他们开始与其他表演者同时开始演奏音符,只是在模式中领先一个音符。在这一点上,表演者同步节奏并及时演奏,直到表演者的阶段性决定再次加速。这一过程一直持续到阶段性回绕以使图案从其开始位置同步,并且演奏者再次同时演奏相同的音符。

因为发生在钢琴阶段的过程相当简单,所以在超级对撞机上重现这项工作也相当简单。它仅依赖于几个关键方面才能正确执行:

使用单个SynthDef以便准确地重建由相同仪器类型上的定相引起的合并效果,

最重要的是,在与图案中的下一个音符对齐后,正确地进行异相和返回同步。

至于SynthDef,我决定简单地使用一个具有快速攻击和释放包络的正弦波振荡器,以便放大相位效果并保持干净的声音。我还提供了一个平移机制,这样乐器就可以在立体声领域中灵活地表现出来。

synthDef(\piano,{arg freq=200,pan=0;var sig,env;sig=SinOsc.ar(Freq)*0.2;env=envGen.kr(env.new([0.01,1,0.01],[0.005,0.25],\exp),donAction:2);sig=sig*env;out.ar(0,pan2.ar(sig,Pan);}).add;

我通过定义一个全局变量开始我的程序,该变量通过收集MIDI数字列表并将这些数字(使用方便的下划线快捷键)转换为每秒循环数来存储模式中音符的频率。我还定义了另一个全局变量,用于存储要由执行阶段化的工具使用和修改的音符的时间。为了更好地衡量,我两个音符之间的间隔是0.25秒。

这些存储的音符都是由我称为~STRATE的例程在四分之一秒内执行的。通过计算mod 12的迭代次数从~freqs数组中获取下一个频率,例程使用我之前定义的\钢琴合成器播放音符,并将其放在立体声场的左侧。

为了同步和不同步,除了在第二种乐器上演奏音符之外,我还需要一种机制来决定开始加速,并在两种乐器在图案的下一部分对齐时重新同步。正如前面的仪器包含在名为~STRATE的例程中一样,此仪器包含在名为~PASSING的例程中。

为了演奏音符,我重用了~STRATE中的代码。为了不同步,例程在演奏完每个音符后询问0到80之间的随机数是否等于0。如果是,它将计时间隔设置为0.24秒,而不是0.25秒,后者相对于~STRATE加速~相位。这导致一个阶段大约每隔20秒发生一次。

新的0.24间隔需要6秒(25次迭代)才能与下一个0.25间隔对齐,因此我创建了一个标记,方法是在仪器加速时将变量相位设置为迭代编号,以便在超过标记的迭代计数达到25时,将计时间隔重置为0.25,以便仪器再次同步。

~相位=例程({var i=0,相位=0;{var间距=~freqs[i%12];synth(\钢琴,[freq:音高,摇摄:0.4]);i=i+1;if(rand(0,80)==0,{~time=0.24;相位=i;});if(i相=25,{相位=0;~time=0.25;});~time.wait;}.loop;});

建立SynthDef和两个例程后,可以通过同时调用~steady.play;和~phasing.play;来执行工作。或者,可以通过创建两个以上的乐器来执行工作来扩展工作,这样图案可以同时进行多次相位,并创建更多的音景。

我仅仅使用0.25等待和~time.wait作为我的相位机制时遇到的一个问题是,即使在应该同步的时候,这些仪器似乎最终似乎仍然处于不同步状态。一种更好的实现方式可能包括一种锁相环,其中时钟可以跟踪~STRATE的精确定时,并且当~相位尝试在6秒之后回落到位时,它在与~STRATE的时钟同步的同时这样做。

此外,当使用两个以上的乐器表演时,更灵活地实现摇摄效果(而不仅仅是在两个例程中定义摇摄)可以将不同的乐器均匀地分布在立体声领域中。

进一步探讨相位和钢琴相位材料的影响可以包括在模式的不同点启动多个乐器,以便通过相同的相位机制产生新的和声材料。或者,可以修改分相机构,使得不同的仪器以不同的速率(即,不仅是兰德(0,80),而且也是兰德(0,40)和兰德(0,20))通过该图案(即,不仅兰特(0,80),而且兰德(0,40)和兰德(0,20))。这也可以完全用新的谐波材料来代替赖克在他的作品中使用的音符。

史蒂夫·赖奇的“钢琴阶段”是音乐极简主义的一个很好的例子,以及正确的过程如何将少量的音乐材料转化为更大、更复杂的作品。超级对撞机为探索这些相位效应提供了一个很好的平台,因为它比最初用于极简实验的磁带机更灵活,比人类表演者更准确(也更有效)。只要稍微修改一下可以演奏钢琴阶段的代码,新的音乐材料就可以很容易地用于进一步的阶段性探索。