Extensions

PaulStretch

Stretch the selected clip many times longer into an ambient texture.

paulstretchstretchambienttexturetime-stretch
New chat
/paulstretch:stretch

Started PaulStretch: Stretch Selection.

PaulStretch
Started.
PaulStretch

Stretching “PMRW_Synth_Loop.wav” 8.0x…

PaulStretch

“PMRW_Synth_Loop.wav” stretched 8.0x — 2m 08s.

PMRW_Synth_Loop 8.0x.wav
8.0x, 2m 08s
Insert
PMRW_S…Loop.wav
Ask about the selected clips…
Claude Opus 5 ⌄

Installing

  1. 1. In Layers, open the Extensions window.
  2. 2. Switch to Browse and select PaulStretch.
  3. 3. Install, and confirm the access it asks for.

Installing from the Extensions window is what checks the catalogue signature and the bundle's checksum. Layers offers the update when a newer version is published.

Stretch a clip many times longer until it stops being a sound and starts being a place. Select a clip, run one command, pick how far on a slider, and drag the result onto the timeline.

What it does

PaulStretch: Stretch Selection posts a slider into the chat. Pick a factor, press Stretch, and the clip comes back as an audio card you can play, insert, or drag straight onto the canvas — it lands exactly like a sample dropped from the browser, with the same single ⌘Z.

Nothing is changed until you drag it. The original clip is untouched, and a card you ignore costs nothing.

The clip is stretched dry — as recorded, before its effect chain. Stretching the processed signal would smear the clip's reverb across minutes and then play that through the same reverb again.

How it sounds

The algorithm keeps each moment's frequency content and throws its timing away, replacing every phase with noise. That is why it does not sound like a slowed tape: there is no transient left to smear, so even a fifty-times stretch has no wobble or stutter in it. Percussive material turns into drifting pads; a chord becomes the room it was played in.

Both channels are driven from the same noise, which is what keeps the stereo image where it was. Per-channel noise would collapse it toward mono.

The slider's top end

The result travels back through the chat, which holds about three minutes of audio. The slider works out how far this clip can go and stops there, so the factor you can pick is always one that will actually come back — a four-bar loop reaches about 20×, a long take rather less.

If the clip is already longer than that, PaulStretch says so instead of failing halfway. Trim it, or stretch a shorter piece.

Installing

Developer mode: Settings → Developer, then Extensions: Install from Folder… and pick this directory. Build it first with cargo build -p ext-paulstretch --release.

Commands

PaulStretch: Stretch Selectionstretch

Pick a factor, then stretch the selected clip into a texture

Offered when an audio clip is selected.

What it can do

  • Read your project
  • Read your audio
  • Post into a chat
  • Add commands to the command palette

Layers shows you this list before it installs anything, and again before the extension first runs.

Details

Version
0.1.1
Published
September 20, 2026
Author
Layers
Layers API
^1.4
Identifier
layers.paulstretch
Platforms
macOS · Apple Silicon, macOS · Intel

Release history

  • v0.1.1: the form posts a titled card and its button rides the footer
  • v0.1.0: stretch the selected clip into a texture from a chat slider