TuttiDAW 代码编曲TuttiDAW Code 指南

效果控制

滤波器、混响、延迟、失真、声像、包络和合成器控制,以及用信号让它们动起来。

控制(control)是塑造每个事件声音的方法:.lpf(800)、.room(0.4)。在 TuttiDAW 中, 每个控制都由声部轨道上的一台真实设备来演奏:滤波控制会加一台 Auto Filter,room 会加一台 Reverb。所以你听到的,就是在工作室里打开程序时得到的。

滤波器

.lpf(hz) 是低通滤波器(去掉高频),.hpf(hz) 是高通(去掉低频),.bpf(hz) 是带通。 .lpq(...) / .hpq(...) 增加共振。

note("c2*8").s("sawtooth").lpf("<300 600 1200 2400>").lpq(6)
在 /code 中打开
s("hh*16").hpf(6000).gain(0.6)
在 /code 中打开

.vowel("a e i o u") 是共振峰滤波器,能让声音“说话”。

note("c2*4").s("sawtooth").vowel("<a e i o>")
在 /code 中打开

空间:room 和 delay

.room(amount) 把声部送进混响;.size(...) 让房间更大。.delay(amount) 加上回声, 配合 .delaytime(周期) 和 .delayfeedback(0..1)。

s("~ cp ~ cp").room(0.6).size(4)
在 /code 中打开
note("<c4 eb4> ~ ~ ~").s("triangle").delay(0.5).delaytime(3/16).delayfeedback(0.55)
在 /code 中打开

推动与低保真

.shape(0..1) 和 .distort(...) 加入失真推动;.crush(位数) 降低位深(越低越粗糙), .coarse(n) 降低采样率。

s("bd*4, ~ sd").shape(0.5)
在 /code 中打开
note("c3 eb3 g3 bb3").s("square").crush(5)
在 /code 中打开

电平与立体声

.gain(...) 是进入效果器之前的电平,.postgain(...) 是效果器之后的。.pan(0..1) 把声部从左(0)放到右(1)。

s("hh*8").pan("0 1 0.25 0.75").gain(0.7)
在 /code 中打开

调制效果

.phaser(rate) 和 .chorus(amount) 增加流动感;.compressor(...) 让电平更平稳。

note("[c3,g3,bb3]*2").s("sawtooth").phaser(1).lpf(1800)
在 /code 中打开

包络

.attack、.decay、.sustain 和 .release 塑造每个音符的音量,单位是秒 (sustain 是 0 到 1 的电平)。缓慢的起音加较长的释音得到铺底(pad);短衰减、无持续得到拨奏(pluck)。

note("<[c3,eb3,g3] [bb2,d3,f3]>").s("sawtooth").attack(0.4).release(1).lpf(1500)
在 /code 中打开
note("c4 g4 eb4 g4").s("square").decay(0.12).sustain(0)
在 /code 中打开

合成器控制

这些控制由代替波形演奏的那台 TuttiDAW 合成器来实现:

  • .lpenv(深度) 配合 .lpattack / .lpdecay / .lpsustain / .lprelease: 作用于滤波器截止频率的包络;
  • .fm(指数) 配合 .fmh(比率) 和 .fmdecay(...):FM 的明亮度(声部会改由 Operator 演奏);
  • .penv(半音) 配合 .pdecay(...):音高扫动,适合底鼓和激光音效;
  • .vib(速率) 配合 .vibmod(半音):颤音;
  • supersaw 上的 .detune(...) 和 .unison(声部数)。
note("c2 ~ c2 [~ c3]").s("sawtooth").lpf(250).lpenv(4).lpdecay(0.15).lpsustain(0)
在 /code 中打开
note("c3 e3 g3 c4").s("sine").fm(3).fmh(2).fmdecay(0.3)
在 /code 中打开
note("c2*4").s("sine").penv(24).pdecay(0.08)
在 /code 中打开

它们都是在 TuttiDAW 乐器上对 Strudel 合成器的近似;诊断信息会说明由哪台设备来演奏。

让数值动起来:信号

**信号(signal)**是在周期中连续变化的数值。sine、cosine、saw、tri 和 square 在 0 到 1 之间变化;perlin 和 rand 平滑地或随机地变化。.range(min, max) 缩放信号, .slow(n) 把它拉长到 n 个周期。

note("c2*16").s("sawtooth").lpf(sine.range(300, 3000).slow(4))
在 /code 中打开
s("hh*16").gain(perlin.range(0.3, 0.9))
在 /code 中打开

.segment(n) 每个周期对信号采样 n 次,把它变成音符:

n(saw.range(0, 8).segment(8)).scale("C:minor")
在 /code 中打开

在工作室里:自动化

当你 Open in TuttiDAW 时,随时间变化的控制(像 "<300 600>" 这样的模式,或者一个信号) 会变成设备参数上的片段包络,你可以像其他自动化一样查看和编辑这些变化。