首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何在SuperCollider模式中添加一些随机抖动到注释的定时?

我如何在SuperCollider模式中添加一些随机抖动到注释的定时?
EN

Stack Overflow用户
提问于 2012-12-15 13:15:29
回答 1查看 192关注 0票数 2

我想添加一个非常简单的“人性化”的一些音符模式,随机抖动时间的音符播放。此代码反复播放和弦:

代码语言:javascript
复制
p = Pbind(\legato, 0.1, \dur, 0.2, \midinote, [66, 69, 74]).play

但我希望和弦中的三个音符中的每个音符在精确的时间上都有一些独立的“错误”。我做了,而不是,希望它的速度有所变化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-15 13:15:29

模式指南第8节中可以使用一个名为\timingOffset的键。

简单的例子是:

代码语言:javascript
复制
p = Pbind(\legato, 0.1, \dur, 0.4, \midinote, [66, 69, 74], 
       \timingOffset, Pwhite(-0.1, 0.1)
    ).play;

所以这是+-0.1拍的随机偏移量。不幸的是,它将一个偏差应用于整个和弦,这不是你想要的。因此,您需要将一个数组输入Pwhite:

代码语言:javascript
复制
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;

当然,您可以从某些值派生出这些数组:

代码语言:javascript
复制
~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“的数组大小是可变的,则可以确定正确的值数:

代码语言:javascript
复制
~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;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13892512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档