tur/transform
add
(add [p amount])
add a constant or pattern to a numeric pattern.
| p | base NumPattern | |
| amount | constant float or NumPattern to add |
NumPattern returning p(t) + amount. ((add my-pat 1.0) 0.5)
sub
(sub [p amount])
subtract a constant or pattern from a numeric pattern.
| p | base NumPattern | |
| amount | constant float or NumPattern to subtract |
NumPattern returning p(t) - amount.
mul
(mul [p factor])
multiply a numeric pattern by a constant or pattern.
| p | base NumPattern | |
| factor | constant float or NumPattern |
NumPattern returning p(t) * factor. ((mul my-pat 0.5) 0.5) ; halve the values
div
(div [p divisor])
divide a numeric pattern by a constant or pattern.
| p | base NumPattern | |
| divisor | constant float or NumPattern (returns 0 if divisor is zero) |
NumPattern returning p(t) / divisor.
range
(range [p from-low from-high to-low to-high])
map pattern values from one range to another.
| p | NumPattern with input values | |
| from-low | lower bound of input range | |
| from-high | upper bound of input range | |
| to-low | lower bound of output range | |
| to-high | upper bound of output range |
NumPattern with values linearly mapped and clamped to [to-low, to-high]. ((range my-pat 0.0 1.0 440.0 880.0) 0.5) ; => 660.0
clamp
(clamp [p low high])
clamp pattern values to [low, high].
| p | NumPattern | |
| low | minimum output value | |
| high | maximum output value |
NumPattern with values clamped.
normalize
(normalize [p min max])
map pattern values to [0, 1].
| p | NumPattern | |
| min | expected minimum of p | |
| max | expected maximum of p |
NumPattern with values normalised to [0, 1].
mod-pat
(mod-pat [p mod])
apply modulo to pattern values.
| p | NumPattern | |
| mod | modulo divisor |
NumPattern with values wrapped to [0, mod).
wrap
(wrap [p low high])
wrap pattern values to stay within [low, high].
| p | NumPattern | |
| low | lower bound | |
| high | upper bound |
NumPattern with values wrapped into [low, high].
exp-pat
(exp-pat [p])
apply exp() to pattern values.
| p | NumPattern (values in radians or raw) |
NumPattern with e^p(t).
log-pat
(log-pat [p & [base math/E])
apply logarithm to pattern values.
| p | NumPattern (must be > 0) | |
| base | logarithm base (default: math/E) |
NumPattern with log_base(p(t)).
pow-pat
(pow-pat [p exponent])
raise pattern values to a constant exponent.
| p | NumPattern (base) | |
| exponent | power to raise to |
NumPattern with p(t)^exponent.
sqrt-pat
(sqrt-pat [p])
square root of pattern values.
| p | NumPattern (values must be >= 0) |
NumPattern with sqrt(p(t)).
sin-pat
(sin-pat [p])
apply sin() to pattern values.
| p | NumPattern in radians |
NumPattern with sin(p(t)).
cos-pat
(cos-pat [p])
apply cos() to pattern values.
| p | NumPattern in radians |
NumPattern with cos(p(t)).
tan-pat
(tan-pat [p])
apply tan() to pattern values.
| p | NumPattern in radians |
NumPattern with tan(p(t)).
sine
(sine [& [freq 1.0 amp 1.0 phase 0.0])
sine wave pattern oscillating at a given frequency.
| freq | frequency in cycles per beat (default: 1.0) | |
| amp | amplitude (default: 1.0) | |
| phase | phase offset in radians (default: 0.0) |
NumPattern generating values in [-amp, amp]. ((sine 0.5 1.0 0.0) 0.25)
square
(square [& [freq 1.0 amp 1.0 duty 0.5])
square wave pattern.
| freq | frequency in cycles per beat (default: 1.0) | |
| amp | amplitude (default: 1.0) | |
| duty | duty cycle (0-1, default: 0.5) |
NumPattern returning amp or -amp.
saw
(saw [& [freq 1.0 amp 1.0])
sawtooth wave pattern.
| freq | frequency in cycles per beat (default: 1.0) | |
| amp | amplitude (default: 1.0) |
NumPattern descending from amp to 0 each cycle.
tri
(tri [& [freq 1.0 amp 1.0])
triangle wave pattern.
| freq | frequency in cycles per beat (default: 1.0) | |
| amp | amplitude (default: 1.0) |
NumPattern rising and falling symmetrically within [-amp, amp].
pulse
(pulse [& [freq 1.0 amp 1.0 width 0.5])
pulse wave pattern.
| freq | frequency in cycles per beat (default: 1.0) | |
| amp | pulse height (default: 1.0) | |
| width | pulse width 0-1 (default: 0.5) |
NumPattern returning amp during pulse, 0.0 otherwise.
jitter
(jitter [p amount])
add random noise to pattern values.
| p | base pattern | |
| amount | maximum jitter magnitude added to each float value |
Pattern<T> with random perturbation added to numeric values.
rand-select
(rand-select [& patterns])
randomly pick one of several patterns on each evaluation.
| patterns | patterns to choose from |
Pattern<T> delegating to a randomly selected sub-pattern each beat.
rand-value
(rand-value [& values])
randomly select a constant value on each evaluation.
| values | values to choose from |
Pattern<T>.
white-noise
(white-noise)
white noise pattern returning random floats in [0, 1).
NumPattern with uniform random values.
pink-noise
(pink-noise)
approximate pink noise pattern.
NumPattern producing spectrally shaped noise.
perlin-noise
(perlin-noise [& [scale 1.0 offset 0.0])
simplified Perlin-style noise pattern.
| scale | time scale (higher = more detail, default: 1.0) | |
| offset | time offset (default: 0.0) |
NumPattern with smooth random values.
adsr
(adsr [attack decay sustain release & [gate (pattern/const true)])
ADSR envelope pattern.
| attack | attack time in beats | |
| decay | decay time in beats | |
| sustain | sustain level (0-1) | |
| release | release time in beats | |
| gate | BoolPattern for gate (default: const true) |
NumPattern producing ADSR envelope values. ((adsr 0.1 0.2 0.7 0.3) 0.5)
ar
(ar [attack release & [gate (pattern/const true)])
simple attack-release envelope pattern.
| attack | attack time in beats | |
| release | release time in beats | |
| gate | BoolPattern (default: const true) |
NumPattern.
decay-exp
(decay-exp [decay & [gate (pattern/const true)])
exponential decay envelope pattern.
| decay | time constant in beats | |
| gate | BoolPattern (default: const true) |
NumPattern returning e^(-t/decay).
decay-lin
(decay-lin [decay & [gate (pattern/const true)])
linear decay envelope pattern.
| decay | decay duration in beats | |
| gate | BoolPattern (default: const true) |
NumPattern returning max(0, 1 - t/decay).
and-bit
(and-bit [p1 p2])
bitwise AND of two integer patterns.
| p1 | first IntPattern | |
| p2 | IntPattern or integer constant |
IntPattern with bitwise AND applied.
or-bit
(or-bit [p1 p2])
bitwise OR of two integer patterns.
| p1 | first IntPattern | |
| p2 | IntPattern or integer constant |
IntPattern with bitwise OR applied.
xor-bit
(xor-bit [p1 p2])
bitwise XOR of two integer patterns.
| p1 | first IntPattern | |
| p2 | IntPattern or integer constant |
IntPattern with bitwise XOR applied.
not-bit
(not-bit [p])
bitwise NOT of an integer pattern.
| p | IntPattern |
IntPattern with bitwise NOT applied.
floor-pat
(floor-pat [p])
floor each pattern value.
| p | NumPattern |
NumPattern with floor(p(t)).
ceil-pat
(ceil-pat [p])
ceiling each pattern value.
| p | NumPattern |
NumPattern with ceil(p(t)).
round-pat
(round-pat [p])
round each pattern value to the nearest integer.
| p | NumPattern |
NumPattern with round(p(t)).
quantize-int
(quantize-int [p])
quantize pattern values to nearest integer (alias for round-pat).
| p | NumPattern |
NumPattern.
quantize-step
(quantize-step [p step])
quantize pattern values to multiples of a step size.
| p | NumPattern | |
| step | quantization step size |
NumPattern with values snapped to step multiples. ((quantize-step my-pat 0.25) 0.0)
concat-str
(concat-str [p1 p2])
concatenate two string patterns.
| p1 | first StrPattern | |
| p2 | StrPattern or string constant |
StrPattern with concatenated strings.
upper-pat
(upper-pat [p])
convert string pattern values to uppercase.
| p | StrPattern |
StrPattern with uppercased values.
lower-pat
(lower-pat [p])
convert string pattern values to lowercase.
| p | StrPattern |
StrPattern with lowercased values.