Region Editing
Cut, copy, paste, trim, split and move clips, with sync-lock for multitrack recordings.
On this page14 tools
cut_rangeRemove a time range. Audio after the cut point shifts left.
Example prompt: cut from 1:30 to 2:00 on track 1
Returns: node_id, synced_tracks
With sync-lock on, the same span comes out of every track so a multitrack recording stays aligned.
set_sync_lockTurn sync-lock on or off. With it on, an edit that shifts time on one track shifts every track. An interview is one track per speaker, and cutting a sentence from one of them leaves every later word on that track early while the other speaker stays put — the conversation comes apart, and nothing about the edit says it will. Affects cut_range, insert_silence and paste_region.
Example prompt: keep the tracks in sync when you cut
Returns: node_id, sync_lock, changed
Each affected edit is still one undoable node covering every track it moved, so undo restores the whole edit rather than half of it. The mode is part of the session, so it survives Save As and the agent can read it before deciding whether a cut is safe.
punch_inReplace a region of a track with audio from a file, in place. The region's length does not change, so everything after the punch stays exactly where it was — this is how a misread line gets fixed without re-recording the whole take or shifting the rest of the session out of sync.
Example prompt: replace 1:20 to 1:35 with the retake I just recorded
Returns: node_id, region_sec, take_sec, trimmed_sec, padded_sec
A take longer than the region is trimmed and a shorter one is padded with silence, and the tool says which happened. It never stretches the performance and never ripples the timeline — rippling is exactly what punching in exists to avoid.
copy_regionCopy a time region to the clipboard, and persist it as a content-addressed blob so a later paste can be replayed rather than merely kept.
Example prompt: copy the section from 0:30 to 1:00
Returns: clipboard_blob hash
paste_regionInsert clipboard contents into a track. Audio shifts right at the insert point. With sync-lock on, the gap opens on every other track too so the tracks stay aligned, which moves clips on tracks the call does not name and splits a clip that straddles the insert point.
Example prompt: paste at 2:00 on track 1
Returns: node_id, synced_tracks
trimRemove silence from the start and/or end of a track.
Example prompt: remove the silence at the start of track 1
Returns: node_id, trimmed_start_sec, trimmed_end_sec
insert_silenceInsert a gap of silence at a position. Audio shifts right. With sync-lock on, the gap opens on every other track too so the tracks stay aligned, which moves clips on tracks the call does not name and splits a clip that straddles the position.
Example prompt: add 2 seconds of silence at 0:30
Returns: node_id
reverseReverse a region (or the full track).
Example prompt: reverse track 1
Returns: node_id
silence_regionZero out audio samples between start_sec and end_sec on a track.
Example prompt: silence 0:10 to 0:12
Returns: node_id
repeat_selectionDuplicate the audio region [start_sec, end_sec) on a track N additional times, appending copies after the original buffer.
Example prompt: repeat 0:00-0:04 three more times
Returns: node_id
split_clipSplit a clip into two at the specified time position. Both resulting clips reference the same source file with adjusted offsets.
Example prompt: split track 1 at 1:30
Returns: node_id
move_clipMove one clip to a new start position, leaving the other clips where they are. Use time_shift to move a whole track together. Clips are re-sorted by start, so a clip dragged past its neighbour keeps the arrangement and the waveform in step.
Example prompt: move the second clip on track 1 to 8 seconds
Returns: node_id
remove_clipRemove one clip from a track. The gap it leaves is silence — this does not close up the timeline. Use remove_track to drop a whole track.
Example prompt: delete the second clip on track 1
Returns: node_id
invertInvert (negate) audio polarity on a track, optionally within a time range.
Example prompt: invert the polarity of track 2
Returns: node_id