TuttiCodeTuttiCode 指南

混音:总线和 master

用总线做共享的混响和延迟,从声部发送过去,设置每个声部的推子和声像,以及程序的 master 效果链——和“在 TuttiDAW 中打开”建出的轨道完全一样。

程序可以像录音室里的工程一样给自己混音:用总线放共享效果,从声部发送到总线,每个声部有自己的推子和声像,所有声音最后都经过 master。“在 TuttiDAW 中打开”建出的正是这些轨道。

代码 是什么 在录音室里
bus(name) 共享效果轨 程序编组里的一条返送轨
.send(bus, dB) 声部有多少送到总线 声部轨道上的发送旋钮
.mix({vol, pan, mute}) 声部(或总线)的调音台 轨道的推子、声像和静音
master 程序自己的总线 程序编组的设备和推子

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

总线和发送

在单独一行用 bus("name") 声明总线,再用 .fx 给它加效果。总线上通常放“只有湿声”的效果(Dry/Wet 为 100%):声部保留自己的干声,把一部分送到总线。

bus("verb").fx("Reverb:Large Hall", {dryWetBalance: 1})

drums: s("bd*2 [~ bd] sd ~, hh*8").bank("tr909")
keys: chord("<Cm7 Fm7>").voicing().inst("Electric").send("verb", -10)
lead: n("0 2 4 7").scale("C4:minor").s("triangle").send("verb", -18)
在 /TuttiCode 中打开

.send(bus, dB) 的电平单位是 dB:0 最大,-70 为关闭。可以从任意多个声部发送,一个声部也可以发送到多条总线:

bus("verb").fx("Reverb", {dryWetBalance: 1, decayTime: "3s"})
bus("echo").fx("Delay", {feedback: 0.4}).mix({vol: -6})

keys: note("<c3 e3 g3>").inst("Drift").send("verb", -10).send("echo", -20)
在 /TuttiCode 中打开

用模式可以让电平变化——这里混响每隔一小节打开一次:

bus("verb").fx("Reverb", {dryWetBalance: 1})
keys: note("c3 e3 g3 e3").s("sine").send("verb", "<-24 -6>")
在 /TuttiCode 中打开

发送到程序没有声明的总线会给出警告,编辑器会提议帮你加上 bus("...")。

为什么用总线?两个声部共用一个混响,听起来就像在同一个房间里,而且只需在一个地方改这个房间。Strudel 的 .room() 依然可用:它给那个声部一个自己的混响。

声部的推子、声像和静音

.mix() 设置声部的调音台:vol 单位 dB(0 保持原样,-6 大约一半响度,-70 为无声),pan 从 -1(左)到 1(右),mute 为开或关。

bass: note("c2 ~ c2 g1").s("sawtooth").lpf(500).mix({vol: -3})
hats: s("hh*8").mix({vol: -12, pan: 0.4})
perc: s("~ rim").mix({pan: -0.4, mute: true})
在 /TuttiCode 中打开

vol 和 pan 也可以是模式。一个声部同时有 .pan()(Strudel)和 .mix({pan}) 时,以 .mix 的值为准。

master

master 是程序自己的总线:所有声部和总线都经过它。像其他总线一样给它加效果和推子——用一个温和的压缩器把混音粘合在一起,最后加一个限制器,是常见的起点:

master.fx("Glue Compressor", {threshold: -12}).fx("Limiter")
master.mix({vol: -1})

drums: s("bd*4, ~ cp, hh*8").bank("tr909")
bass: note("<c2 g1 a1 f1>").ply(4).s("sawtooth").lpf(600)
在 /TuttiCode 中打开

在这个页面上,master 就是你听到的总输出。在工程里,程序位于自己的编组轨道中,所以 master 是这个编组的效果链;它和其他轨道一样汇入工程的 master。

在录音室里

在 TuttiDAW 中打开程序,会得到它的编组:每个声部一条轨道,总线作为编组里的返送轨,master 效果链在编组上。代码设置的值归代码所有:手动改动其中一个(设备参数、推子、声像或静音,或在总线、master 上添加、删除、移动设备),这个声部、总线或 master 就会与代码脱离(“重新连接”可以恢复)。从代码中删掉一条总线,它的返送轨会保留,并标记为“不在代码中”。