TuttiCodeTuttiCode 指南

混音:编组

把声部放进一个编组,给它自己的效果、推子和发送——程序里的鼓总线,和“在 TuttiDAW 中打开”建出的编组轨道完全一样。

编组把几个声部归在一起,让你把它们当成一个整体来处理:给所有鼓加一个压缩器,用一个推子控制整套鼓,用一个发送送到混响。“在 TuttiDAW 中打开”会把它建成程序编组里的一条编组轨道,里面放着这些声部。

代码 是什么 在录音室里
group(name) 一组声部 程序编组里的一条编组轨道
.group(name) 把声部放进编组 声部的轨道成为那个编组的子轨道

和 bus、.send 一样,这些是 TuttiDAW 独有的:用了它们的程序不能在 strudel.cc 上播放。

鼓编组

在单独一行声明编组,用 .fx 给它加效果,用 .mix 设置推子,再用 .group(name) 把声部放进去:

group("drums").fx("Drum Buss").mix({vol: -3})

kick: s("bd*4").bank("tr909").group("drums")
snare: s("~ sd").bank("tr909").group("drums")
hats: s("hh*8").bank("tr909").group("drums").mix({vol: -8})
bass: note("<c2 g1 a1 f1>").ply(4).s("sawtooth").lpf(600)
在 /TuttiCode 中打开

底鼓、军鼓和踩镲先经过 Drum Buss,再经过编组的推子:-3 让三者都降低 3 dB。每个声部仍然保留自己的 .mix——踩镲在编组里低 8 dB。

从编组发送

编组可以像声部一样以 dB 电平发送到总线。整个编组按这个电平送到总线——这里鼓共用一个房间混响,贝斯保持干声:

bus("room").fx("Reverb", {dryWetBalance: 1, decayTime: "1.5s"})
group("drums").send("room", -14)

kick: s("bd*4").group("drums")
snare: s("~ sd").group("drums")
bass: note("c2 ~ c2 g1").s("sawtooth").lpf(500)
在 /TuttiCode 中打开

总线属于程序:编组可以发送到程序声明的任何总线,编组里的声部也仍然可以自己发送。

编组的推子、声像和发送电平都是数字(编组轨道没有可以承载变化的片段)。编组不能放进另一个编组。

没有编组的声部

程序里没有 group("drums") 却写了 .group("drums") 会给出警告:编辑器会提议帮你加上声明,在那之前这个声部和其他声部一样在程序的编组里播放。

在录音室里

编组轨道位于程序的编组里,它的声部是它的子轨道。它的效果、推子和发送归代码所有,和总线一样:手动改动其中一个,这个编组就会与代码脱离(“重新连接”可以恢复)。手动把声部移出它的编组,这个声部就会脱离代码。从声部上删掉 .group("drums"),它的轨道会回到程序的编组;删掉 group("drums") 本身,编组轨道会保留并标记为“不在代码中”,它的声部则回到程序的编组。