TuttiDAW 代码编曲TuttiDAW Code 指南

迷你记谱法

引号里的节奏语言:序列、休止、分组、轮换、复合节拍、欧几里得节奏和随机。

双引号之间的一切都是迷你记谱法(mini-notation):一种紧凑的节奏写法。 同样的规则适用于鼓名、音名和数字。

序列与休止

用空格分开的各步平分一个周期。~(或 -)是休止。

s("bd ~ ~ bd ~ ~ sd ~")
在 /code 中打开

分组:[ ]

方括号把几步压进一步的位置。

s("bd [sd sd] bd [~ sd]")
在 /code 中打开

分组可以任意嵌套:[hh [hh hh]] 是一个八分音符加两个十六分音符。

s("hh [hh hh] hh [hh [hh hh]]")
在 /code 中打开

加快与放慢:* 和 /

*n 让一步在自己的位置里演奏 n 次;/n 把它拉长到 n 个周期,所以每 n 小节才响一次。

s("bd*2 sd, hh*8, cp/2")
在 /code 中打开

轮换:< >

尖括号每个周期只演奏其中一步,依次轮流。这是让模式逐小节变化最简单的办法。

note("<c3 a2 f2 g2>").s("sawtooth")
在 /code 中打开

和 * 结合,可以更快地走完这个列表:

note("<c3 e3 g3 b3>*4")
在 /code 中打开

和弦与叠加:,

逗号让它的各部分同时演奏。在分组里,它就构成一个和弦。

note("[c3,e3,g3] [a2,c3,e3] [f2,a2,c3] [g2,b2,d3]")
在 /code 中打开

延长与重复:@ ! _

@n 让一步的长度是其他步的 n 倍。!n 把一步重复 n 次,每个副本都是完整的一步。 _ 把前一步再延长一步。

note("c3@3 eb3 g3!2 bb3 _")
在 /code 中打开

复合节拍:{ }

花括号演奏长度不同、但步长相同的几层,于是它们彼此错开,过一阵又重新对齐。 %n 设定一个周期里放几步。

note("{c3 eb3 g3, c4 d4 eb4 f4 g4}%4")
在 /code 中打开

欧几里得节奏:(k,n)

x(k,n) 把 k 次击打尽量均匀地分布在 n 步里。很多传统节奏都是欧几里得节奏: (3,8) 是 tresillo,(5,8) 是 cinquillo。第三个数字用来旋转这个模式。

s("bd(3,8), hh(5,8,2), sd(2,8,4)")
在 /code 中打开

随机:? 和 |

? 让一步有一半的概率不响(?0.2 是 20% 的概率)。| 在几个选项中随机挑一个。 随机是有种子的:在你修改代码之前,程序每次运行都会演奏同样的“随机”音符。

s("hh*16?, bd [sd|cp]")
在 /code 中打开

采样变体与数字范围::和 ..

name:n 选择某个声音的第 n 个变体(bd:3)。a .. b 从 a 数到 b。

n("0 .. 7").scale("C:major")
在 /code 中打开

迷你记谱法处处都是模式

任何接受数字的参数也接受带引号的模式,所以同样的语法可以控制速度、音量或滤波器:

s("hh*8").gain("0.9 0.4 0.6 0.4").fast("<1 2>")
在 /code 中打开