pub enum Transform {
Show 17 variants
Rev,
Fast(Ramp<f64>),
Slow(Ramp<f64>),
Every(u32, Box<Transform>),
Arp(ArpMode),
Scale(PitchRoot, ScaleMode),
Oct(Ramp<i32>),
Vel(Ramp<f64>),
RampSpan {
cycles: u32,
curve: RampCurve,
},
Gain(Ramp<f64>),
Pan(Ramp<f64>),
AutoPan(PanSweep),
Lpf(Ramp<f64>),
Hpf(Ramp<f64>),
Fx(FxCall),
Delay(Ramp<f64>, Ramp<f64>, Option<Ramp<f64>>),
Reverb(Ramp<f64>),
}Expand description
A transform applied after the mini-notation via |.
Transforms split into two families, which matters to consumers: Rev,
Fast, Slow, Arp, Scale, Oct and Vel reshape the scheduled
events, while Gain, Pan, Lpf, Hpf, Delay and Reverb describe an
ordered DSP chain.
Every numeric argument is a Ramp, so any of them may travel across the
line’s Transform::RampSpan (§4.6). A parameter that only ever holds one
value is a Ramp::Fixed, and Ramp::travels is how a consumer tells the
two apart.
Variants§
Rev
Fast(Ramp<f64>)
Slow(Ramp<f64>)
Every(u32, Box<Transform>)
Arp(ArpMode)
Scale(PitchRoot, ScaleMode)
Oct(Ramp<i32>)
Vel(Ramp<f64>)
vel <0.0..=1.0> — the line’s default note velocity. A step that names
its own velocity (X, :v — see crate::ast::mini::Step) overrides
this for that step.
RampSpan
ramp <cycles> [lin|exp] — how long the line’s ranges take to travel,
and how they get there. One span governs every range on the line.
Gain(Ramp<f64>)
gain <0.0..=2.0> — output level, positional in the DSP chain.
Pan(Ramp<f64>)
pan <-1.0..=1.0> — a fixed stereo position, positional in the chain.
AutoPan(PanSweep)
pan <wave> <rate>[hz] [depth] — a stereo position swept by an LFO.
Lpf(Ramp<f64>)
Hpf(Ramp<f64>)
Fx(FxCall)
fx <filter> <arg>..., or one of its short aliases.
The filter is named but not resolved here: this crate has no knowledge of the engine’s filter set, so the consumer looks the name up in its own registry and reports an unknown one.
Delay(Ramp<f64>, Ramp<f64>, Option<Ramp<f64>>)
delay <time> <feedback> [mix] — the wet mix defaults to 0.35.