> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gridshift.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Time Stretching

> Changes how fast a sample plays and its pitch, each on its own, so a loop fits your song’s tempo and key. Hold ⌘ and drag a clip’s right edge to stretch it.

## Stretch a clip on the timeline

<video src="/videos/time-stretching-drag.mp4" poster="/videos/time-stretching-drag.jpg" aria-label="Holding Command, the vocal hook's right edge is dragged back to the end of bar eight and the hook is squeezed to fit" title="Holding Command, the vocal hook's right edge is dragged back to the end of bar eight and the hook is squeezed to fit" muted loop playsInline preload="none" />

Hold `⌘` and press anywhere on the right edge of an audio clip. Drag left for shorter and faster, right for longer and slower. Let go, and the stretch rate is set for you.

## Stretch from the keyboard

<video src="/videos/time-stretching-keys.mp4" poster="/videos/time-stretching-keys.jpg" aria-label="The Amen break is selected and Control Command left arrow moves its end back to the grid line before" title="The Amen break is selected and Control Command left arrow moves its end back to the grid line before" muted loop playsInline preload="none" />

Select an audio clip, or open it in [Focus Mode](/edit/focus-mode.md). Press `⌃⌘←` to move its end to the grid line before, `⌃⌘→` to the next one. Add `⌥` for a quarter step.

## Choose a character

<video src="/videos/time-stretching-character.mp4" poster="/videos/time-stretching-character.jpg" aria-label="The Character menu switches the hook from Punchy to Smooth, and its waveform runs on without gaps" title="The Character menu switches the hook from Punchy to Smooth, and its waveform runs on without gaps" muted loop playsInline preload="none" />

Open the **Character** menu at the top of the Inspector’s **Warp** section and pick **Punchy** for drums or **Smooth** for material that should stay continuous.

## Follow the project tempo

<video src="/videos/time-stretching-tempo.mp4" poster="/videos/time-stretching-tempo.jpg" aria-label="Command K, Change Tempo, 174: the stretched hook and break still fill their bars" title="Command K, Change Tempo, 174: the stretched hook and break still fill their bars" muted loop playsInline preload="none" />

Keep **Target BPM** linked, the lit link chip beside the value. Change the tempo, and every stretched clip keeps its length in bars.

## Shift the pitch and formants

<video src="/videos/time-stretching-pitch.mp4" poster="/videos/time-stretching-pitch.jpg" aria-label="Pitch is set to plus three, and the row shows A beside the shift, the key the hook lands on" title="Pitch is set to plus three, and the row shows A beside the shift, the key the hook lands on" muted loop playsInline preload="none" />

Click **Pitch** and type a shift in semitones, or drag it. The key the sample lands on shows beside it in grey.

<video src="/videos/time-stretching-formant.mp4" poster="/videos/time-stretching-formant.jpg" aria-label="On the Smooth vocal, pitched up three semitones, the Formant slider is dragged up and then down while the pitch stays at +3" title="On the Smooth vocal, pitched up three semitones, the Formant slider is dragged up and then down while the pitch stays at +3" muted loop playsInline preload="none" />

With the Character on **Smooth**, drag the **Formant** slider under Pitch. Positive values brighten a voice, negative values darken it.

## Quantize the slices

Switch on **Quantize** in the Warp section. Each slice of a loose loop snaps onto the 1/16 grid after the stretch, and the waveform shows it moved.

## Good to know

* **A stretch belongs to the sample, not to one clip.** Every clip that plays the same sample changes with it. The settings sit in the Inspector’s **Warp** section of a sample track.
* **Character is the one sound choice.** Both characters work from the same transient markers and place each slice at the same point in time. Punchy plays each slice untouched and leaves a gap where it runs short; Smooth stretches each slice to fill its span. Holes under Punchy are the trade for untouched transients.
* **Target BPM sets the stretch rate** together with the sample’s **Original BPM**, and is linked to the project tempo by default. A wrong detected tempo is fixed in Original BPM: [Tempo and Beat Grid](/samples/tempo-and-beat-grid.md).
* **Raised Pitch makes Punchy's gaps audible.** A slice pitched up plays faster and ends early: at `+12` semitones it covers half its span, at `+19` about a third. For pitched-up melodic or sustained material, switch to **Smooth**.
* **`⌘Z` undoes the whole drag** (**Timestretch Clip**). Key presses less than half a second apart are one undo step (**Stretch Clip**), so holding the key is one edit.

> **Details**
>
> * **A timeline drag previews the new length** as you drag. When you let go, the audio is squeezed or spread over the new length, and every other clip of the same sample takes the new rate, so all its copies get shorter or longer at once.
> * **A clip with linked copies stops growing** where one copy would reach the next.
> * **On a MIDI or automation clip, `⌘`-drag scales** the notes or points to the new length instead.
> * **The keyboard step follows the grid you see**, so zoom in for smaller steps. The fine step (**Stretch Shorter (Fine)** / **Stretch Longer (Fine)**) is a quarter of the grid’s size.
> * **With several clips selected, one is stretched**, and every clip of that sample follows.
> * **You see the character on the clip.** Under Punchy, a slowed-down sample shows a gap after each slice, where the slice ends before the next marker. Under Smooth the waveform runs continuously.
> * **Gridshift picks the first Character for you.** When stretching first engages on a sample whose Character you have not picked, it chooses Punchy if the sample has enough transient markers and Smooth if not. A Character you picked yourself is never changed.
> * **Punchy never stretches a slice.** Where it runs short the rest is silent, where it runs long it is cut at the next marker. Pitched up, the loop sounds choppy and gets noticeably quieter; pitched down, each slice is cut at the next marker.
> * **A sample that has never been stretched** plays at its own speed and does not follow the tempo.
> * **For a fixed tempo**, click the link chip to unlink Target BPM, then drag the value or click it and type a tempo. `⌥` drags finely and `⇧` coarsely. Hover the value for **÷2** and **×2**, which play the sample at half or double that tempo. Typing or dragging unlinks too, and right-clicking the value goes back to the sample’s own tempo.
> * **Pitch shifts without changing speed**, from `-24` to `+24` semitones. Decimals are fine, and `⌥`-drag sets cents. Dragging Pitch is heard while you drag. Right-click the value to reset it to `0`.
> * **The grey key is the original key plus the shift.** Correct the original key in the Sample section’s **Key** row if it is wrong.
> * **Pitch can follow the project key.** Click its link chip (key set in Project tab ▸ Key & Scale): the sample moves by the smallest interval to that key and follows when it changes. Pitch is not linked by default, so a new sample never transposes itself.
> * **Formant is Smooth-only.** It appears under Pitch while the Character is Smooth and the sample is stretched or pitched. It moves the character of a voice from `-12` to `+12` semitones without changing its pitch. Double-click the slider to type a value, `⌥`-click to reset it to `0`.
> * **Quantize tightens a loose loop without slicing it again.** The cut stays on the transient. It is off by default.
> * **Quantize needs transient markers.** Without them the Warp section says **Quantize needs transient markers**.
> * **Quantize under Punchy gaps, under Smooth fills.** Under Punchy a moved slice leaves a gap or is cut. Under Smooth each slice is stretched to fill its new span; that version renders in the background, and until it is ready the clip plays with Punchy’s gaps.
> * **Every Warp control has a palette command**, in the Audio Tools group: **Set Warp Target BPM**, **Warp: Follow Project Tempo**, **Warp Character: Punchy** / **Smooth**, **Set Warp Quantize**, **Set Warp Pitch**, **Warp Pitch: Follow Project Key**, **Land Sample Pitch on Key**, **Set Sample Original Key** and **Set Warp Formant**.
> * **The fades and length of each slice** sit in the Sample section above: [Slices](/samples/slices.md).

> **Characters**
>
> | Character | Best for | How it works |
> | - | - | - |
> | Punchy | Drums, percussion, loops | Moves each slice between transient markers and plays it untouched. Pitch is varispeed: the slice plays faster or slower, like a sampler. Preserves attack and punch |
> | Smooth | Vocals, keys, bass, pads, and drums that should not gap | Stretches each slice to fill its span exactly and shifts pitch independently. Drum hits stay sharp and on the beat |

> **Warp controls**
>
> | Control | Range | Default | Description |
> | - | - | - | - |
> | Character | Punchy / Smooth | Picked from the markers | The sound choice |
> | Target BPM | `20`–`999` | **Linked** to the project tempo (default) | The tempo the sample plays at. Unlink it to hold a fixed tempo |
> | Pitch | `-24` to `+24` semitones | `0` (default), not linked | Pitch shift independent of speed; `⌥`-drag for cents. Link it to follow the project key |
> | Formant | `-12` to `+12` semitones | `0` (default) | Smooth only, shown while the sample is stretched or pitched. Shifts vocal formants independently of pitch |
> | Quantize | On / Off | **Off** (default) | Snaps each slice onto the 1/16 grid after the stretch. Needs transient markers |

> **Keys**
>
> | Action | Shortcut |
> | - | - |
> | Stretch on the timeline | `⌘`-drag a clip's right edge |
> | Stretch Longer (to the next grid line) | `⌃⌘→` |
> | Stretch Shorter (to the grid line before) | `⌃⌘←` |
> | Stretch Longer (Fine) / Stretch Shorter (Fine), a quarter grid step | `⌃⌥⌘→` / `⌃⌥⌘←` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.