Skip to content

Punch In and Out

Punch points limit recording to a window of cycles; playback runs from wherever it starts. Record a Take covers arming and collecting takes.

.punch(in, out) records from cycle in up to cycle out:

let rec = AudioTrack("rec");
rec.set_input(0).arm();
rec.punch(4, 12); // records cycles 4 to 11
RECORD;

Punch points land on cycle boundaries. The window is recorded in a live session, as the play head passes it; a file run ends before it gets there.

.punch_in(cycle) starts recording at a cycle and doesn’t stop; .punch_out(cycle) records from now and stops at a cycle.

The points stay set across passes: run RECORD again for another take of the same window, and collect each with .take().

.clear_punch() removes them, and the track records whenever the transport does. .is_punched() says whether any are set.