off delays a transformed copy of a pattern by a fraction of a cycle and layers it over the original
off(delay, transform) takes the current pattern, applies a transformation to a copy of it, time-shifts that copy by the given delay (as a fraction of a cycle), and plays both the original and the shifted copy simultaneously. The result is automatic counterpoint or echo-based layering: the transformed copy comes in slightly after the original. Delay values like 1/8 create tight canonic echoes; larger values create call-and-response. The transform is written as a lambda (arrow function), e.g. x=>x.speed(2).
Examples
sound(“bd cp [hh oh] bd”).fast(“1 <1 2>“).off(1/8, x=>x.speed(2)) — a pitch-shifted copy enters 1/8 cycle after the original.
Assessment
Use off(1/4, x=>x.gain(0.5)) on a melody. Describe the rhythmic and timbral relationship between the original and delayed layer.