我想添加一个非常简单的“人性化”的一些音符模式,随机抖动时间的音符播放。此代码反复播放和弦:
p = Pbind(\legato, 0.1, \dur, 0.2, \midinote, [66, 69, 74]).play但我希望和弦中的三个音符中的每个音符在精确的时间上都有一些独立的“错误”。我做了,而不是,希望它的速度有所变化。
发布于 2012-12-15 13:15:29
在模式指南第8节中可以使用一个名为\timingOffset的键。
简单的例子是:
p = Pbind(\legato, 0.1, \dur, 0.4, \midinote, [66, 69, 74],
\timingOffset, Pwhite(-0.1, 0.1)
).play;所以这是+-0.1拍的随机偏移量。不幸的是,它将一个偏差应用于整个和弦,这不是你想要的。因此,您需要将一个数组输入Pwhite:
p = Pbind(\legato, 0.1, \dur, 0.4, \midinote, [66, 69, 74],
\timingOffset, Pwhite([-0.1, -0.1, -0.1], [0.1, 0.1, 0.1])
).play;当然,您可以从某些值派生出这些数组:
~jitter = 0.1;
p = Pbind(\legato, 0.1, \dur, 0.4, \midinote, [66, 69, 74],
\timingOffset, Pwhite({0-~jitter}.dup(3), {~jitter}.dup(3))
).play;下面是一种稍微不同的方法,如果"midinote“的数组大小是可变的,则可以确定正确的值数:
~jitter = 0.1;
p = Pbind(\legato, 0.1, \dur, 0.4, \midinote, [66, 69, 74],
\timingOffset, Pcollect({|val| {~jitter.bilinrand}.dup(val.size)}, Pkey(\midinote))
).play;https://stackoverflow.com/questions/13892512
复制相似问题