TuttiCodeTuttiCode 指南

用 do re mi 写旋律

凡是能写音名的地方都能写唱名(do re mi fa sol la si);在 strudel.cc 打开时会换成字母。

唱名就是音名

凡是能写音名的地方,都可以改写唱名:do re mi fa sol la si。TuttiCode 用固定唱名 (固定 do):不论什么调,do 永远是 C,re 是 D,sol 是 G。也可以写 so 和 ti (分别等于 sol 和 si)。

note("do re mi fa sol la si do4")
在 /TuttiCode 中打开

只是写法不同:note("do re mi") 和 note("c d e") 播放的完全一样。

升降号与八度

升降号和八度的写法与字母相同:do#4、mib(降 E)、sib3(降 B)、fa#。不写八度 就是第 3 八度,和 c 一样。大写也可以:Do、SOL。

note("<do4 mib4 sol4 sib4> [fa#3 la3]").s("piano")
在 /TuttiCode 中打开

音阶与和弦

音阶的主音可以写唱名:.scale("re:minor")。用逗号把几个音叠起来就是和弦。

n("0 2 4 <7 6>").scale("<re:dorian sol:mixolydian>")
在 /TuttiCode 中打开
note("<[do3,mi3,sol3] [la2,do3,mi3] [fa2,la2,do3] [sol2,si2,re3]>").s("piano")
在 /TuttiCode 中打开

和弦符号(chord("C^7")、.voicings())仍然用字母:在那里 do 已经表示 D 减三和弦 (D 加 o)。

哪里不是音

在 s() 和 sound() 里,单词是音色名,所以 s("do") 找的是名叫 "do" 的音色。唱名只在 写音高的地方表示音:note() / .note()、.scale() 的主音、.mode() 和 .anchor(), 以及音符上的 .add() / .sub() / .transpose()。n() 也是采样或音色库的编号,所以 n("do") 里的 do 也只是单词,要写成 note("do")。

在 strudel.cc 打开

strudel.cc 只认字母音名。"在 strudel.cc 打开"会自动把唱名换成字母("do re mi" 变成 "c d e"),所以程序在那里播放的也一样。