Delay / FX
Delay line. The first argument is input signal, the second is delay time in samples, and the third is feedback/mix amount. dly() is a short alias for one delay line only.
For multiple independent delay lines, use delay(), delay1(), delay2(), and delay3(). When several delay(...) calls are used in one formula, Syntropy automatically renumbers them internally up to four total delay instances.
Delay time is in samples. Feedback/mix should usually stay below about 0.8 to avoid runaway feedback.
delay(lp(pwm(0.5*X, 0.34), 0.16, 0.12), 900, 0.18)
0.6*delay(saw(X), 620, 0.22) + 0.4*delay1(sin(1.005*X), 1180, 0.18)
Practical recommendation: document/use delay() for formulas needing more than one delay instance. Treat dly() as a short alias for one delay line only.
Avoid writing several dly(...) calls in the same formula if you expect separate delay memories. They share the same first delay state and can interfere with each other.
For pitched oscillator functions, X already contains the current MIDI note pitch and transpose information. Prefer saw(X), sin(X), or pwm(X, 0.4) unless you intentionally want an octave or ratio shift such as 0.5*X or 2*X.