Effect controls
Filters, reverb, delay, distortion, panning, envelopes and synth controls - and moving them with signals.
This page has not been translated yet, so it is shown in English.
Controls are methods that shape the sound of every event: .lpf(800),
.room(0.4). In TuttiDAW each control is played by a real device on the
voice's track - a filter control adds an Auto Filter, room a Reverb - so
what you hear is what you get when you open the program in the studio.
Filters
.lpf(hz) is a low-pass filter (it removes highs), .hpf(hz) a high-pass
(it removes lows), .bpf(hz) a band-pass. .lpq(...) / .hpq(...) add
resonance.
note("c2*8").s("sawtooth").lpf("<300 600 1200 2400>").lpq(6)s("hh*16").hpf(6000).gain(0.6).vowel("a e i o u") is a formant filter that makes a sound talk.
note("c2*4").s("sawtooth").vowel("<a e i o>")Space: room and delay
.room(amount) sends the voice into a reverb; .size(...) makes the room
bigger. .delay(amount) adds an echo, with .delaytime(cycles) and
.delayfeedback(0..1).
s("~ cp ~ cp").room(0.6).size(4)note("<c4 eb4> ~ ~ ~").s("triangle").delay(0.5).delaytime(3/16).delayfeedback(0.55)Drive and lo-fi
.shape(0..1) and .distort(...) add drive; .crush(bits) reduces the bit
depth (lower is crunchier) and .coarse(n) the sample rate.
s("bd*4, ~ sd").shape(0.5)note("c3 eb3 g3 bb3").s("square").crush(5)Level and stereo
.gain(...) is the level into the effects, .postgain(...) after them.
.pan(0..1) places the voice from left (0) to right (1).
s("hh*8").pan("0 1 0.25 0.75").gain(0.7)Modulation effects
.phaser(rate) and .chorus(amount) add movement; .compressor(...)
evens out the level.
note("[c3,g3,bb3]*2").s("sawtooth").phaser(1).lpf(1800)Envelopes
.attack, .decay, .sustain and .release shape each note's volume, in
seconds (sustain is a level, 0 to 1). A slow attack and long release make a
pad; a short decay with no sustain makes a pluck.
note("<[c3,eb3,g3] [bb2,d3,f3]>").s("sawtooth").attack(0.4).release(1).lpf(1500)note("c4 g4 eb4 g4").s("square").decay(0.12).sustain(0)Synth controls
These play on the TuttiDAW synth that stands in for the waveform:
.lpenv(depth)with.lpattack/.lpdecay/.lpsustain/.lprelease: an envelope on the filter cutoff;.fm(index)with.fmh(ratio)and.fmdecay(...): FM brightness (the voice moves onto Operator);.penv(semitones)with.pdecay(...): a pitch sweep, good for kicks and zaps;.vib(rate)with.vibmod(semitones): vibrato;.detune(...)and.unison(voices)onsupersaw.
note("c2 ~ c2 [~ c3]").s("sawtooth").lpf(250).lpenv(4).lpdecay(0.15).lpsustain(0)note("c3 e3 g3 c4").s("sine").fm(3).fmh(2).fmdecay(0.3)note("c2*4").s("sine").penv(24).pdecay(0.08)Each of these is an approximation of Strudel's synth on a TuttiDAW instrument; the diagnostics list say which device plays it.
Moving values: signals
A signal is a value that moves continuously through the cycle. sine,
cosine, saw, tri and square go from 0 to 1; perlin and rand
move smoothly or randomly. .range(min, max) scales a signal, .slow(n)
stretches it over n cycles.
note("c2*16").s("sawtooth").lpf(sine.range(300, 3000).slow(4))s("hh*16").gain(perlin.range(0.3, 0.9)).segment(n) samples a signal n times per cycle, which turns it into
notes:
n(saw.range(0, 8).segment(8)).scale("C:minor")In the studio: automation
When you Open in TuttiDAW, a control that changes over time - a pattern
like "<300 600>" or a signal - becomes a clip envelope on the device
parameter, so you can see and edit the movement like any other automation.