# STYLE Source: https://docs.gridshift.studio/STYLE # Documentation style spec **v0.1** · The single, operational spec for how Gridshift docs are written and structured. It governs everything under `docs/` (Mintlify). Voice and brand rules live in [`BRAND.md`](../BRAND.md) (repo root) — this file is the docs-specific operationalization of them, and the checklist the `/docs-audit` skill enforces. If a rule here and `BRAND.md` ever disagree, `BRAND.md` wins on voice; this file wins on structure and Mintlify usage. *** ## 1. Voice, in one paragraph Docs are the literal end of [register by altitude](../BRAND.md) — no marketing, ever. Write to a producer who is technical and impatient with fluff. Present tense, imperative for actions ("Press `⌘U`", not "You can press ⌘U"). **US English** (color, behavior, optimize, canceling, gray). Bold a domain term **once**, on first use, then plain. Cut the first sentence if it's throat-clearing. No exclamation marks, no emoji. *** ## 2. Page anatomy Every feature page follows the same spine: 1. **Frontmatter** (see §3). 2. **One-sentence definition** — opens the page, bolds the key term once. > **Quantize** snaps the start of notes and audio transients to the nearest grid position. 3. **How it works** — the mental model, briefly. Why it behaves as it does. 4. **Task sections** — one per thing the user does, task-oriented sentence-case headings (*"Quantize a selection,"* not *"Quantization"*). Steps inside. 5. **Shortcuts** — a table, when the feature has them. 6. **Related / caveats** — cross-links and edge cases, via callouts. Concept pages (`concepts.mdx`, `introduction.mdx`) explain the model and may skip the task sections. Shortcut-reference pages are primarily tables. **Headings:** sentence case, task-oriented, verb-first where it's an action. Never Title Case a heading (feature *names* inside prose stay Title Case — they're proper nouns; see §6). *** ## 3. Frontmatter | Key | Required | Rule | | ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | `title` | **yes** | The feature's canonical name (§6). Title Case for the proper noun. | | `description` | **yes** | One sentence, sentence case, no trailing period-stuffing. This is the search-result line and the SEO description — make it say what the feature *does*. | | `sidebarTitle` | recommended | Short form for the nav when `title` is long. | | `icon` | recommended | A Lucide icon name, consistent with sibling pages in the group. | | `reviewed` | managed | ISO date the page was last **verified against the code** (§6). Written by `/docs-audit`; don't backfill by hand. Missing = never verified. | | `verifiedAgainst` | optional | App/build version the page was checked against, alongside `reviewed`. | ```mdx theme={null} --- title: "Quantize" sidebarTitle: "Quantize" description: "Snap notes and audio transients to the grid, by a chosen amount." icon: "grid" reviewed: 2026-07-11 --- ``` `reviewed` is the freshness signal — it means *last checked for accuracy*, which is what predicts staleness. It is **not** an edit date: git already records edits, and Mintlify shows a git-based "last updated" (`metadata.timestamp`). Never hand-set `reviewed` — a date no audit produced is a claim no one checked. *** ## 4. Components — when to use which Use the smallest thing that does the job. A sentence beats a callout; a callout beats a section. Never stack callouts, never decorate. | Element | Use it for | Don't | | ------------------------ | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | | `` / `` | Any procedure of 2+ ordered actions. Prefer over a bare numbered list — it renders the sequence clearly. | Single actions (just write the sentence). | | `` | A caveat or aside that qualifies the main text. | General prose that belongs in the body. | | `` | A power-move, shortcut, or workflow accelerator. | Restating a step. | | `` | A prerequisite or piece of background context. | Warnings — use ``. | | `` | **Reserved** for data loss or irreversible actions only. | Ordinary caveats (that's ``). | | `` | Wrapping a screenshot or image, with a caption. | Text. Every product image lives in a ``. | | `` / `` | Navigation / overview grids (e.g. a feature index). | Inline emphasis inside a page body. | | Tables | Setting × behavior, mode × behavior, shortcut × action. | Prose that isn't really tabular. | | `` `inline code` `` | Shortcuts (with glyphs), parameter names, values, file/menu paths. | Emphasis (use bold). | `` and `` are sanctioned but not yet used across the docs — introduce them where they fit; don't retrofit mechanically. *** ## 5. Conventions * **Shortcuts:** real glyphs in inline code, no `+`: `` `⌘U` ``, `` `⌥A` ``, `` `⇧⌘D` ``. Modifier order: ⌃ ⌥ ⇧ ⌘. * **Command Palette paths:** `Command Palette → **Set Record Quantize**` — bold the command name. * **Feature names:** exact canonical casing from the [BRAND.md glossary](../BRAND.md). Never lowercase or hyphenate a variant. Platform names keep their casing: MIDI, iOS, iCloud, macOS, MCP. * **Cross-links:** relative, by canonical name — `[Groove & Swing](/features/groove)`. * **Numbers & units:** numerals for measured values, space before the unit — `48 kHz`, `256 frames`, `5 ms`. * **Defaults:** always state the current default, and mark it — `**None** (default)`. *** ## 6. Accuracy contract This is what makes a doc *correct*, not just well-formed. Every one of these is a **checkable claim** and must match the current code: * Keyboard shortcuts and modifier combos. * Default values and the set of available options / modes / enum cases. * Parameter, control, and setting names (as shown in the UI). * Command Palette command names and menu paths. * File locations, formats, and limits stated as fact. * Stated behavior that the code actually implements. When a claim can't be verified from code (subjective/behavioral prose), it is **flagged for human review**, not silently rewritten. *** ## 7. Definition of done A page passes audit when all of these hold: * [ ] Frontmatter has `title` + `description`; `description` is one sentence, sentence case, US English. * [ ] Opens with a one-sentence definition; key term bolded once. * [ ] Headings are sentence case and task-oriented. * [ ] Procedures use ``; callouts follow §4; no stacked/decorative callouts. * [ ] Shortcuts use glyphs in inline code; feature names match the glossary; US English throughout. * [ ] Every checkable claim (§6) matches current code, or is flagged for review. * [ ] Length fits the content — a feature page is typically \~40–100 lines. No padding. * [ ] Cross-links resolve and use canonical names. # Product Updates Source: https://docs.gridshift.studio/changelog Release notes and updates. ## Improvements * **Monitoring answers to one letter.** ⌥M switches monitor profiles — speakers to headphones and back — ⌥⇧M opens the active profile's plugin window, and the app calls it Monitor everywhere instead of three different names. * **The timeline goes out of focus where it meets a panel** rather than only dimming, on all three edges at once and with the same controls behind each. * **Creating a track asks what should play it again** — ⇧⌘T offers instruments and samples to choose from before the track appears. * **The waveform cache stops growing.** It holds itself to a budget, stores half as much per value with nothing visible lost, and clears out an older format it could no longer read — together reclaiming most of the 2.9 GB one working machine had accumulated. * **The settings sidebar's icons walk one colour sequence** from top to bottom instead of picking an unrelated palette slot per section. * **The inspector tabs have their own icons** — the row of faders moved to Tracks, where a list of them is what you get, and Effects wears a dial. * **Group tracks can move an effect to a Return**, like every other kind of track. ## Fixes * **A monitor profile no longer boosts your monitors when its plugin is missing.** Its make-up gain, up to +12 dB, was applied before the plugin loaded and stayed applied when the load failed; it is now held at 0 dB until the plugin is really there, and the Monitor section says so instead of spinning forever. * **⌥⇧M opens the monitoring plugin's window** for plugins that hand out their interface only once, and a shortcut for a command that cannot run now explains why instead of doing nothing at all. * **Changing the tempo during loop playback resizes the loop with it.** The wrap point used to stay where the old tempo left it until you stopped and started again, and dragging the project BPM now moves a running loop as you drag rather than on release. * **A restored plugin preset shows the values it restored.** Opening a project, duplicating a track or undoing an effect removal left the inspector, automation and the plugin's own window displaying factory defaults while the plugin played the preset. * **Leaving compact mode after reordering tracks keeps their heights** instead of handing each row the height of whatever track used to sit in its place. * **The project title stops swallowing clicks meant for the titlebar** — the flyout opens again, and buttons underneath a long title respond. * **The floating transport bar is real glass**, bending and catching light like the palette button rather than sitting flat. * **Dragging a clip no longer writes past the buffers behind it** when the view rebuilds mid-drag, and the ease onto a snap target stops mistaking a snap for cursor movement. * **Effect cards round their mini plugin view** like the inspector does, and the inspector's Monitor heading wears the same style as every other section. * **The palette's monitor and warp hints point at Settings panes that exist.** ## Features * **Step through slices from the keyboard** in the sample editor — the view frames each slice as you go, a held modifier extends the selection across a range, and the selection loops without clicks at the seams. * **Audition, then commit.** Hold a note, chord or slice to hear it and press Enter to write it into the timeline. No record mode needed. * **Every built-in control is automatable.** Ducking amount and clip ceiling joined the list, and send levels now follow their automation in bounces as well as playback. * **Monitor profiles are edited in the inspector.** The Monitor section stays open and its fields are editable in place — the Edit Details dialog is gone. * **Align clips to the downbeat** from the sample editor's tempo tab, and manual BPM and downbeat corrections now stay with the sample. * **Faster clip selection.** Shift-click spans a selection from the cursor, and ⌘A selects the clips on the track under the pointer. ## Improvements * **A rebuilt window.** One continuous blur surface behind the whole app, lanes that carry on under the sidebar, and two curated themes in place of the old appearance settings. * **Focus mode keeps the surrounding tracks visible** as compact rows, and the clip header is now a thin ledge: drag above it, edit below. * **Clip and note edges stay smooth at every zoom** — corners are cut from the shape rather than stair-stepped, and note shadows scale with the note. * **The sample editor zooms like the timeline**, all the way down to individual samples. * **Grid labels, marker chips, loop pennants and the play-start chip are drawn together with the waveform**, so they stay crisp and sit exactly on their line. * **Horizontal clip drags ease onto their snap target** instead of jumping to it. * **Position lines cast a shadow instead of glowing**, the level meter follows the theme, and linked clips highlight when you select one of them. * **Waveform memory scales with what's on screen** rather than with the length of the project. * **The palette button says what it opens**, and the project header matches the system titlebar's typography. ## Fixes * **Switching monitor profiles no longer changes your Mac's system volume**, which used to move the playback level of every other app sharing that output. * **Switching output to a disconnected device no longer sends audio somewhere unexpected** with the missing device's gain applied. Devices that aren't plugged in now appear greyed out. * **Undo covers the edits it used to miss** — cutting and pasting clips, creating them, replacing or importing a sample onto a track, automation points, sample-editor markers, punch-in recording, plugin and instrument changes, and focus-bar gain. * **Projects save everything they promise.** Every save path now carries its embedded samples, reports a failed write instead of swallowing it, restores collapsed groups and compact mode, and warns rather than overwriting when a project was made by a newer version. * **Opening a project with unsaved changes asks first** instead of discarding them. * **Slice playback no longer clicks** — live triggers, auditions, recorded voices, clip edges and looped buffers all fade in and out, and starting or stopping the transport fades too. * **A slice triggered in the sample editor sounds like the same slice on the timeline** in Punchy mode. * **Stem separation reports real progress** instead of parking at 5%, and a bounce re-bakes a missing stem cache instead of exporting the wrong mix. * **The waveform draws the gain the clip actually plays**, and separating stems no longer makes waveforms flicker. * **Right-clicking an empty part of the inspector opens its menu again** on macOS 27, and pop-up menu values stopped picking up the accent colour. * **The timeline grid starts up aligned with the track rows**, and the window opens centred beside the Stage Manager strip. * **The playhead and grid ticks stop cleanly at the sidebar edge** instead of bleeding past it. * **Corrupted group nesting can no longer hang the app**, and removing a plugin during playback no longer risks a crash. ## Improvements * **Warping is now goal-based.** Choose Punchy or Smooth instead of picking an algorithm, and quantise in any mode. * **Clips can be pitched without stretching.** Set a target key, semitones and fine detune in every warp mode. * **Playheads stay smooth under heavy load** in the timeline, sample editor and sampler. * **The ⌘K palette scrolls smoothly with long lists.** * **Timeline grid lines now shade by zoom level**, so bars, beats and finer divisions stay readable at any zoom. * **Clips are easier to handle.** The whole clip drags, resize grips sit inside the edges, and ⌘ places the cursor. * **Various design refinements** throughout the app. ## Fixes * **The timeline grid no longer starts up misaligned with the track rows**, where it could sit a few pixels off until the first click. * **Fixed a rare crash risk when the audio engine reshaped itself during playback**, such as when adding or removing tracks and plugins. * **Notes played on the computer keyboard no longer get stuck ringing** when an editor or panel closed while the key was still held. ## Fixes * **Quitting Gridshift no longer crashes.** It happened after the session had ended, so nothing was ever lost — it surfaced as a "quit unexpectedly" notice on the next launch, for a quit that looked perfectly normal. * **Arming or monitoring an input no longer crashes the app.** * **The first ⌘K after launch now opens a filled, focused palette**, instead of an empty list that swallowed the first keystroke. * **The monitor-profile list no longer fills up with duplicate "System Default" entries.** ## Improvements * **The app's look keeps being refined.** The playhead, cursor and marquee now carry their own themeable colour, and the accent is a fixed Gridshift colour rather than the macOS system one. * **The Settings window is now a searchable sidebar.** ## Fixes * **Looped samples in the built-in sampler no longer click at the loop point**, and no longer swell in the middle of the crossfade. * **The ducking curve editor now draws the duck you actually hear.** On a track with a latency plugin such as a lookahead limiter, the curve lagged behind the real thing and made a perfectly good duck look broken. * **Clips now sit centred in their track row** instead of a hair too high. ## Improvements * **A sample track can now be turned into an instrument track that plays the same sample across the keyboard — and back again.** It's in the command palette, and on the right-click menu of the sample or sampler card in the inspector. The track keeps its sends, ducking and group. * **The sampler's loop can now play forwards, in reverse, or alternate between the two.** * **Sampler loops sound cleaner on noisy, atmospheric and slightly out-of-tune material**, which used to smear or pump where the loop joins. * **Timeline waveforms are much easier to see**, where they used to draw as a thin thread down the middle of the track. Only the display is boosted — the audio is untouched. * **The app's look has been retuned throughout**, continuing the refinement started in the last release and now covering the corners it hadn't reached yet. There's more tuning still to come. ## Features * **Drop a sample onto an instrument track's empty instrument slot to play it chromatically.** The new built-in sampler shows the sample as a waveform card, and ⌥X opens an editor with root note, attack, decay, sustain, release, polyphonic or mono voicing with glide, and gain. Dropping another file on the card swaps just the sample and keeps the envelope and voicing settings. * **Dragging a clip now snaps its downbeat to the grid, not only its edges.** When a sample's downbeat sits inside the clip — because you gave the source an original BPM and a downbeat offset — the beat itself locks to the bar line instead of the clip's start. ## Fixes * **Stem separation now handles m4a and AAC files, and material that isn't 44.1 kHz.** Anything but an mp3 or a 44.1 kHz wav — including the very common 48 kHz export — used to stop with a generic "processing failed". * **A send left at zero keeps its automation lane and its MIDI binding.** Riding a send fader down to zero used to remove the send outright and take both with it, which also made the most ordinary send automation there is — sits at zero, opens in the chorus — impossible to write. * **Automation recording now captures moves made with a bound MIDI controller, a controller-profile encoder or a send fader**, exactly as it already captured a mouse drag on the same control. * **Deleting a plugin and undoing now brings back the settings it had at the moment you deleted it**, rather than an older snapshot. * **An unrelated undo no longer reverts live parameter changes on a track's MIDI effects.** * **Saving no longer loses a plugin's settings when the plugin momentarily fails to hand them over** — an empty reading could overwrite the good state already stored in the project. * **A project containing out-of-range MIDI notes now loads instead of crashing.** * **The coloured waveform bands no longer paint energy that isn't in the audio.** After a sound stopped, or across a hard mute, the bands kept drawing a fading tail — misleading when you were aligning transients or checking a bounce of muted material. * **Ducking triggers no longer drop or slip out of time when you edit the triggering clips during playback**, where rescheduling mid-playback could leave a trigger pointing at the previous arrangement. ## Improvements * **The cursor and the playhead now read clearly over clips tinted in the accent colour**, where before they blended into the clip body and all but disappeared. This is the first step of a wider refinement of the app's look and feel that is still under way. * **The beat grid now follows the Original BPM field while you scrub it.** In the sample editor's Tempo tab the grid only jumped once you released the mouse, so there was no way to line it up against the waveform while hunting for the tempo. * **The timeline stays smoother during cursor, marquee, zoom and selection drags in large projects**, which used to redo the same layout work on every frame even when nothing had changed. ## Fixes * **A ducking triggered on the very first beat now dips on that hit instead of opening at full level** — at the start of playback or a bounce, the opening trigger used to slip through unducked. * **Built-in ducking now stays in time when the ducked track carries a latency plugin such as a lookahead limiter**, instead of dipping slightly ahead of the beat. ## Improvements * **Built-in ducking is now far lighter on memory and re-bakes its curves faster when you change tempo**, with no change to the sound. * **You can now add a track's first ducking or a return track by right-clicking the empty space in its inspector**, where before the section menus only appeared once one already existed. * **The inspector's Sends group now sits directly after Ducking**, keeping the per-track routing controls together. ## Features * **Duck any track from another track's events with the new built-in Ducking (⌥D).** Each ducking is named, lives on the track that triggers it, and appears as an amount row on every other track — so a single kick can pump the bass, the pads and a reverb return by a different amount each. * **Draw the ducking shape by hand, over the material it acts on.** The shape editor puts the trigger track's and the target track's waveforms behind the curve, folded so every hit lands in the same place, and Space starts playback without leaving the editor. * **Audition ducking curves from a preset library.** Kick, Snare, Pump and Transient ship built in, curves you save join them, and the ◀ ▶ buttons step through the library against the playing material as a single undo step. * **Flatten Track (⌥F) replaces a track with its rendered audio and keeps the mixer live.** The instrument, MIDI effects, insert effects and their automation are printed to a sample track, while the fader, pan, clipper, limiter, sends and ducking carry on working as before. * **Map a MIDI controller with the new profile wizard.** A guided flow learns your device's knobs, buttons and encoders, tells endless encoders from fixed-range knobs, and binds mixer, transport and browsing actions to the hardware. ## Fixes * **Double-clicking empty timeline space to insert a clip no longer scrolls the view away from where you clicked** — a clip longer than the visible area used to yank the timeline off to one side. * **A sidechain that triggers at the very start of a bounce now renders from its beginning**, instead of exporting part-way into its response. * **Presets kept in iCloud that macOS had offloaded from your Mac now download when you pick them**, rather than appearing in the list and then failing to load. ## Improvements * **Connecting a parameter to an automation track is now a single command on ⌥A.** The picker leads with a new lane — ⌥A then Return keeps the old one-keystroke create — and lists the existing lanes underneath to link to instead. * **Controller profiles, monitor profiles and presets now sync across your Macs through iCloud**, and a profile saved on one machine appears on the others while both are open. ## Fixes * **Unplugging your monitoring output device now hands off cleanly to a fallback and restores the device when you reconnect it**, and a monitor profile's hardware volume stays with its own device instead of carrying across to whatever output takes over. * **Dragging a note past the start of its clip now trims overlapping notes at the right position instead of leaving a gap**, and a note you drag fully over another shows as removed during the drag rather than as a thin sliver. * **Inserting a sample or instrument from the browser now lands on the track you've selected** instead of piling onto whichever track happened to be last. ## Improvements * **The inspector sidebars are now keyboard-first**: Cmd-2/3/4 move focus into the track, plugin and browser lists, arrow keys navigate them, and Return inserts the highlighted item, including files inside pinned favorites. * **The position cursor and stopped playhead now match the rounded form of the grid lines and ruler ticks**, so every cursor mark across the timeline, piano roll and automation lanes reads as one family. * **Bipolar sliders such as Balance, Pan and Mid/Side gain now fill from their centre point**, so a control sitting at neutral reads as centred instead of half-filled. * **Note velocity in the piano roll now reads as a fade toward the backdrop** rather than a narrow brightness change, giving a wider, clearer range and correct faint-for-quiet behavior in light mode. ## Fixes * **Closed a rare rendering race that could crash Gridshift during playback or while scrolling the timeline.** Each Metal-drawn view now manages its own frame presentation. * **Editing a MIDI clip during playback no longer leaves a note stuck on.** * **Keyboard navigation now reaches a note stacked at the exact same position as another**, instead of skipping past it. ## Improvements * **Arrow-key shortcuts behave more predictably in the piano roll's focus mode.** Modifier combinations that were being swallowed or routed to the wrong panel now reach the focused editor. ## Features * **Export to MP3, with new bit-depth and normalize options.** The Bounce dialog has been redesigned and can now render MP3 alongside WAV, let you choose the output bit depth, and normalize the finished file to a consistent level. ## Fixes * **Dragging a warp handle now stretches a clip by exactly the amount you drag**, instead of applying the stretch twice. * **Duplicating a time-stretched clip now previews the same region that appears when you drop it.** * **Theme and appearance changes now always save in the order you make them**, so a quick series of tweaks no longer reverts to an earlier value. ## Improvements * **Editing transient markers during playback no longer interrupts the transport**, refreshing only the tracks that use the affected sample instead of reloading the whole project. * **The plugin strip and track sidebar stay responsive during slider drags and edits**, refreshing only what changed instead of rebuilding on every change. * **Dragging a sliced clip to a new track now previews each slice in its correct place**, matching how it renders once dropped. ## Fixes * **Gridshift no longer crashes when the timeline is resized or closed during playback.** A rendering race on the timeline and signal-history views that could bring the app down is now closed. * **Changing a clip's stretch rate now keeps the region you trimmed** instead of quietly expanding the clip back to the full sample. * **Overlapping notes of the same pitch no longer stick or drop.** Playing or recording two of the same note at once now sounds each one and releases it cleanly. * **Recording a slice from a stretched sample now plays back audibly** instead of coming out silent. * **Effect-chain plugins that follow the host tempo or transport now stay in sync during export**, instead of drifting or producing the wrong output. * **Playback and export now stay at the correct speed** when your audio device reports a sample rate it didn't actually switch to. * **Exporting to a sample rate different from the project's no longer changes pitch or speed.** Bounces render at the project rate and convert to your chosen export rate afterwards. * **Cmd+Arrow now moves the piano-roll selection reliably in the direction you press.** * **Dragging a clip by its upper edge no longer makes it jump to the wrong track**, and the drop target stays put while the timeline scrolls. * **The drag preview now shows each clip's full, correct waveform** while you move clips over others or near a track seam. * **The Fade and Length overlay now lines up with the audible position on warped slices.** * **Dropping a sample that's already in your library no longer imports a duplicate**, and recently added samples now show up in the right order. ## Improvements * **Editing, dragging, and zooming stay smooth on large projects, even during playback.** Timeline redraws, marquee drags, and edits refresh only what they affect, and loading or saving no longer briefly freezes the interface. * **Gridshift reclaims memory promptly when you delete tracks or sources**, and in-process plugin editors are now capped so they use less of it. * **Bouncing a selected region now renders exactly that region** instead of the full clips it overlaps. ## Fixes * **Gridshift no longer crashes during playback from rare audio-engine timing races.** Several races around rescheduling clips, retiring plugin nodes, and metering could bring the app down mid-playback; these are now closed. * **Gridshift no longer crashes when a plugin's editor fails to open.** A plugin that throws while building its window is now handled gracefully instead of taking the app down with it. * **A track no longer goes silent after you preview a slice's fade or length.** Setting a non-default slice fade or length and carrying on with playback no longer mutes the whole track. * **Self-sequencing instruments now stay locked to the project's tempo and transport.** Plugins that drive their own timing follow play, stop, and tempo reliably again, including straight after a project loads. * **Projects with a corrupted or zero saved tempo now open safely** instead of loading with a broken timeline. * **Exporting a section that doesn't start at the beginning now triggers sidechain compression at the right moments**, matching what you hear during live playback. ## Improvements * **Group tracks can now feed Return tracks through sends, before or after the group fader.** A group's output can be routed to a Return either pre- or post-fader, so a shared reverb or delay applies to the whole group at once. * **Editing large projects stays smooth, even during playback.** Changing a clip now refreshes only the waveforms and tracks it affects instead of rebuilding everything, and adding tracks and mixing are faster. ## Fixes * **Gridshift no longer crashes when removing or replacing an instrument plugin while it is still processing MIDI.** * **Crash reports are now captured more reliably.** Two long-standing bugs in the crash-handling code that could hang the reporter or produce an incomplete report are fixed, so real crashes get diagnosed faster. * **Exporting a track with a self-sequencing instrument no longer goes silent partway through.** Instruments that drive their own timing with no clips on the track now export in full instead of cutting out after a few seconds. * **Switching tracks in the Inspector animates smoothly again**, instead of its sections jumping abruptly into place. ## Improvements * **Exporting a selection now trims trailing silence automatically** instead of always adding a fixed three-second tail; reverb and delay tails that ring out are still preserved in full. ## Fixes * **Exporting a track whose plugin drives its own timing no longer slows down partway through.** Bounces of self-sequencing instruments now keep steady timing instead of dragging after the first bar. * **Seamless loops now respect silence trimmed from the end of a sample**, so loops repeat cleanly at the point you set instead of including audio you trimmed away. * **The sample-accurate waveform curve is now drawn smoothly at deep zoom.** Its edges no longer look jagged, its thickness no longer changes with the clip's gain, and it now reflects the clip's fades. ## Improvements * **Dragging a clip past the last track of a group** now creates a new track for it, with a refined drag preview. * **The Sample Editor footer is slimmer and less cluttered.** The Tempo tab now focuses on the original BPM, and slice fades have moved into an inspector flyout. * **Splitting clips is lighter on the renderer**, with slice fades on each piece computed only where they appear. ## Fixes * **Gridshift no longer crashes while the timeline ruler redraws or when the metronome is switched off.** * **Snapping to transients is accurate on stretched and sliced clips.** Snap points now line up with what you see and hear on a stretched clip, and land exactly on the grid under Slice quantize. ## Improvements * **Large projects stay responsive.** Splitting clips, changing a clip's sample, and loudness metering no longer slow down as your track and clip counts grow. * **Sample edits no longer cross between clips.** Adjusting warp, pitch, or slicing on one clip now leaves its duplicated, moved, and pasted copies untouched. * **Window transparency can now be dialled in.** A new opacity range for the window material comes with a cleaner, more legible sidebar and inspector. * **The Sample Editor is tidier.** It opens at a more usable height, shows per-operation chips, and offers slice fades directly in the Slices tab. ## Fixes * **Cutting and dragging a selection on the timeline now behaves correctly.** A marquee selection you cut and move keeps its waveform shape, no longer vanishes mid-drag, draws solidly over the tracks beneath it, and overwrites whatever it is dropped onto. * **Splitting or trimming a time-stretched clip stays in sync.** Edits to a warped clip now read from the right point in the source audio, so what you hear after a split or trim matches the original. ## Improvements * **A bounced track now behaves like any other audio track.** After bouncing, the clip's slices, groove, and inspector source actions all work straight away, just as they do on imported audio. * **Microphone and folder prompts only appear when needed.** Gridshift no longer asks for microphone or folder access as passive parts of the interface load — these prompts now appear only when you use a feature that actually needs them. ## Fixes * **Slice fades stay correct in a seamless loop.** They now follow the groove Shift and line up properly on clips that are trimmed, offset, or built from different samples. * **A split clip no longer goes silent when looping.** The second half of a clip you split now plays back in a seamless loop instead of dropping out. * **Zooming deep into a waveform no longer crashes**, and the Fade and Length overlay now draws precisely on the zoomed-in curve. * **Bounced, stem-exported, and synthesised clips get slice markers** like imported audio, so their slices and fades work straight away instead of starting blank. * **Auditioning a sample in the palette no longer replays** after you have picked it. ## Improvements * **Hand-placed slice markers are saved and restored.** Transient markers you add or adjust by hand now persist when you reopen a sample, and stay tied to that audio wherever it appears. * **Cancel model downloads in progress.** Large model downloads can now be stopped partway through instead of running to completion. * **Finer control over very short fades.** The slice Fade In and Fade Out sliders now ease in at the short end, so brief fades are easier to dial in precisely. * **Refinements for macOS 27.** On macOS 27 you can generate album covers for your project from a text prompt with Image Playground, and the progress dialogs have been refreshed to match the new system look. ## Features * **Shape every slice with Fade and Length controls.** Each slice of an audio clip now has its own Fade In, Fade Out, and Length, replacing the previous decay slider. The fades and trimmed length appear as an overlay on both the timeline waveform and the Sample Editor, including on stretched clips, so you can hear and see exactly where each slice starts and ends. * **Right-click a slider to reset it** to its default value in the inspector and mixer. ## Fixes * **Exports of instruments that host their own sounds, such as NI Maschine, no longer go silent.** * **Exports match live playback in more cases** — instruments behind an arpeggiator or chord effect now render instead of going silent, selections that don't start at the beginning export with sound, and exporting a clip in Complex stretch mode produces the same result every time. * **Audio plays at the correct speed and pitch** on audio devices that misreport their sample rate — samples no longer play back slowed down and an octave too low. * **Certain plugins no longer crash** when shown in the channel strip or inspector, such as Analog Obsession's TRAX. * **The timeline stays aligned when you resize the window** — lanes, the playhead, and scrolling no longer drift out of step with the track sidebar. * **Slider knobs in the groove flyout** draw correctly. ## Improvements * **Groove copied from a sample stays live.** Lifting the groove from an audio clip now keeps the sample as a live reference — re-slice or re-time the source and the groove follows, instead of freezing a one-off snapshot. * **Scrub or type any tempo.** The Project, Original, and Target tempo fields can now be set by dragging up and down or by typing a value, with ÷2 and ×2 buttons for quick halving and doubling. * **Dragged and imported samples appear in the palette's Recent list**, so you can reach for them again without re-importing. * **Slices always play as one-shots.** The Trigger Hold slice mode has been removed for more predictable behavior. ## Features * **Warp section for audio clips.** The clip inspector's time-stretch controls have been rebuilt into a Warp section with two options — **Stretch** and **Quantize** — that work on their own or together. Stretch fits a clip to the project tempo; Quantize cuts the clip at its slice markers and snaps each slice to a sixteenth-note grid, tightening a loose drum loop without time-stretching it. Quantize follows your edits live: change the grid, the groove, or a clip's slice markers and the alignment updates straight away — and whole-clip and in-clip quantizing now behave the same. * **Operate scaled plugin windows directly.** Hold Command to click, drag, and adjust a plugin's controls inside a small or scaled plugin card, in both the channel strip and the inspector — now on by default. ## Fixes * **Opening certain saved projects** no longer crashes. * **Switching audio input devices** while monitoring or recording no longer crashes. * **Using MIDI effects on an instrument track** no longer crashes. * **Duplicating a selection** lands on the correct tracks even when a group above it is collapsed. * **Plugins with Metal or Vulkan interfaces** draw correctly — no corner flash on first show, and plugins such as Smasher now render in their windows. * **Exports match live playback more closely** — stretched clips, instruments, effect settings, and sidechain routing all render the same in an export as they sound live. ## Improvements * **Lower CPU during playback and when idle.** Editing and timeline drawing skip unnecessary work while playing, and audio and metering quieten down when playback is stopped and silent. * **Sharper performance and crash diagnostics.** New internal probes attribute processing and graphics cost per component, so future performance and crash reports point to the cause more precisely. ## Features * **Control Gridshift with Shortcuts and Siri.** Transport and track actions — play, stop, set the tempo, add a track, and mute, solo, set the volume of, or rename a track by name — are now exposed to Apple's automation. On macOS 26 they run from the Shortcuts app, Spotlight, the Action button, and a set of fixed Siri phrases. On macOS 27 the new conversational Siri can invoke them directly from natural language, such as "mute the drums", without a fixed phrase. ## Fixes * **Saving a project that references a missing sample** keeps the rest of the project and reports which samples were skipped. * **Save As** carries the project's embedded samples and saved versions into the new file. * **Importing MIDI** handles corrupt or out-of-range files safely. * **Split Clips at Transients (⇧⌘E)** is a single undoable step. * **Duplicating a selection of linked clips** keeps every copy linked. * **Effects added from a preset, and favorited plugins used in exports and monitoring,** resolve to the correct plugin. * **Plugin editors with unusual native sizes** open and resize correctly. * **Hovering near a scaled plugin card** targets the correct area. * **Clip and slice boundaries** play back cleanly where they meet the grid. ## Improvements * **Switch an effect's preset with live audition.** A new command steps through an effect's presets and plays each one as you go, with a quick-switch button on the effect card. * **Redesigned Add Effect browser.** Add Effect lists plugins and saved presets as peers, groups plugins by category, and keeps favorites in sync with the sidebar. * **More robust time-stretching.** Slice auditioning, live stretch-mode and rate changes, sample swaps, and extreme rate or BPM values are handled more consistently, including between playback and export. * **Sharper waveforms while stretching.** Waveforms reflect time-stretching at every zoom level, including long samples and deep zooms. * **Consistent time-stretch controls.** The time-stretch sliders in the inspector match the look and feel of the rest of the inspector. * **Clearer effect-card buttons.** An effect card's toggle buttons fill with color like the Mute and Solo buttons. * **Performance, diagnostics, and crash reporting.** Editing and track duplication are faster in large projects, the internal performance and time-stretch diagnostics were expanded, and crash reporting was reworked so future crash reports point to the cause more precisely. ## Features * **Move Effect to Return Track.** A new command takes the selected effect off a track, puts it on a brand-new return track, and adds a send to it — so you can route other tracks through the same effect. * **Nudge a track's timing.** A new per-track Shift slider pushes a track's notes a few milliseconds earlier or later for a tighter or more relaxed feel. * **macOS 27 support.** A new Liquid Glass app icon, improved tempo detection with added musical-key detection, and interface polish. ## Fixes * **Overdub no longer deletes a neighbouring clip.** Recording over part of the timeline keeps the clips around it intact. * **Bypassing an effect now applies instantly.** Toggling a plugin's bypass during playback takes effect right away instead of lagging. * **Automation stays mapped when you change your plugin chain.** Adding, removing, or reordering a plugin no longer leaves its automation pointing at the wrong plugin. * **Dragging into the track list no longer cancels the drag.** Moving a clip or note keeps going when the cursor crosses into the track sidebar. * **Clicking the ruler during playback jumps there.** Clicking the timeline ruler while playing now re-anchors audio to that spot. * **Slice triggers no longer stop the loop.** Triggering a slice during a loop mixes over the loop instead of halting playback. * **Waveforms keep up with the groove sliders.** Dragging the groove or swing slider no longer makes a clip's waveform lag behind the clip. * **Transient markers come back after a failed analysis.** The Sample Editor no longer stays empty if transient detection fails once. ## Improvements * **Recording overhaul.** Recorded MIDI notes now appear immediately as you play instead of after you stop, loop overdubs are audible right away on the next pass, and you can record automation moves live with punch-in and smooth glide. * **Faster plugin loading and track switching.** Plugins now open faster and switch between tracks instantly, with less overhead. * **Lower latency out of the box.** A smaller default audio buffer makes playback and monitoring feel more responsive. * **Sharper, more accurate waveforms.** Waveform drawing is cleaner across the frequency bands, long samples render at full detail, and deep zooms stay crisp. * **Smarter clip snapping.** Clips can snap by their end as well as their start, and end-snapped clips line up with the groove grid. * **Richer Sample inspector.** The Sample section always shows clip metadata, adds a mix-style Decay slider, and falls back to the project tempo when a sample has no BPM. * **Clearer sidechain source picker.** The sidechain source menu now shows each track's color and matches the native menu style. ## Features * **Link Identical Clips.** Press ⇧⌘I to link copies of a clip so they share one set of contents. The clip picker also gains a button for it. * **Monitor Output on the Master track.** The Master track's inspector now has a Monitor Output section — the same output settings as in Settings, right where you mix, for convenience. * **Double-click to create a clip.** Double-clicking empty timeline space now creates a clip there, just like pressing Enter. * **Trim a sample clip to a selection.** Select a range inside a sample clip and press Enter to trim the clip to exactly that range. ## Fixes * **Exports with MIDI effects now match playback.** Bouncing a project that uses MIDI effect plugins could drop notes, ignore automation, or render notes slightly out of time — exports are now sample-accurate and sound like playback. * **Groove no longer piles notes on top of each other.** When a groove setting pushes a note into the next note of the same pitch, the earlier note is now shortened — what you see matches what you hear. * **Duplicating several clips keeps them together.** Duplicating a multi-clip selection now places the copies as a single block right after the selection instead of scattering them clip by clip. * **Automation clips open at the right height in focus mode.** Focusing an automation clip no longer opens it at piano-roll height. * **Removing a plugin closes its window.** Unloading a plugin now also closes its popped-out editor window instead of leaving it behind. * **Reliable editing around collapsed groups.** Creating, selecting, moving, and dropping clips near collapsed group tracks no longer lands on the wrong track. ## Improvements * **Keyboard transient nudge in the Sample Editor.** Move the selected transient marker with ⌘ + arrow keys, or ⌥⌘ for fine steps — replacing the old period/comma keys. * **Mixer automation follows the fader feel.** Volume and mid/side automation now respond on the same curve as the faders, so automated rides sound the way manual moves feel. * **Tidier groove and swing sliders.** The groove and swing Amount sliders now match the rest of the inspector's sliders, with a thicker handle and a value bubble that fits its content. ## Features * **Keyboard control for track volume, the clipper, and clip modes.** The two keys to the right of "0" nudge the selected track's volume up and down (hold ⌥ for fine 0.1 dB steps); hold ⌃ with those same keys to set the clipper ceiling, and ⌃ with the number row to switch the track's clip mode. ## Fixes * **Fixed a crash when removing certain plugins during playback.** Taking an out-of-process plugin out of the chain while audio was running could crash; the plugin now shuts down only after the current audio block finishes. * **Floating plugin windows stay with Gridshift.** A popped-out plugin editor no longer floats over other apps or Stage Manager spaces when you switch away — it hides and reappears with the app. * **Enter inserts at the edit cursor, even mid-loop.** Pressing Enter now inserts at the edit cursor position and is heard right away, including partway through a loop. * **Zoom to selection centers correctly.** Zooming to a selection now centers it within the visible area of the timeline. * **Reliable editing at the timeline start.** Notes and clips no longer drift away from the very beginning of the timeline, and a note drag can now be released over the sidebar. * **Per-note groove matches what you hear.** Groove applied to individual notes now lines up between playback and the notes shown on screen, and audio waveforms no longer lag behind their clips while you drag the groove slider. * **Smoother note editing in the piano roll.** Notes keep redrawing while you move or resize them, the played-note highlight and cursor stay aligned as you scroll up and down, and switching clips clears a leftover selection box. ## Improvements * **Faster note entry in the piano roll.** A persistent click cursor shows where notes will land, marquee-select a range and press Enter to fill it with notes, and hold Fn to jump in larger steps. * **Console-style volume faders.** Volume faders now reach unity (0 dB) at three-quarters of their travel with finer resolution around 0 dB, matching the feel of other DAWs. Your levels and automation are unchanged — only the handle's feel. * **Backspace cuts a grid-sized gap.** Backspace now removes one grid division wherever you are — timeline or piano roll — carving a clean hole without shifting anything else, matching how sample clips already behaved. * **Clearer popped-out instrument slot.** When an instrument is open in its own window, the inspector shows a tidy "Editing in Window" card explaining how to dock it back, instead of a faint label. * **Keyboard shortcut labels match your layout.** Shortcut hints now show the correct keycap for your keyboard (for example ^ / ' on Swiss German) instead of always showing the US keys. ## Features * **More control from the MCP server.** The MCP server now exposes returns and sends, automation, and LFO modulation, on top of what it could already control. ## Fixes * **Plugin knobs follow automation when stopped.** Moving the playhead while playback is stopped now updates automated plugin parameters to match the cursor position, including plugins that run outside the app. * **In-scale highlighting updates instantly.** Changing the key or scale in the piano roll now refreshes which notes are marked as in-scale right away, instead of waiting for the next edit. ## Improvements * **Tidier track color picking.** The track color picker now lives in the right-click menu with one consistent design, so it no longer takes up space in the interface. * **Piano roll starts in select mode.** The piano roll now defaults to the select and marquee tool — hold Cmd to stamp notes, and double-click an empty spot to insert one. * **Refreshed piano-roll grid.** Vertical grid lines in the piano roll are now drawn as soft, rounded per-row pills. ## Features * **Stack automation lanes on one parameter.** Several lanes can now drive the same parameter at once — one sets its value and the others add or subtract on top, each with its own range and an absolute or relative mode. * **Generate automation with an LFO.** Automation clips gain a generate mode that draws a live, non-destructive curve — morph between triangle, sine, and square, set skew, phase, and a synced or free rate, then convert it to editable points whenever you like. * **Manage automation from the track it controls.** Any track driven by automation now shows an Automation group in its inspector, with a row per lane to jump to its source, adjust its range or mode, or unlink it. ## Fixes * **Duplicating or placing a clip over another now overwrites it** instead of being cut short at the next clip's start. A short clip dropped inside a longer one splits it and keeps the tail. * **Fixed a crash when first loading certain instruments,** including Serum 2. * **MIDI effect plugins play live again.** Generative MIDI plugins such as Captain Chords Epic and Seqund trigger their instrument during playback, not only when bouncing. ## Improvements * **Stamp the same sample as linked clips.** Placing a sample repeatedly now creates linked copies, so editing the gain, offset, or fades on one updates them all — no need to unlink first. * **Consistent inspector sliders.** Pan, mid/side, mono, sends, and automation ranges share one slider style with a value bubble on drag, double-click to type an exact value, and option-click to reset — and the Send slider no longer wraps onto two lines. * **Timeline ruler adapts to zoom.** Tick marks and labels subdivide as you zoom in and thin out as you zoom out, instead of staying locked to whole bars. * **Smoother automation fills.** The shaded area under an automation curve no longer brightens at sharp dips or shows a seam where segments meet. ## Features * **Copy and paste effects between tracks.** Copy, cut, and paste a track's effects from one track to another, with full undo support. * **Quick project settings.** A new flyout puts common project settings one click away, and the transport bar now has a metronome toggle. ## Fixes * **Mute and Solo on group headers.** Mute or solo an entire group straight from its track header. * **Audio-to-MIDI works on your selection.** Converting audio to MIDI now uses the selected clip, lands the result just below the source track, and matches the clip's position and tempo. * **Loop the focused clip with Cmd-L.** In focus mode, Cmd-L and the transport loop toggle now loop the clip you're focused on. * **New clips match their group color** while you drag to create them. * **Number-key triggers respect one-shot vs hold** when you release the key. * **Fixed a crash in the sample picker** when a search turned up duplicate file paths. ## Improvements * **Cancelable rendering.** Every render and bounce now shows one consistent progress dialog you can cancel. * **Zoom stays under the pointer.** Option + scroll-wheel zoom now anchors at the mouse pointer instead of the center. ## Features * **Linked Clips.** Duplicate a clip to make a linked copy — edit any one and they all change together. Distinct contents get a subtle shade so linked groups are easy to tell apart, and a focus-mode picker lets you swap which content a clip plays. Use ⌘D to duplicate linked, ⇧⌘D to duplicate unlinked, and ⌘I to unlink a clip from its group. * **Track list stays visible.** Inspector tabs now live in a customizable toolbar, so opening the inspector no longer hides the track list. * **Automatable sends.** Draw a precise automation lane for any send's amount. * **Number-key dynamics.** Trigger and record ten velocity levels straight from the number keys — the MPC 16-Levels idea, on your keyboard. ## Fixes * **Focus mode is more reliable.** Entering and leaving focus mode no longer leaves clip height, zoom, or the waveform out of sync, and Esc now exits every time. * **Cleaner waveforms.** The three-band waveform no longer shows leftover energy during silent passages. * **Sidechains work on return-track plugins.** * **Delete and re-bounce right after editing now works.** * **Fixed rare crashes while the timeline redraws.** * **Fixed a crash when triggering dynamics from the number keys.** ## Improvements * **Easier to place the cursor near a clip's edge.** The lower part of a clip is now for placing the cursor instead of resizing — resize and fade both sit in the upper half, giving you more room. * **Focus-mode bar matches the clip color.** * **Command palette matches the sidebar's rounded corners.** * **Tidier inspector spacing and icons.** ## Features * **Return tracks with sends.** Route any track or group through one or more return buses, with per-send level, pre/post-fader switching, signal history, and metering. Adds an incoming-sends group in the Return track's inspector with click-to-navigate. * **Live recording waveform.** While recording from hardware input, the in-progress clip shows the waveform as it's captured instead of an empty rectangle. * **Metronome follows the selected track's groove.** Click subdivisions snap to the selected track's groove with 8th-note clicks; falls back to project groove when nothing is selected. * **Add Return Track shortcut.** ⌥⇧⌘T inserts a Return track. * **Combined inspector header.** Track name and Mute/Solo/Arm sit on a single row to reclaim vertical space. ## Fixes * **Plugins with MIDI output no longer crash on quit or device change.** Out-of-process plugins (Tahti, Vital, etc.) used to crash inside Apple's plugin host during teardown. * **No more crash when quitting during playback.** Instrument and graphics teardown were racing — both now wait for in-flight work. * **Looping no longer softens transients at the loop point.** Time-stretched clips now wrap on the exact sample boundary. * **Bouncing pitched/repitched clips works without dropouts.** Stretched-buffer cache is now warmed before the bounce starts. * **Pressing Enter to commit a clip clears the marquee selection.** * **Option+Down no longer navigates onto the output bus.** * **Crash reports include richer metadata for triage.** * **Inspector hover info bar has correct bottom spacing.** ## Improvements * **Faster Return-track selection.** Selecting a Return track is now instant on large projects. * **Native sidebar bus list.** The bus list renders as a native list with row parity, eliminating layout flicker. ## Features * **Sample-accurate automation.** Mixer volume and pan, plugin parameters, and the Mid/Side processor's Mid Gain, Side Gain, and Side Highpass apply at the sample the breakpoint specifies instead of the next render buffer. * **Add tracks from an empty sidebar.** Right-click below the last row to add a sample, instrument, or automation track. * **Updated timeline grid.** Grid lines sit behind clips with rounded caps and a small highlight where they cross a clip. Ruler ticks match. ## Fixes * **MIDI clip cross-track drag renders on the destination track.** * **Sliced clips dropped on a grid line follow the project groove.** * **Numpad Enter commits the Command Palette selection.** * **Per-track groove slider previews live during drag.** * **Inspector sections animate on track switch.** Editing a track name then switching tracks no longer redirects keystrokes to the next track. * **Crash reports no longer collapse unrelated crashes into one bucket.** ## Improvements * **Per-target Delete moved into the automation lane section's ellipsis menu.** "Add Target" renders as a flat footer row. ## Features * **One automation lane, multiple parameters.** A single curve can now drive several parameters at once — move a parameter, press `⌥⇧A`, pick an existing lane. * **Catchier automation shortcuts.** `⌥A` adds a lane for the last-touched parameter; `⌥⇧A` extends an existing one. * **Per-target editing in the Inspector.** Each parameter on a lane is its own row with Track / Plugin / Parameter dropdowns; "Add Target" extends, undo reverts. * **Status banner for engine messages.** Errors and hints that used to fail silently now appear as a transient banner. * **Drag clips across tracks.** Pull a clip onto another track — same conversion rules as the Inspector. ## Fixes * **Duplicating a track inherits its automation.** A duplicated track follows the original's curves until you unlink it. * **Group duplication keeps automation internal.** Duplicated lanes drive the duplicated tracks instead of leaking across groups. * **Deleting a track cleans up its automation references.** No more dangling targets on surviving lanes. * **Automation seeds from the parameter you're touching.** First point matches the knob you grabbed, not the lane's anchor — no audible jump. * **Sidechain-ducking automation works in selection bounces.** Automation on a sidechain source survives selection-bounce filtering. * **Sample preview respects the decay envelope.** Space-preview now fades out like playback does. * **Bounces include sidechain in more cases.** MIDI-only and selection bounces now honor sidechain routing. * **Bounces capture generative MIDI plugins.** Arpeggiators and chord triggers now sound in offline bounces. * **Bounces bake automation into the output.** Fades, sweeps and slides render as you hear them. * **Focus mode cleans up on exit.** No more stale visuals after leaving focus. * **Waveforms stay inside rounded clip edges.** * **Startup crash on macOS 26.x.** A class of dyld crashes hitting some macOS 26.x users at launch is fixed. ## Improvements * **Master / Bus / Group targets stay visible in the Inspector.** Suffixed in the Track dropdown instead of silently rebinding to a sample track. * **"Add Target" picks a free mixer slot.** No longer defaults to a parameter already on the lane. * **Inspector edits are live.** Target changes take effect on the next playback frame. * **Timeline grid lines are easier to see in light mode.** ## Features * **MIDI Panic.** A new command stops the transport and resets every MIDI channel — handy when a plugin leaves a stuck note hanging. * **Marquee in focus mode.** Drag a box over automation points in focus mode to select them as a group, then drag the group together or scale it from the corner handles. * **New clips fit your selection.** Inserting a new MIDI or automation clip while you have a range marquee active now sizes the clip to the marquee instead of the default length. * **Locator color follows your theme.** Drop a new locator and it picks up the current accent color automatically. ## Fixes * **Plugin tempo sync is more reliable.** Plugins that load out-of-process now consistently receive the project tempo at load and during playback — covering more cases than the prior fix shipped in 0.12.0. * **Sidechain works when bouncing a selection.** Bouncing just part of a track now applies sidechain routing the same way a full-track bounce does. * **Audio survives switching outputs.** Playback no longer drifts or stalls when you switch audio devices or use sample-rate-converted virtual interfaces. * **A class of plugin-related crashes is gone.** Rapid plugin swaps no longer trigger a use-after-free in the audio engine. * **Focus mode keeps your other clips visible.** Focusing on an automation lane or sample clip no longer bleaches the surrounding MIDI clips. * **Focus mode auto-scrolls to the focused clip and fits it cleanly.** Less manual scrolling when stepping into a clip. * **Crashes are reported more reliably and de-duplicated by signature.** A single underlying bug now shows up once instead of as a dozen near-duplicates. * **Accent picker behaves as expected.** The Gridshift accent picker is properly scoped, and Multicolor and Graphite themes render correctly. * **The Open Monitor Plugin command surfaces its errors.** When it can't open the plugin (missing component, etc.) you now see a clear message instead of silence. * **Stamp-duplicate of an automation node shows the gradient again.** The drag ghost is filled with the curve's gradient, not a flat color. * **Zebra stripes line up with the ruler and follow groove during playback.** Subtle, but the timeline grid is correct now. ## Improvements * **Wider gaps between per-track grid lines.** Easier to tell lanes apart at any zoom level. * **No more "Bounce succeeded" confirmation on bounce-to-new-track.** The new track shows up on its own; the dialog was redundant. * **Tighter Appearance settings.** Section headers replace longer descriptions — fewer words, same controls. ## Features * **Record from your audio interface.** Empty audio tracks now accept hardware input — arm the track, press record, and Gridshift captures from any microphone, line input, or interface channel you've selected. Audio Settings adds an input gain knob and a live level meter so you can dial in the signal before you commit. * **Automation tracks are first-class rows.** Move them around in the track list, reorder them next to the parent track, and treat them like any other row. The curve renderer also got a cleaner, thinner line that respects rounded clip corners. * **Bounce a selection.** ⇧⌘B now bounces either the whole track or whatever you have selected, on MIDI/instrument tracks too. If you have a region selected, only that region prints; otherwise the full track bounces. Groove is applied to bounced audio. * **Drag from the Inspector to the timeline.** The waveform preview in the Inspector is now a drag source — drag it onto the timeline to drop a new clip at the cursor. * **Double-click any slider for a precise value.** Sliders in the Inspector pop up a numeric entry so you can type the exact number instead of nudging the handle. ## Fixes * **AUv3 plugins that throw exceptions no longer take the app down.** A safety barrier around plugin render calls catches misbehaving AUv3 effects and falls back gracefully. * **Failed instruments show a clear error state.** Instruments that can't load (missing component, version mismatch) now display an error instead of leaving the track in a half-loaded state. * **Swing is heard during playback, not just bounce.** Groove now applies to live audio, and dragging the swing slider previews the change in real-time. * **Plugin context-menu Remove works.** Right-click → Remove on a plugin slot now actually removes the plugin. * **Live automation recording is smoother.** Recording captures at a finer resolution and updates the lane in real-time as you move the parameter. * **Automation drag works when another window is in front.** Dragging automation points keeps working across focus changes. * **A few live-playback glitches around loops are gone.** Three regressions in audio/MIDI/timeline behavior at loop transitions are fixed. * **MIDI notes draw flush with clip edges.** Notes at the very start or end of a clip are no longer cut off. * **Crash reports group by signature.** A single underlying bug now shows up once instead of as many duplicates. ## Improvements * **Lower idle GPU usage when the window is visible but quiet.** When nothing is changing on screen, Gridshift skips redundant frames and downshifts the display link. * **Command palette polish.** The list fades smoothly into the footer and the hint bar is more compact. ## Fixes * Duplicating an audio track now keeps its plugin settings instead of resetting to defaults. Same for audio tracks inside duplicated groups. * Backspace in the effects strip removes the selected plugin. * Fixes an occasional crash in the timeline renderer. ## Improvements * Lower CPU and GPU usage when the Gridshift window is hidden, minimized, or covered. * No first-frame stall when opening a project with audio clips. ## Features * **Keyboard shortcuts for locators.** Drop a locator at the cursor, or jump to the next/previous locator, from the keyboard — a follow-up to the locators feature in 0.11.2. Assign your own shortcuts in Settings → Keyboard. ## Fixes * **Bounce keeps the first note on u-he synths.** Diva, Repro, and other u-he instruments no longer drop the very first note when bouncing — bounced audio now matches what you hear in realtime. * **⌘S, ⌘D, ⌘L work in the command palette again.** These shortcuts were being intercepted by the main menu and not reaching their palette actions. * **No more crash when opening the Sample Editor on some clips.** A waveform-rendering bug could take the app down on certain projects when the editor opened; resolved. * **Crash reports reach us again.** Crash reporting in shipped builds is wired back up after a configuration regression in 0.11.2. ## Features * **Project locators in the ruler.** Right-click the ruler to add a named locator at any bar/beat; left-drag to move, right-click to rename/color/delete. Saved with the project. * **Zoom-on-ruler hover.** Hovering the ruler shows the magnifier cursor — a short click still scrubs the playhead, a drag zooms into the dragged range. * **Enter inserts at the playhead.** Context-aware: in the piano roll it creates a note at the cursor (or duplicates the selection); in automation it drops a node on the curve; on a sample track it inserts a clip from the track's sample; on an instrument track it inserts a 4-bar empty clip. If the playhead is inside an existing clip, splits first. * **⌥X opens the instrument plugin on instrument tracks.** The "Edit Sample or Instrument" command now toggles the loaded instrument's floating window on instrument tracks, mirroring the existing Sample Editor behavior on audio tracks. * **MCP: positional plugin inserts.** `plugin_add_remove` accepts a `slot_index` so LLM clients can place a plugin at a specific position in the chain instead of always appending. * **Sample Editor: click outside to dismiss.** Clicking the dimmed parent window behind the Sample Editor sheet now closes it, alongside Done and ESC. ## Fixes * ⌥+arrow zoom no longer drifts: keyboard zoom anchors at the cursor's current screen position, so bar 1 stays put when zooming at the start of a project. * Focus Mode follows window resizes — the focused track re-fits the viewport on resize instead of staying frozen at its entry size. Sample tracks use a tighter ratio (40%) than piano-roll/instrument tracks (70%). * MCP-inserted plugins no longer appear as "Plugin not installed" — UUID alignment between the persisted slot and the runtime AU is now a structural invariant. ## Features * **Stem splitting inside the Sample Editor.** Open a sample in the Sample Editor and split it into stems (vocals, drums, bass, other) in place — the stems become part of the same sample, and you can balance their volumes from the editor. This is an alternative to the existing flow that splits a clip into separate tracks with independent stem samples; both are still available, depending on whether you want to mix the stems as one sample or arrange them independently. * **Keyboard slicing in the Sample Editor.** Arrow keys move between slices, Return drops a marker at the playhead, Space previews. * **Non-destructive Normalize and Trim Silence.** Both apply as clip settings, not file edits — toggle them off or undo at any time. The source sample is unchanged. * **Right-click context menu on tracks** in the sidebar (Duplicate, Delete). * **Record quantize is configurable.** When recording, notes are aligned to the beat grid. You can now choose the resolution (e.g. 1/8, 1/16) or turn it off. * **Sidechain routing via MCP.** `plugin_configure` exposes plugin sidechain inputs to MCP clients. * **Inspector waveform** uses the same renderer as the Sample Editor. ## Fixes * Slice preview in the Sample Editor honors timestretch and plays at the clip's tempo. * Clip edits no longer trigger source-node reregistration that caused brief audio glitches or CPU spikes. * The auto/manual transient mode picker in the Sample Editor reacts reliably after a manual marker edit. ## Under the hood * Crash reports are submitted through Sentry. The in-app banner only appears once the transport is ready. ## Features * **Sample Editor (new):** a dedicated window for the two things you used to do inside the timeline — moving slice markers around on a sample, and correcting the BPM when Gridshift's first guess is off. Open it by single-clicking a clip's waveform preview in the Inspector, or with ⌥X on the selected clip. * **In-app crash reports:** if Gridshift crashes, the next launch shows a banner that lets you send the report with one click. No more digging through Console. * **Missing plugins stay visible.** When you open a project on a Mac that doesn't have one of the plugins installed, the slot stays in place with a clear "not installed" marker, and saving keeps it there. * **Command palette ranks by selection.** Suggestions adapt to the currently-selected track or clip, so the action you want is more often at the top. ## Fixes * Closing the window quits the app — the red close button no longer leaves an invisible Gridshift running. * Save refuses to overwrite a different project (iCloud-sync race protection). * Metronome settings apply during playback, not only after stopping. * Sidechain triggers stay aligned across loop starts, mid-playback Loop toggles, and loop-region edits. * The loop wrap-around no longer flashes a brief blank frame. * Plugin state restores cleanly on project load — no more occasional blank or stuck plugins. * Cross-device settings sync applies remote changes without needing a relaunch. * Step insert snaps to the grid reliably at unusual tempi. * Sample library database failures show a banner instead of crashing the app. ## Performance * Much less UI lag — main-thread layout work is down by about 88%. * Far smoother playback right after opening a project — roughly 17× fewer stalls during project-open and transport. * Live plugin windows feel smoother — moving a parameter no longer triggers a wave of unrelated UI updates. * Lower idle CPU when nothing is playing. ## Features * **Command palette:** single-click selects with a hover tint, double-click executes. * **MCP integration:** Claude and other MCP clients can search your sample library, add clips to the arrangement, and read the track-group hierarchy. ## Fixes * Settings sync no longer overwrites newer local changes with an older cloud copy. * Sidechain triggers now fire on the beat through plugin chains. * One-shot sidechain triggers fire correctly when looping is off. * Floating plugin windows stay open when switching tracks. * Plugin strips release their AU views on window close — fixes memory growth in long sessions. * Audio Unit scans show a progress sheet on first launch. * Three additional production fixes and hardened test infrastructure. ## UI * Inspector and sidebar use a lighter adaptive bottom fade. * No more thin seam between abutting clips on the timeline. ## Fixes * **Bounce now matches playback exactly.** Exported audio is bit-identical to what you hear in realtime, including effects, sidechain routing, and MIDI FX like arpeggiators. * **Backspace cleanly removes the previous grid division** under the cursor. No more tiny leftover fragments at non-round tempi (e.g. 174 BPM). * **Loops stay in sync** when you disable Loop before reaching the loop region. * **MIDI loops keep held notes** when the loop starts mid-note. * **Cmd+Arrow** works reliably for clip navigation again. * **Step recording** behaves consistently when stepping through slices and notes with the arrow keys. * Occasional crashes in the signal history under heavy load are fixed. ## Performance * **Idle plugin strips no longer burn CPU.** Drops from \~47% to \~10% when nothing is playing — quieter fans, better battery. * **Lower overall CPU** in release builds via leaner logging. * **Position display** no longer stutters during playback. * **Windows and layouts** feel more responsive, especially when idle. * **Sample library scans** are noticeably faster. ## New Features * **Smart sample search**: find samples by vibe or description, and sort them by how similar they sound to what's already in the track. Runs entirely on your Mac (one-time \~170 MB download). * **Library tab in settings**: a dedicated view showing everything the sample library knows — indexed folders, database size, plugin categories, keyboard shortcuts, and MIDI triggers. * **Cross-device sync via iCloud**: sample categories, plugin favorites, keyboard shortcuts, and MIDI bindings now follow you between Macs. Audio files stay local. * **Samples that move stay found**: Gridshift tracks samples by their content, so renaming or moving a file no longer breaks the project that uses it. Missing samples get relinked automatically once they turn up again. * **Command palette empty states**: sample, MIDI, and recent drill-downs now feel less barren when a category is empty. ## Fixes * **Offline bounce now sounds like the song**: master effects, sidechain routing, arpeggiators, and chord triggers all render the same way they play back in realtime. * **BPM detection** no longer jumps to double-time on dense drum loops. * **Plugin latency compensation** stays consistent when the effect chain changes mid-playback. * **Startup is more resilient** on iCloud and network volumes — no more occasional launch crash. * **Rapid Backspace in the sidebar** no longer crashes the app. * **Signal history** is more robust under load — no more tear-downs when the buffer is busy. * **iCloud-synced categories** seed cleanly on first launch instead of racing the sync. ## Under the Hood * Bug reports now include readable diagnostic logs — we can triage issues faster without exposing any of your project content. * Lower CPU during playback: leaner per-frame work in the timeline, time-stretch engine, and automation scheduler. ## New Features * **Keyboard-driven sample picker**: browse and search your sample library without leaving the keyboard. While picking, Gridshift previews the selected sample in place of the track's existing clips — so you can hear exactly how a swap would sound before committing. Favorites and a dedicated browse mode make it quick to return to the folders you use most. * **Realtime time-stretch**: the same time-stretch engine as before now runs in realtime. Tempo, pitch, and formant changes on Complex-mode clips become audible within a few milliseconds instead of waiting for a re-render. * **Transient detection now works on long samples**: the detector works through lengthy samples in the background in chunks, so you're no longer capped on length. The inspector stays responsive while it runs. ## Fixes * **Offline bounce** now applies insert FX and sidechain routing just like realtime playback — your exports sound the way the song does. * **Step insert at full length**: dropping a slice into a step now places it at the slice's full length, the way it was always meant to. * **Short clip waveforms** show up reliably even when several tiny clips finish loading at slightly different times. * **Signal history** recovers silently if its internal buffer ends up in a bad state, instead of taking the app down. * **Command palette** keyboard handling is cleaner and more predictable across system layouts. * **Backspace and Delete** now do the right thing based on which pane has focus — sidebar, timeline, or effect strip. * **Plugin windows** no longer leak arrow-key presses back into the DAW, so editing parameters in a plugin won't accidentally switch tracks. * **Inspector slice highlight** fades out on its own when playback ends — no more lingering highlight. * **Focus mode** lets you zoom the timeline with option + left/right again. ## Under the Hood * Deeper diagnostics for main-thread stalls: layout-related pauses are now classified on their own, with longer backtraces so we can pinpoint the source of jank more quickly. ## New Features * **Folder favorites**: hover over any folder in the browser and click the star to pin it. A new Favorites section at the top of the browser keeps your go-to folders one click away. * **Smarter track drop zones**: when dragging a track below a group, Gridshift now looks at where your cursor is horizontally to figure out whether you want to drop inside the group or out at the root — no more guessing. ## Faster Startup * Gridshift now reaches a responsive window even quicker. Audio devices and MIDI gear warm up in the background while you get to work. ## Fixes * **Loop playback** stays clean when you toggle loops or make other changes while playing — no more stuck or stale notes. * **Plugin meters** on the effect strip show per-plugin output again. * **Marquee selection** no longer gets stuck after deleting a track above it. * **Selections** clean up properly after clips overlap and resolve, so nothing lingers as selected when it shouldn't be. * **Browser folders** remember what you had expanded when switching between sidebar tabs. * **Update checks** happen quietly in the background shortly after launch, so fixes reach you sooner without getting in the way. ## Under the Hood * Extra safety nets to prevent unusual values from reaching timeline and transport controls. * More tests protecting sidebar layout from silent regressions. ## Faster and Smoother * **Quicker startup**: Gridshift opens to a usable window noticeably faster — audio devices and other slow checks happen in the background after the app is already on screen. * **Silky timeline**: scrolling, playhead, meters, and the signal history view now run independently of the rest of the app. The timeline stays smooth even when the rest of the UI is busy. * **Faster saving and bouncing**: autosave and exporting no longer make the app feel sluggish while plugins write their state. * **Less stutter while idle**: lots of small main-thread hitches are gone — especially with many tracks or plugins loaded. ## Fixes * **Loop toggle while playing** no longer leaves stuck notes or scrambled loop contents. * **Focus mode** is much cleaner: views update properly when entering and leaving, sidebar rows no longer stay stuck open, vertical scroll behaves correctly, and switching projects always stops playback first. * **Signal history** no longer crashes when a plugin chain changes underneath it. * **Sidebar and timeline** now stay in sync — fixes a cluster of issues with row heights, expand/collapse, and scroll behavior. ## Under the Hood * Updates are now checked once an hour instead of once a day, so fixes reach you sooner. * A new internal testing system runs every night and throws millions of random inputs at Gridshift to catch rare edge cases before you ever see them. ## New Features * **Musical typing layouts**: Pick between Scale, Piano, or Drums when playing notes from your computer keyboard — whichever matches how you think. * **Collapsible Sample section**: The Sample section in the Inspector now folds away, so the inspector stays tidy when you don't need it. ## Fixes * **No more stuck notes on Serum** when editing MIDI while the loop is running. * **Endless rotary knobs on MIDI controllers** no longer jump wildly between min and max. * **Signal history meter** stays active after you switch the clipper off — before, the meter would go silent. * **Track colors** now update everywhere instantly when you change them in the Inspector (or toggle "use group color"). * **Cleaner project switching** — no more resource leak when closing or swapping projects. * **Five rare edge-case bugs** caught and fixed, thanks to a new automated testing pass that throws millions of random inputs at Gridshift. ## Performance * **Smoother inspector meters** — the signal-history visualization now runs at audio rate with full ProMotion refresh. * **Lower CPU on the limiter** during playback. * **Quieter main thread** — fewer little hitches while the app is idle, especially with lots of tracks or plugins loaded. ## New Features * **MIDI Controller Bindings**: Bind any MIDI controller (CC or note) directly to any action in Gridshift via the command palette. * **Monitor Profiles with Custom Routing**: Every monitor profile can now target its own hardware outputs — perfect for setups running headphones and monitors in parallel. ## Timing & Sync * Plugins with PDC (Soothe2, ShaperBox, and friends) now stay rock-solid on the grid — no more "slightly off" feeling on tempo-synced plugins. * Sidechain routing is now restored correctly when reopening a project. Previously the sidechain was silently unhooked after reload. * Sidechain timing is now correct even when plugins ahead of the sidechain target introduce latency. * Beat-sync on group plugins with PDC is now rock solid. * Instrument tracks are now properly PDC-compensated. ## Audio Stability * No more crash when changing the sidechain lookahead during playback. * Plugin reordering: stale latency compensation is now cleared immediately instead of lingering. * Normalize now hits true 0 dBFS regardless of project sample rate. ## Performance * Projects open noticeably faster — engine configuration no longer runs on the main thread. * The render engine now uses macOS Audio Workgroups for more stable timing under heavy load. * Significantly lower CPU in timeline rendering, the command palette, and TimeStretch dragging. * All track and clip lookups moved from O(n) to O(1) — much smoother on large projects. ## UI * Waveforms now show true amplitude — loud clips look louder than quiet ones. * Timeline now redraws correctly after reordering tracks. ## MIDI Looping * MIDI notes are now scheduled on the audio thread instead of DisplayLink, fixing timing drift and jitter during loop playback. * Beat 1 is no longer missing or cut off when looping MIDI regions. * No more phantom notes when the cursor is outside the loop range. * Fixed stuck notes when using a MIDI keyboard or deleting tracks during playback. ## Audio * Clip normalization now uses the engine sample rate for peak detection, so normalize reaches true 0 dBFS regardless of project sample rate. ## Hotfix * **Fixes a crash in v0.8.1** when adding an effect to a project that uses an out-of-process instrument plugin (Kontakt, Omnisphere, and other sandboxed AUs). The slow-lane scheduler no longer races plugin host callbacks against the render thread. If you're on v0.8.1, please update immediately. ## What's New * **Editable BPM fields** with a Target BPM that links to project tempo * **Piano Roll defaults to Stamp mode** — hold Cmd to switch to marquee selection * **Scale Lock auto-disables on drum instruments** * **One-click to expand plugins** in the effect strip and inspector * **One-click to open browser folders** * **New hard-clipping modes** (Edge & Erosion) ## Performance * Smoother timeline scrolling and fewer hitches during playback * Track Inspector visualizations no longer stall the UI * More stable playback with large out-of-process instruments (Kontakt, Omnisphere, etc.) ## Fixes * **Apple Silicon:** audio engine now runs with full real-time priority again * **Double-clicking .gsp files** reliably opens the project * **Loop playback:** MIDI notes retrigger cleanly at the loop end, playhead stays exact * **Piano Roll:** clicks near the very bottom are no longer swallowed * Track Inspector no longer shows a black box; peaks on time-stretched clips are correct * Timeline refreshes when collapsing/expanding groups * Focus mode no longer drifts while scrolling * Instrument track auto-renames when picked from the command palette * Splitting a clip no longer auto-selects the right half * Clicking the lower half of a clip moves the cursor to the correct track * Hardware MIDI drives slice playback on sample tracks * Cmd-click no longer stamps samples across mismatched sources ## Sidebar & Timeline Now Fully Synchronized The biggest change in this release: the **sidebar track list and the timeline are now a single, perfectly aligned view**. Track rows, group hierarchy, expand/collapse state, and scroll position stay in lockstep — what you see on the left always matches what's in the timeline on the right. * **Unified track hierarchy** — sidebar and timeline share the same row layout, heights, and grouping * **Synchronized scrolling and selection** between sidebar and timeline * **Track groups feel native** — collapsing a group in the sidebar collapses it in the timeline (and vice versa), with consistent visuals across both * **Track group ellipsis menu and inline rename** directly from the group header * **Sidebar follows system icon size preference** (Small / Medium / Large) * **Shift+Arrow multi-select** in the track sidebar * **Drag & drop plugin reordering** in the sidebar with cross-category moves * **Centered focus mode** that locks sidebar and timeline scroll together ## New Features * **iOS Companion Mini Player** — Apple Music-style browser for projects with context menu, delete action, and play-latest-version * **Fn+Up/Down shifts Musical Typing octave** instead of jumping tracks * **Split clip interaction zones** — upper half moves the clip, lower half sets the cursor * **Subtle expand/collapse and state animations** throughout the sidebar and inspector ## Performance * Cached automation playback targets and plugin parameter handles * Precomputed MIDI playback event timing for lower live overhead * Suppressed redundant host-driven AU parameter observer callbacks * Streamed capture buffers to disk to reduce memory pressure during long recordings * Fewer timeline draw stalls during save and interaction * Faster save snapshot scheduling ## Fixes * Group hierarchy visuals and track duplication edge cases * First audio track is now selected on project open instead of the Tracks group * Effects can now be drag-dropped onto the master/bus plugin strip * Timeline waveforms appear reliably after opening a project * Grid lines and insertion preview align with grouped timeline rows * Marquee clears when collapsing a group hides the cursor's track * Inspector padding consistent between group and non-group tracks * BPM and transport now reach MIDI FX and instrument arpeggiators * Grid snapper no longer uses a stale viewport after zoom * Delete key routed through the focus area to prevent accidental clip deletion * LUFS overlay repositioned to bottom-left of the meter area * Ghost cursor line width matches the playhead * Preset save no longer blocks the main thread; rename field stays open * Crash fixes: weak captures in unawaited Tasks, unowned refs in audio render blocks ## New Features * **MIDI Effects Chain** — Add MIDI effects to instruments via the new ellipsis menu. Effects are routed before the instrument for real-time processing * **Scale Lock & Chromatic Keyboard** — Lock your MIDI input to a scale and use the new chromatic keyboard layout for faster note entry * **Collapsible Instrument Section** — Collapse the instrument section to save space, with a new "Restrict to Key" toggle * **Auto-Scroll During Recording** — The timeline automatically follows the playhead while recording * **Step Entry Improvements** — Use Backspace to delete the previous step, plus better waveform feedback during slice step recording * **Micro-Animations** — Subtle animations throughout the UI for a more polished feel * **Random Project Artwork** — New projects get a unique gradient artwork automatically ## Performance * Faster waveform rendering with smarter caching and fewer redundant redraws * Lower audio engine overhead — reduced memory allocations on the audio thread * Smoother meter and slider updates with consolidated timers * Faster solo/mute toggling and project loading ## Fixes * Browser preview no longer plays after starting a drag * Count-in now works independently from the metronome setting * Automation curves move correctly with clips during drag * Transient markers update properly when changing zoom scale * Inspector immediately shows slice info after dropping a file * Fixed phantom Caps Lock activation on certain keyboards * Fixed pan mode not being copied when duplicating tracks ## New Features * **iCloud Download Progress** — See real-time progress when opening iCloud projects * **Project Status** — Track your project's progress with the new status carousel * **Rainbow Track Colors** — Color all your tracks instantly with a single command * **Dim Non-Soloed Tracks** — Soloed tracks stand out visually with dimmed surroundings * **Live Task Sync** — Tasks update in real-time across all your devices ## Performance * Smoother timeline scrolling and waveform rendering * Reduced audio engine overhead for lower latency * Faster project loading and file operations * Snappier UI across the board ## Fixes * Playhead no longer jumps to loop start when cursor is outside the loop region * Fixed a crash when loading certain projects * Group track meters now display correctly after grouping * Cleaner track colors and grid lines in light mode * Fixed occasional save corruption with multiple windows open * Preset browser loads more reliably ## New Features * **Effect Presets with iCloud Sync** — Save and recall your favorite effect chains, synced across all your devices * **Repitch Mode** — Classic sampler-style pitch shifting when stretching clips * **iOS Companion** — Check your project structure, tracks, and tasks from your iPhone or iPad * **Loop Toggle** — Cmd-L to quickly toggle your loop region on and off * **New Selection Style** — Cleaner, more readable clip and marquee selection with a fresh lines-and-fill look * **Unified Colors** — Playhead, loop, cursor, and marquee now use a consistent accent color throughout * **Built-In Feedback** — Send feedback and crash reports directly from within Gridshift ## Performance * Project saves and file operations no longer cause brief freezes * Waveform rendering is faster with smarter caching * Solo/mute toggling is near-instant on large sessions * Smoother drag interactions across the mixer and timeline ## Fixes * Fixed a deadlock that could occur when saving project versions * Bounced tracks now export audio correctly * Plugin settings (dry/wet, bypass) persist properly on save * Caps Lock recording indicator syncs correctly with your keyboard LED * Dropping samples creates clips with the correct length * Piano roll edits are now fully undoable * Ruler numbers no longer jitter at certain zoom levels * Track colors apply correctly to plugin sliders * Various stability improvements for iOS companion and iCloud projects ## Timeline * **Drag Selections** — Select a region and drag it to move clips around, with automatic splitting at the edges * **Reverse Reverb** — Apply a reverse reverb tail to any clip for cinematic transitions and risers ## Performance * **Buttery Smooth** — 120fps is back on ProMotion displays with plenty of headroom to spare * **No More Stutters** — Fixed several sources of brief freezes when switching tracks, moving the mouse, or during playback * **Lighter on CPU** — Smarter caching and faster audio processing keep things snappy even with large sessions ## Fixes * Plugins no longer show "DAW suspended processing" when idle * Loop region resets properly when starting a new project * Track heights stay consistent when reopening projects * Moving multiple clips keeps MIDI notes in the right place * Transient snap stays out of the way at low zoom levels * Signal history no longer randomly stops updating * Automation curves look sharp on Retina displays * Fixed a memory leak from leftover debug settings ## Inspector * **Unified Inspector** — Instrument and sample details now live in one clean panel instead of two separate sections * **Waveform Preview** — The inspector shows a waveform that matches your clip's appearance, with better colors in light mode * **Instant Loading** — Waveform preview loads immediately when you open a project — no need to click around first ## Timeline * **Retina Sharpness** — All timeline graphics are now pixel-perfect on Retina displays * **Cleaner Grid** — Grid lines and selection cursors are tighter and more precise * **Stable Playhead** — The playhead no longer drifts when scrolling while stopped * **Compact Mode** — New tracks match your compact mode height setting right away ## Reliability * **MIDI Note Fix** — Keyboard MIDI notes no longer get stuck when switching octaves quickly * **Browser Fix** — Sidebar folders that appeared empty now expand and show their contents * **Clipper on Groups** — The ceiling limiter now works correctly on group tracks, the master bus, and the listen bus * **Sidechain Saving** — Sidechain routing is now saved with your project * **File Drop** — Dropping audio files always creates a clean 1:1 track-to-file mapping * **Plugin Compatibility** — Fixed "DAW suspended processing" warnings in hosted plugins when stopped ## Fixes * Hover info bar background no longer cuts off long text * Ghost clips can't be created on sample tracks without audio * Clip shadows don't accumulate on very short clips anymore * Waveform textures appear instantly after loading a project * Sidebar icons use adaptive colors in light mode * Right-clicking in focus mode no longer accidentally deletes clips ## Recording * **Metronome** — Built-in click with adjustable count-in. Hear the tempo before recording starts * **Automation Recording** — Record parameter changes in real time by moving knobs and sliders during playback * **Step Recording** — Enter notes one at a time at your own pace. Toggle with Esc while in record mode * **Caps Lock Record Toggle** — Tap Caps Lock to arm recording. The LED lights up when active ## Mixing * **Clipper / Limiter Ceiling** — Drag the ceiling line in the signal history to set the output limit * **Groove System** — Apply swing and groove templates per track or globally. Bypass quantization for individual tracks * **Bounce Selection** — Render selected clips to a new track (Cmd+Option+B) * **Duplicate Replace** — Replace the original clip with a bounced copy (Cmd+Shift+D) ## Interface * **Redesigned Sidebar** — Cleaner look inspired by iOS and Catalyst, with consistent icon weights * **Collapsible Mix Section** — Collapse the mixer in the track inspector to save space * **Keyboard Navigation** — Navigate the piano roll with arrow keys. Hold Fn for large jumps. Cursor follows keyboard notes * **Focus Shortcuts** — Cmd+0 for timeline, Cmd+6 for effect strip, Cmd+\` to cycle focus ## Fixes * Spacebar now works for play/stop while Caps Lock record mode is active * Playhead no longer stays red after disabling record mode * Cursor and playhead appear at beat 1.1 on startup * Signal history ceiling line no longer flickers on hover * Cursor lands on the correct position when creating a new track * Piano roll scrolls to the cursor when pressing keyboard notes ## Zero Latency Mode * **Zero Latency Mode** — Play instruments without delay while recording, even with heavy plugin chains * **MIDI Capture** — Forgot to hit record? Press Shift+C to recall the notes you just played ## Waveform Rendering * **New waveform engine** — Smoother zooming and sharper waveforms at every zoom level * **Cleaner 3-band display** — Removed visual artifacts at the start of waveform regions ## Bulk Import * **Large session support** — Import 60+ audio files at once with faster loading * **Cancel imports** — Stop a bulk import in progress without losing your session ## New Features * **Default project template** — Save your current project as the default, or reset to factory settings * **Reorder tracks** — Move tracks up and down with ⌥⌘↑/↓ * **Smarter Trim Silence** — Now removes silence gaps within a clip, not just at the edges * **Auto-scroll to selection** — The timeline and sidebar follow your selected track * **Loop region highlight** — Loop boundaries are now visible as a subtle tint behind clips ## Performance * Faster waveform rendering with reduced GPU workload * Smoother playback when loading large projects * Lower CPU usage during metering ## Fixes * Fixed accidental slice creation on Cmd+click * Fixed unnecessary audio engine rebuilds when previewing slices * Fixed plugin windows not resizing properly * Fixed transport time display getting cut off * Fixed waveform colors not matching between zoom levels * Fixed canceling imports leaving behind empty tracks ## Automation * **Automation pattern presets** — Apply ramp, triangle, stairs, and other shapes from the focus mode floating bar * **Curve type menu** — Right-click automation nodes to change curve type * **Hold-line extension** — Automation clips extend a hold line past the last node * **Resize and stretch** — MIDI and automation clips now support resize and stretch ## Command Palette * **Inline input commands** — Raycast-style inline input for BPM, volume, and other numeric values * **Drill-down commands** — Change Key, Scale, Sample Rate, Buffer Size, Audio Device, Clip Mode, and Groove Style * **Mixer commands** — Control faders and sliders directly from the command palette ## Mixer & Inspector * Redesigned Mix section with signal history, dB scale, and overlay metering values * Native NSSlider faders for Liquid Glass compatibility * Pan mode selection (Balance / Stereo Pan) * Mono Below mode selector (Mono / Mono L / Mono R) * Per-track stereo metering in the inspector ## Recording * **Tracker-style slice recording** — Record directly into slices on sample tracks * Fixed loop recording overdub duplicates, missing live preview, and slice audibility ## More * **Multi-file drop** — Drop multiple files on the timeline to create multiple tracks at once * **Inline track rename** — Double-click track name in sidebar * **Appearance settings** — Per-mode window material density * **Latency-compensated playhead** — Playhead now matches audible audio output * **Shortcut locking** — Arrow-key interaction patterns locked to prevent conflicts * **Parallel track rendering** — Real-time thread pool for multi-track rendering ## Fixes * Fixed command palette losing focus when opening * Fixed playhead freeze with empty seamless loop player * Fixed recovery save blocking the main thread * Fixed multi-clip spacing when moving clips to the left * Fixed sidechain lookahead wrapping at loop boundaries * Fixed sample-accurate waveform not respecting slice boundaries during timestretch * Fixed plugin UI windows not closing when switching projects * Fixed legacy screenshot cache causing main thread stalls * Fixed audio crackle from hybrid preview phasing during recording ## New Features * **Drop files between tracks** — Drag audio or MIDI files near track boundaries to insert a new track between existing ones * **Audio-to-MIDI progress sheet** — Visual feedback during conversion instead of running silently in the background * **Browser auto-refresh** — Sample browser detects new files in watched folders automatically ## Fixes * Fixed marquee selection disappearing when toggling loop (caused unwanted scroll jump) * Fixed sidechain activation causing audio crackle during playback * Fixed accumulated audio offset across stop/start cycles * Fixed oscilloscope signal offset when toggling sidechain * Sidechain impulse now activates immediately when switching modes during playback ## Kern is now Gridshift We've renamed Kern to **Gridshift**. Same app, new name. Your workflow stays the same — just look for the new icon in your Dock. * New app name: **Gridshift** * New project file format: `.gsp` (Gridshift Project) * New website: [gridshift.studio](https://gridshift.studio) ## New Audio Engine We've completely rebuilt the audio engine from the ground up. The result is lower latency, tighter timing, and gapless plugin loading — adding or removing effects no longer interrupts playback. ## Smarter Keyboard Shortcuts * **Cmd+D** now duplicates whatever you're focused on — tracks in the sidebar, clips on the timeline, or plugins in the effect strip * **Opt+N** normalizes track volume * Keyboard focus automatically follows your mouse between Sidebar, Timeline, and Effect Strip ## Improvements * Redesigned transport buttons * Info Bar toggle in the View menu * Sidechain triggering is now perfectly timed * Time-stretched clips play correctly in loop mode ## Fixes * Adding or removing plugins no longer causes a brief audio dropout * Fixed a crash when switching time stretch modes during playback * Fixed instrument tracks not playing back correctly in some cases * Fixed metering (signal history, peak, LUFS) not updating in the inspector * Fixed master bus effects not receiving audio ## Timeline Redesign Floating transport bar at the bottom edge of the window. Redesigned playhead as a persistent ruler marker with drag positioning. Alternating bar stripe backgrounds and aligned ruler ticks for a cleaner look. ## Mixer Overhaul Vertical DAW-style channel faders replacing the old sliders. Smooth fader controls for volume and Dry/Wet mix during automation playback. Vertical Dry/Wet faders in mix popover with track color. ## New Features * Limiter and Lookahead Limiter modes for track output clipping * Cmd+right-click to slice a clip at any position * Auto-merge overlapping MIDI clips when extending * "Normalize Track Volume" command * "Scan for New Plugins" command * Contextual info bar in the inspector * Command subtitle in Command Palette footer * Octave number watermarks in the piano roll * Note name labels on ghost note previews * Visual mute state with consistent transparency * Localization support ## Fixes * Fixed stuck MIDI notes when resizing or cutting clips during loop playback * Fixed MIDI notes ringing past clip boundaries * Fixed clip flicker when dropping files onto the timeline * Fixed fade display on long clips * Fixed fade preview interfering between clips * Fixed inconsistent track height in focus mode * Fixed piano roll octave numbering * Fixed groove slider jitter during loop playback * Fixed lag when changing BPM * Fixed unmuted tracks not playing in loop mode until restart * Fixed swing-aware clip selection and groove timing display * Fixed keyboard interaction with dialogs * Fixed Settings window closable with Escape key * Replaced hardcoded German dialog strings with English * Various performance and rendering optimizations ## Automation Curves Tension-based curve handles with mid-segment drag for shaping automation. Automation clips can now be duplicated with a curve preview in the ghost, and effect dry/wet mix parameters support automation. ## Snap and Selection Multi-target snap with visual snap guide, ghost cursor line previewing the snapped position on iBeam hover, and unified selection visuals with white borders for clips and notes. ## More * Visual clip trimming with overlap resolution * Generic parameter UI for plugins without custom view * Improved BPM detection with filename hints and transient-based estimation * Time stretch support for streaming playback ## Fixes * Eliminated automation playback stutter with direct engine writes and binary search * Smooth slider display during automation playback * Preserved multi-note selection when dragging in piano roll * Fixed focus mode background bleeding to non-focused clips * Browser preview stops when drag session begins * Fixed complex mode waveform display and mode-switch detection * Fixed waveform reset when disabling time stretch mode ## Performance * Eliminated Observation overhead from automation hot path * Fixed groove amount slider stutter with in-place GPU buffer patching * Fixed vertical zoom slowdown in slice time stretch mode * Virtualized parameter list with row recycling and momentum scrolling ## Neural Network Transient Detection Transient detection now uses a trained neural network for more accurate slicing results across a wider range of material. ## App Audio Capture Record audio from other apps directly into Gridshift with a dedicated capture sheet and automatic switching to the target app. ## More * Trim Silence command for selected clips * Colored waveform curves using clip color instead of flat gray * Window subtitle showing BPM, key/scale, and version * Skip automatic transient detection for samples longer than 30 seconds ## Fixes * Seamless plugin insertion with no audible gap * Auto-recover audio engine when audio device changes * Fixed waveform drift for non-standard sample rates * Fixed ruler scrolling off-screen when entering focus mode * Fixed waveform not updating when scrolling into uncached regions * Improved command palette and plugin insertion performance * Faster sample loading by moving it off the main thread ## Sidechain UI New sidechain panel in plugin strip cards with dedicated controls and descriptions for configuring sidechain routing. ## Welcome Experience Welcome sheet on first launch with quick-start options and a new "Scan for Plugins" command for easy setup. ## Visual Refinements * Appearance-dependent plugin opacity adapting to light and dark mode * Inspector instrument hover overlay replacing sidebar expand * Subtle brightness highlight for clip selection replacing white borders * Reduced light mode transparency with thicker background material * Renamed Groove section to Grid and reordered inspector layout ## Fixes * Fixed LUFS measurement \~3dB too low due to wrong stereo normalization and missing K-weighting * Fixed crash when resizing clip shorter than grid division * Fixed MIDI notes not moving with clip during keyboard shortcut move * Fixed ruler numbers not updating during zoom and cramped for long projects * Eliminated waveform wiggle with two-ring display architecture * Fixed sidebar and inspector snapping to default widths * Fixed window resizing with proper panel compression * Hidden effect strip for automation tracks * Improved signal history scrolling and metering performance * Fixed critical performance bottlenecks with new guardrails ## Crash Recovery Gridshift now auto-saves your project in the background and offers to restore it if the app crashes or is force-quit. A save confirmation dialog also appears when quitting or creating a new project with unsaved changes. ## Track Inspector Visualizations Dense waveform visualization with gradient fade and a scrolling signal history view in the track inspector for real-time monitoring. ## Per-Plugin ALC Automatic Loudness Compensation now operates per-plugin with individual gain nodes, and supports graph-level bypass for master, listen, and group bus plugins. ## More * MIDI files shown in sidebar file browser * Refined plugin strip visuals (opacity, padding, empty state) ## Fixes * Fixed offline bounce for instrument tracks with AU warm-up and trim * Fixed transport bar clicks blocked when plugin strip visible * Eliminated scroll jitter with O(1) ring buffer and Retina rendering * Uniform MIDI note color on timeline, velocity shading reserved for focus mode * Eliminated MIDI drag ghost lag by moving parsing off main thread * Fixed crash when creating new project ## Plugin Strip Meters Real-time peak/RMS level meters in the plugin strip with smooth CALayer rendering and display link callbacks. ## Visual Refinements * Liquid Glass effect on plugin strip cards * Plugin strip sidebar with ALC toggle, Mix control, and level meter ## Fixes * Fixed plugin UI knobs not updating during automation playback * Fixed meter colors not adapting to dark/light mode changes * Matched left sidebar width to right sidebar ## Per-Track Groove Assign individual swing/groove patterns to each track. Each track can use the global groove or have its own template and amount. Grid rendering, snapping, and audio playback all respect per-track settings. ## Sample Rate Control Project-level sample rate picker with direct CoreAudio device control. Falls back gracefully to the next lower supported rate when the device doesn't support the requested rate. ## Plugin Strip Improvements * Drag effects from browser directly to the plugin strip * Drag-to-reorder plugin strip cards (homescreen-style) * Keyboard navigation with Tab, Enter, and Delete * Insert effects between existing plugins with animated insertion line * Click to toggle full-view plugin windows, close with ESC ## More * Key/scale and tempo/groove settings moved from transport bar to project sidebar * Automation grid increased from 8 to 32 rows for finer vertical resolution ## Fixes * Fixed clip offset not honored in all playback modes after clip split * Fixed piano roll ghost notes snapping to wrong grid with per-track groove * Fixed keyboard MIDI events not routed through full-view plugin windows * Fixed Mix sliders too narrow in inspector ## Plugin Strip A new plugin strip sits at the bottom of the main window with a card-based UI and frosted glass material. Plugin windows are now resizable with proportional scaling. Instrument plugin UIs have moved from the plugin strip to the inspector panel. ## Mixer Automation Volume, pan, and mid/side parameters in the mixer now support automation. ## Waveform Improvements On-demand full-resolution waveform loading for deep zoom levels, smooth rendering with adaptive anti-aliasing, and cached mastering-quality sample rate conversions at load time. ## More Features * Apply fade in/out to all selected clips simultaneously * Zoom to fit clip when entering focus mode * Contextual grid opacity — subtle at rest, full during interactions * Piano roll ghost note preview now shows grid * Instant out-of-process plugin restore via offscreen parking * Plugin strip panel caching for instant track switching * Hardware MIDI input with automatic device connection * Track type selection menu on sidebar plus button ## Fixes * Resolved dark/light mode crashes and ghost plugin windows * Fixed Shift+click clip multi-selection accumulation * Fixed MIDI note grid alignment in arrangement clips * Fixed note name labels during keyboard zoom in piano roll * Fixed right-click deleting clips in piano roll mode * Eliminated waveform flicker on drop and blocking cursor during drag * Eliminated data races in PlayheadCoordinator, SeamlessLoopPlayer, and StreamingTrackPlayer ## Per-Track Plugin Windows Plugin windows have been redesigned with a per-track layout. Each window now includes an effect chain sidebar, making it easy to switch between plugins without leaving the window. Borderless panels allow click-through on the titlebar. ## Automatic Loudness Compensation (ALC) Adding or removing plugins no longer causes sudden volume jumps. ALC measures per-plugin loudness using K-weighted LUFS and automatically applies gain correction in real time. ## Seamless Clip Move Playback Moving clips on the timeline no longer interrupts playback. A streaming track player keeps audio running while you rearrange your arrangement. ## Drop Ghost Previews Dragging audio or MIDI files into the timeline now shows a waveform or MIDI preview in the drop ghost, so you can see exactly what you're placing before you commit. ## MCP Server Redesign The MCP server has been consolidated from 23 tools down to 8, with better LLM performance. New capabilities include MIDI clip creation and editing, plugin discovery, and plugin parameter control. ## More Features * Bar selection expand/shrink (`⇧⌘.` / `⇧⌘,`) * Vertical zoom modes (Compact/Normal/Focus) without requiring clip selection * Tempo-independent MIDI clips via `durationBeats` * Command palette pre-warmed for instant open * Swift 6 language mode migration with full strict concurrency ## Fixes * Stem splitter sample rate, memory, and waveform performance * Zero-length loop selection handling * Stale hover states in sidebar during trackpad momentum scrolling * Ghost note not clearing when CMD key released * Option key now bypasses grid snap when dragging MIDI notes * Streaming players stop correctly when activating loop during playback ## Quantize Selection Press `⌘U` to snap selected clips to the nearest grid position. Works with any grid resolution. ## Audio Diagnostics Built-in CPU load and audio glitch detection. Monitor engine health in real time to catch performance issues early. ## Shortcut Improvements * Section key (`§`) shortcuts remapped to mnemonic Option keys (e.g. `⌥E` for effects chain) for better international keyboard support * Select All in Track (`⌘A` scoped to active track) * Documentation link added to Help menu ## Fixes * Clip gain applied correctly to seamless loop buffer * Removed duplicate Zoom to Fit shortcut * Sandbox file access cleaned up with default folder support * Improved impulse pre-activation alignment for sidechain timing ## Claude Desktop Integration Gridshift now ships with an [MCP server](/features/mcp-server) that connects to Claude Desktop. Install it in one click via **Help → Install Claude Extension**. Claude can read your project state, control transport, adjust plugin parameters, and more. ## MIDI Clip Stamping Hold `⌘` and click to stamp duplicates of the selected MIDI clip — the same workflow that already existed for audio clips. A ghost note preview shows where the clip will land before you commit. ## Per-Clip Velocity Set clip volume directly with the number keys. Quick access without opening the inspector. ## Slice Navigation `Z` and `X` now switch between pages of slices in Audio Focus Mode, making it possible to play back samples with more than 24 slices from the keyboard. ## Sidechain Timing Sidechain triggers are now sample-accurate with inline impulse rendering. Loop boundaries are handled automatically — triggers repeat correctly without gaps. ## Performance Waveform loading is significantly faster through disk caching, vDSP acceleration, and parallel processing. Grid lines now update in real-time during pinch-to-zoom. ## Fixes * Plugin windows stay in front when switching between apps * Transport shortcuts work while a plugin window is focused * Cmd-click stamp on sample tracks uses full sample duration * Clip duplication produces audio on playback * Clip colors update immediately when group color changes * File-dropped tracks no longer inherit group membership * Transient markers follow clips during drag in focus mode * Instrument plugins restore correctly when loading projects * Instrument tracks included in offline bounce # Core Concepts Source: https://docs.gridshift.studio/concepts The Gridshift concepts that differ from other DAWs, and the core objects — tracks, clips, and sources — you build a project from. **Gridshift** is a keyboard-driven, in-the-box music studio (DAW) for macOS. This page covers the ideas that work differently from other DAWs first, then the objects you work with. ## What's different A few things in Gridshift work differently than they might in other DAWs. #### Keyboard and Command Palette Gridshift is driven primarily from the keyboard. The [Command Palette](/features/command-palette) reaches any of 200+ actions by name, and almost every action has a keyboard shortcut. #### One window, inline editing There is no separate piano-roll or audio-editor window. A clip is edited where it sits on the timeline: entering [Focus Mode](/features/focus-mode) expands the clip in place for note, slice, and automation editing, then collapses it back into the arrangement. #### One source per track Each track has a single sound source — one audio sample, or one Audio Unit instrument — followed by one effects chain. One source, one chain, one output. On a sample track, every clip is a region of that track's one audio file. #### Recording is a mode Record is a global mode toggled with `Caps Lock`, and the selected track is the record target — there is no separate per-track record-arm step. The mode works two ways: * **With playback** (`Space`) — live recording. A ghost clip grows under the playhead. * **Without playback** (transport stopped) — step recording. Each key places a note or slice at the cursor and advances one grid step, the way a step sequencer or tracker works. What gets captured depends on the selected track: MIDI on instrument tracks, slice triggers on sample tracks with transients, audio input on empty sample tracks. See [Recording](/features/recording). #### The grid and groove Position is musical — bars and beats — with snapping on by default. A [groove](/features/groove) template shifts the timing grid itself, so the same swing applies to snapping and editing as well as playback. #### Automation Automation lives in independent lanes, each a `0–1` curve edited like a clip. One lane can drive several parameters and several lanes can drive one parameter: in **Absolute** mode a lane sets the value, in **Relative** mode it adds a signed offset that stacks on top, which also covers modulation. See [Automation](/features/automation). #### Sidechain modes Sidechain has three modes: **Audio** routes a source track's signal into the plugin's sidechain bus, while **MIDI** and **Trigger Impulse** derive the trigger from positions — clip starts and note-ons, including the clip starts of an audio track — rather than from the waveform. Because those positions are known in advance there is no detection delay, and a lookahead can fire the trigger early. See [Sidechain](/features/sidechain). #### Ducking **Ducking** is native, plugin-free sidechaining: a track's output is lowered by a hand-drawn gain shape whenever another track's clips or notes fire, applied after the clipper and always downward. A ducking is named and project-wide — authored once on its trigger track, then applied to any number of targets, each with its own amount. Like the trigger-based sidechain modes it is a pure timeline function, so it adds no latency and renders identically live and in a [bounce](/features/bounce). See [Ducking](/features/ducking). #### Listen Bus A [Listen Bus](/features/monitor-profiles) holds monitoring effects that play during playback but are excluded from a [bounce](/features/bounce) — for reference or monitoring chains that should not be part of the final output. #### No bundled plugins Gridshift includes no stock instruments or effects. It hosts the [Audio Units](/features/inspector) installed on your system, which provide the instruments and effects. ## What's familiar Most other concepts map onto ones you already know: * A **timeline / arrangement** with a bar/beat ruler, tracks stacked vertically, clips arranged horizontally. * **Tracks, clips, groups, buses, and a master** output. * **Audio Units** — the standard macOS plugin format. * **MIDI, sends, and quantize.** * **Non-destructive editing** with full undo, and standard drag / trim / split / copy / paste. These work as in most DAWs; the section above covers what differs. ## Core objects A project is a tree of **tracks**; each track holds **clips** along the timeline. ### Track model Each track has a single sound source — an audio sample or an Audio Unit instrument — followed by an effects chain. **Groups** act as summing buses for their child tracks: they appear in the [sidebar](/features/sidebar) track list, but only tracks that contain clips show as rows in the timeline. | Type | Description | | -------------- | ------------------------------------------------------------------------------------------------------------------------------ | | **Sample** | Tied to a single audio file. One sample per track. | | **Instrument** | Hosts an Audio Unit plugin and receives MIDI input. | | **Group** | Organizes tracks and acts as an audio bus for its children. | | **Master Bus** | Final output. All audio flows through here. | | **Listen Bus** | Monitoring bus that holds effects ignored on bounce. Configured per output via [Monitor Profiles](/features/monitor-profiles). | ### Clip model A clip is a region on a track's timeline with its own position and length. Editing a clip never alters the underlying source, so trimming, splitting, and moving are non-destructive. What a clip holds follows its track. | Type | Description | | -------------- | --------------------------------------------------------------------------------------------------------------------- | | **Audio** | A region of the track's one sample, with its own offset into the file, fades, time-stretch, and per-clip gain. | | **MIDI** | A sequence of notes on an instrument track, edited in the inline piano roll. | | **Automation** | A `0–1` curve in an [automation](/features/automation) lane, edited like a clip and mapped to one or more parameters. | Editing happens in place: [Focus Mode](/features/focus-mode) expands a clip for note, slice, and automation editing, then collapses it back. Duplicating a clip keeps the copies [linked](/features/linked-clips) by default, so an edit to one updates them all. See [Timeline Editing](/features/timeline) for clip creation, gain, and looping. ## Next steps Arranging, editing, and clip operations Inline audio and MIDI editing Full shortcut reference All available commands # App Audio Capture Source: https://docs.gridshift.studio/features/app-audio-capture Record the audio output of any running app on your Mac — no cables, no routing. The captured audio lands on a new track, ready to edit. **App Audio Capture** taps the audio output of any running app on your Mac and records it onto a new track — no cables, no routing. Only the selected app is captured; Gridshift's own playback is excluded to prevent feedback loops. ## Capture audio The target app is brought to the foreground automatically. Click **Stop Capture** (or press `Return`) when done. Gridshift creates a new sample track named `Capture - [App Name]` with the recorded audio placed as a clip at the beginning of the timeline. ## Permissions On first use, macOS will ask for **Screen Recording** permission. This is required to access app audio — Gridshift does not capture any video. You can manage this in `System Settings → Privacy & Security → Screen Recording`. ## Details * Captures in stereo at the project's sample rate * Audio is saved as a WAV file in a temporary directory * The captured app is automatically brought to the foreground so you can trigger playback * Gridshift's own audio output is excluded from the capture # Audio to MIDI Source: https://docs.gridshift.studio/features/audio-to-midi Extract MIDI notes from audio recordings using AI pitch detection. **Audio to MIDI** extracts MIDI notes from an audio recording using AI pitch detection. Gridshift integrates third-party AI models for audio-to-MIDI conversion. The specific algorithm may change over time as better models become available. ## Model | Model | Capabilities | | ------------------------- | ---------------------------------------------------------------------------------------------- | | **Basic Pitch** (Spotify) | Polyphonic pitch detection — handles melodies, chords, and multiple instruments simultaneously | The model runs locally via CoreML — no audio is uploaded. ## Convert audio to MIDI Open the Command Palette (`⌘K`) and run **Convert Audio to MIDI**. Gridshift creates a new instrument track with the extracted MIDI clip; the original audio clip remains unchanged. # Automation Source: https://docs.gridshift.studio/features/automation Automate mixer controls and plugin parameters over time — draw curves or generate them with an LFO, drive multiple parameters from one lane, and stack lanes in absolute or relative modes. **Automation** lets you change parameters over time — volume fades, filter sweeps, effect mix changes, and more. Each automation lane carries one curve that can drive one or several parameters at once, hand-drawn or generated with an [LFO](#generate-mode-lfo). Several lanes can even drive the same parameter and [combine](#stack-lanes-on-one-parameter) — one setting the value, others nudging it up or down. ## Automatable parameters * **Mixer**: Volume, Pan, Mid, Side, Mono Hz, Clip Ceiling * **Sends**: Amount — right-click a send row and pick **Automate Send Amount** * **Ducking**: Amount — right-click a duck row and pick **Automate Duck Amount** * **Effects**: Any Audio Unit plugin parameter, plus **Dry** and **Wet** * **Instruments**: Any Audio Unit instrument parameter ## Create an automation lane The Command Palette opens **Connect Automation Track** with **New Automation Track** preselected. Press `Return` to add a new lane below the target track, named ` - `. If a plain lane (**Absolute** mode, full range) already drives that exact parameter, **New Automation Track** reuses it instead of making a duplicate. If the existing lane has a custom mode or range, a fresh lane is added that **stacks** on top — see [stack lanes on one parameter](#stack-lanes-on-one-parameter). ## Drive more than one parameter from one curve A single automation lane can drive multiple parameters from the same 0–1 curve. Useful for grouped fades (drum bus + reverb send), parallel filter sweeps, or any "these move together" relationship. The Command Palette opens a drill-down: **New Automation Track** at the top, then an **Existing Automation Tracks** section listing every lane. Choose a lane from **Existing Automation Tracks** — the parameter joins it as another target. Linking a parameter another lane already drives adds it to this lane *as well*, and the two lanes combine at playback — see [stack lanes on one parameter](#stack-lanes-on-one-parameter). The only no-op is adding the same parameter to the same lane twice. ## Edit targets in the Inspector Click an automation lane in the Timeline to open it in the Inspector. Each target shows up as its own row with three dropdowns — **Track**, **Plugin**, **Parameter** — plus a **Mode** and its range controls. | Action | Result | | ------------------- | --------------------------------------------------------------------------------------------------------------------------- | | Change any dropdown | Live playback follows the new target on the next frame | | **Mode** | Switch the target between **Absolute** and **Relative** (see [stack lanes on one parameter](#stack-lanes-on-one-parameter)) | | **Min** / **Max** | *(Absolute)* Map the curve's `0` / `1` onto a sub-range of the destination, shown as `0–100%`. Set Min above Max to invert. | | **Amount** | *(Relative)* The depth of the offset, as a bipolar `±%` | | **Delete Target** | Drops just that row — the lane keeps driving the rest | | **Add Target** | Appends a new row seeded to a free Mixer / Volume slot | Edits register in the undo stack — `⌘Z` reverts any routing change. Master, Bus, Group, or deleted tracks remain selectable in the Track dropdown with a clear suffix (e.g. *"Master (Master)"* / *"(deleted track)"*) so you can see what the lane is driving even when the target falls outside the normal sample/instrument set. ## Stack lanes on one parameter More than one lane can drive the same parameter. At the playhead, Gridshift combines them based on each target's **Mode**: * **Absolute** sets the parameter directly. When several absolute lanes overlap on one parameter, one wins — the most recently *started* clip takes it, and ties go to the topmost automation lane. Absolute lanes don't blend; the winner provides the value. * **Relative** adds a signed offset on top of the winning absolute value. The curve stays `0–1`, with its midpoint `0.5` as the neutral point: above `0.5` pushes the value up, below `0.5` pulls it down. Relative lanes *do* stack — their offsets sum. Each target also carries its own range, so one shared curve can hit different destinations at different depths: * In **Absolute** mode, **Min** and **Max** map the curve onto a window of the destination (`0–100%` of its full range). The curve's `0` lands on Min and its `1` on Max; setting Min above Max inverts the mapping. * In **Relative** mode, a single **Amount** (`±%`) sets the swing depth around the base value. A typical use: keep a volume fade on an Absolute lane, then add a subtle **Relative** lane with a small Amount for a recurring lift — the fade defines the level and the relative curve nudges it without the two fighting over the same value. ## Manage automation from the target track You don't have to hunt down the lane to adjust it. Any track that's the target of at least one lane shows an **Automation** group in its Inspector, just below **Grid** — the mirror image of a Return track's incoming-sends list. Each binding is one row: the **driven parameter**, the **lane** driving it, and an **ⓘ** button. | Action | Result | | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | Click the lane name | Jumps the Sidebar and Inspector to that automation lane | | **ⓘ** | Opens a popup with the target's **Mode**, range / **Amount**, and **Remove Automation** — the same controls as the lane side | | Right-click the row | **Remove Automation** straight away | When several lanes drive the same parameter, each appears as its own row. The whole group hides itself when nothing targets the track. ## Edit points Double-click an automation clip to enter Focus Mode. The clip expands into a curve-editing band about 40% of the viewport height, with a value grid, and the surrounding tracks compact to stay in view. Points snap to the beat grid and a 32-step value grid. Hold `⌥` while dragging a point for the fine grid — beats snap eight times finer and the value grid is off. Create a point by double-clicking (or `⌘`-click) on empty space, and drag on empty space to marquee-select. Click a point to select it, `⇧`-click to toggle it in the selection. Step through points with `←` / `→`, and nudge the value of the selected point with `⌃⌘↑` / `⌃⌘↓`. Drag a point to move it (grid-snapped, `⌥` for fine). Delete a point with `⌥`-click or a double-click; delete the whole selection with `⌫`. ## Curves & tension Drag the **tension handle** between two points to shape the curve — up for convex (fast start), down for concave (slow start). ## Generate mode (LFO) Instead of drawing points by hand, an automation clip can generate a live, repeating curve. In Focus Mode the floating bar has a **Draw** / **LFO** toggle — switch to **LFO** to enter generate mode. The shape comes from four controls, with a live preview in the bar: | Control | What it does | | --------- | ------------------------------------------------------------------------------------------------------------- | | **Shape** | Morphs the waveform continuously from triangle through sine to square | | **Skew** | Shifts the symmetry — turns a triangle into a rising or falling ramp, or sets a square's pulse width | | **Phase** | Offsets where the cycle starts | | **Rate** | **Synced** to a musical division (e.g. *1 Bar*), or **Free** for a set number of cycles across the whole clip | Generate mode is **non-destructive**: your hand-drawn points stay untouched underneath and come back the moment you switch to **Draw**. When you want to fine-tune the result, **Bake** converts the live shape into editable points and drops you back into Draw mode. The LFO is a pure `0–1` shape — depth and offset come from each target's range and mode, so one generated curve can drive several parameters at different depths (see [stack lanes on one parameter](#stack-lanes-on-one-parameter)). A clip entering generate mode for the first time starts as a centered sine, one bar per cycle. ## Record automation You can record parameter changes in real time: The parameter changes are captured as automation points. Recorded automation is written to the corresponding lane. If no lane exists for the parameter, one is created automatically. **On a multi-target lane**: recording onto a parameter that's a *secondary* target on a shared lane appends to the existing lane (since the curve is shared). The Inspector — and a brief banner — show the parent lane's name so you know where the captured points landed. ## Step recording with number keys You can insert automation points one at a time using the number keys. This is useful for programming precise value sequences without drawing. **Requirements:** Enter Focus Mode on a draw-mode automation clip, enable recording (`⇪`), and make sure the transport is stopped. Each number key maps to a fixed value — `1` through `9` set `0.1` through `0.9`, and `0` sets `1.0`. Each key press inserts a point at the current cursor position and advances the cursor by one grid step, so you can type a sequence of values without moving the cursor manually. ## Duplicate tracks with automation Duplicating a regular track (`⌘D` with the Sidebar focused) extends every automation lane that targeted the source so the duplicate follows the same curves. Send and ducking amounts are the exception: the duplicate gets its own connections, so those targets aren't carried over — add them on the duplicate's own send or duck row. To break the link and let the duplicate ramp independently, open the lane's Inspector and remove the duplicate's target, then create a fresh lane for it. Duplicating an automation lane itself produces a `Copy (Unlinked)` lane — same curve clips, but you'll need to point it at a parameter before it does anything. Leaving the copy unbound keeps a blind duplicate from silently driving the original's parameter; aim it somewhere yourself, and if that's the same parameter the two simply [stack](#stack-lanes-on-one-parameter). Duplicating a group brings its internal automation along: any lanes inside the group rewire to drive the duplicated tracks, not the originals. ## Clip operations Automation clips support the same clipboard and split operations as audio and MIDI clips. When splitting, automation points are preserved in their respective halves. ## Shortcuts The most-used automation keys are below. The [Focus Mode Shortcuts](/shortcuts/focus-mode) reference has the complete curve-editing grid, including point navigation, marquee, and step recording. | Action | Shortcut | | ------------------------------ | ----------------------- | | Create / reuse automation lane | `⌥A` | | Add parameter to existing lane | `⌥A` → pick a lane | | Select previous / next point | `←` / `→` | | Nudge point value | `⌃⌘↑` / `⌃⌘↓` | | Delete point | `⌥`-click | | Delete selected points | `⌫` | | Bypass snapping | hold `⌥` while dragging | | Toggle recording | `⇪` | | Undo / redo | `⌘Z` / `⇧⌘Z` | # Bounce & Export Source: https://docs.gridshift.studio/features/bounce Export your project or selection to audio files in WAV, AIFF, AAC, FLAC, or MP3. **Bounce & Export** renders your full project or a selection of clips to audio files in WAV, AIFF, AAC, FLAC, or MP3. ## Bounce to disk Press `⇧⌘B` to open the bounce dialog. Choose a format and Gridshift renders the full project to an audio file. | Format | File type | Description | | ------ | --------- | ------------------------------------------------------------ | | WAV | .wav | Uncompressed PCM — industry standard for production | | AIFF | .aiff | Uncompressed PCM — Apple's equivalent of WAV | | AAC | .m4a | Compressed — smaller files, good for previews and sharing | | FLAC | .flac | Lossless compression — smaller than WAV with no quality loss | | MP3 | .mp3 | Compressed — 320 kbps CBR (LAME), universally compatible | ## Bounce selection Press `⌘B` to bounce selected clips with their track effects to a new sample track. This renders the selected audio clips through the full effect chain of their source tracks and places the result on a new track directly below. Useful for: * Committing effect processing to audio ("freezing" a track) * Creating processed stems for export * Reducing CPU load by replacing live effects with rendered audio The new track inherits the source track's group membership and is positioned after the last source track. # Command Palette Source: https://docs.gridshift.studio/features/command-palette Access over 200 commands via fuzzy search with customizable keyboard shortcuts. The fastest way to control every aspect of Gridshift. The **Command Palette** is a fuzzy-searchable list of every command in Gridshift, opened with `⌘K`. Start typing to filter commands, use the arrow keys to navigate, and press `Return` to execute. Press `Escape` to go back or close. Clean Shot 2026 08 02 At 22 42 06@2x ## Custom shortcuts Clean Shot 2026 06 07 At 08 59 02@2x Clean Shot 2026 06 07 At 08 59 02@2x Any command can have a custom keyboard shortcut: If your combination is already used by another command, Gridshift shows you which command owns it and keeps Save disabled until you clear it and pick a different one. Shortcuts are stored locally and persist across sessions. ## Sub-commands Clean Shot 2026 06 07 At 08 58 14@2x Clean Shot 2026 06 07 At 08 58 14@2x Some commands have sub-menus for additional options. For example: * **Load Instrument or Sample…** → instruments and samples for the selected track * **New Instrument Track…** → the same list, creating the track for you * **Add Effect** → shows available Audio Unit effects * **Change Scale** → shows all available scales * **Set Track Color** → shows the color palette Press `Return` to drill into the sub-menu. Sub-commands can also have their own shortcuts. ### Switching source with `⇥` The two instrument commands list the installed Audio Unit instruments **and** your sample library. Press `⇥` to switch between the two; whatever you typed carries over, so you can search both without retyping. A sample loads into the built-in sampler. Because each row takes its own shortcut, `⌃1` can mean "new track running Serum" and `⌃2` "new track with this kick" — one keystroke, no palette. **New Instrument Track…** always creates a track, so a shortcut set there can never overwrite the instrument on the track you have selected. Its first row, **Empty Instrument Track**, is the plain `⇧⌘T` of before. ## Favorites & recents Commands you use frequently appear at the top: * **Favorites** (⭐) — commands you've explicitly marked with `⌘D` * **Recents** — your most recently used commands ## Shortcuts The keys below drive the palette itself. The [Global Shortcuts](/shortcuts/global) reference lists app-wide commands, and any command in the palette can be bound to your own key. | Action | Shortcut | | -------------------------------- | --------- | | Open command palette | `⌘K` | | Move selection up / down | `↑` / `↓` | | Execute command / enter sub-menu | `Return` | | Go back / close | `Escape` | | Assign shortcut | `⌘S` | | Add to favorites | `⌘D` | # Controller Profiles Source: https://docs.gridshift.studio/features/controller-profiles Map a whole MIDI controller in one guided pass — the wizard learns your knobs, buttons, and encoders into a named per-device profile that follows the focused track and syncs across your Macs. [MIDI Bindings](/features/midi-bindings) learn one control at a time from the Command Palette. **Controller Profiles** are the other way in: a guided **wizard** maps a whole controller in a single pass and saves the result as a named, per-device profile that activates automatically whenever that controller is connected. Any class-compliant MIDI controller works — no vendor scripts, no config files. ## Bindings or a profile? | | [MIDI Bindings](/features/midi-bindings) | Controller Profiles | | ------------- | ------------------------------------------------------------ | --------------------------------------------------------------- | | Setup | One control at a time, from the palette | The whole controller in one guided pass | | Knobs control | The exact parameter you learned | The **focused track's** mixer controls — follows your selection | | Buttons run | Any single command you pick | A fixed set of transport / edit / navigation commands | | Stored as | Command bindings (global) + parameter bindings (per project) | One named profile per device | | Turns on | Always | Whenever that device is connected | Use bindings for a one-off ("this knob drives that plugin's cutoff"). Use a profile to set a controller up once and have it drive whatever track you're working on. ## Create a profile Every connected controller is listed under **Connected MIDI Devices**. The wizard opens. Only touch the controller you're mapping — while the window is open, input from *all* MIDI devices is captured, so nothing you press leaks through to instruments or existing bindings. For each control, do what the instruction says — press the button, or slowly turn the knob or encoder. The step captures the first control it sees, marks it with a green check, and moves on. **Skip** passes on a single control; once you reach the optional extras, **Skip Rest** jumps straight to the end. A two-knob controller isn't forced to click through fourteen optional steps. **Back** redoes the previous step. The summary shows how many controls were mapped. Give the profile a name (defaults to the device name) and save. It's pinned to that device right away. The wizard watches each turning control and tells an **endless encoder** (relative) from a **fixed-range knob** (absolute) on its own, labeling each as it's captured. Either kind works — if a device fools the detector, press **Back** and redo the step. ## What the wizard maps The flow covers the essentials first, then an optional block of extras. Everything acts on the **focused track** — whichever track you have selected (or, in [Focus Mode](/features/focus-mode), the focused clip's track). ### Buttons → commands | | Control | Command | | ------------- | -------------------------------------------------------------------- | ------------------------------------- | | **Essential** | Play / Stop, Record, Loop, Undo | Transport & edit | | **Optional** | Mute, Solo, Quantize, Redo, Metronome, Octave up / down | Focused track & edit | | **Optional** | Browse open / confirm, Browse back / close, Connect automation track | Navigation (see below) | | **Optional** | Cursor forward / backward | Move the edit cursor by one grid step | ### Knobs → the focused track's mixer | | Knob role | | ------------- | ------------------------------------------------------------------- | | **Essential** | Volume, Pan | | **Optional** | Mid gain, Side gain, Mono-below cutoff, Ceiling, Clip-mode selector | Because these are **roles**, not fixed parameters, the same volume knob always rides the track you're currently on — select a different track and the knob follows. ### Encoders → navigation The main encoder is context-aware: * With nothing open, turning it **selects tracks** — right for next, left for previous. * With the [Command Palette](/features/command-palette) or a picker open, it **scrolls that list**. * The **Browse: open / confirm** button opens the palette and confirms the highlighted entry; **Browse: back / close** steps back a level or closes it. * **Connect automation track** opens the automation picker for the last-touched parameter — browse it with the encoder, confirm to bind. Together these let you select a track, open the palette, scroll to a command, and run it without touching the keyboard. An optional **Cursor jump** encoder moves the edit cursor by grid steps the same way. ## Manage profiles Back in `Settings ▸ MIDI`: **Connected MIDI Devices** — each device shows a picker and its current state: | Picker choice | Effect | | ----------------------------- | --------------------------------------------------------------------------------------------------------- | | **Auto-detect** (recommended) | Uses the installed profile whose name matches the device. The label shows what it matched, or "no match". | | **No profile** | The device routes as plain MIDI — instruments and Learn bindings only. | | A specific profile | Pins that profile to this device explicitly. | The row reads **"N binding(s) active"** or **"Routes as plain MIDI"**, and notes **"N ports"** for controllers that expose several (many do — a single device often shows up as separate DAW / MIDI / plugin ports). A profile is applied across all of a device's ports at once, and is only active while the device is connected. **Installed Profiles** — lists every profile with its binding count and an **Active** badge when it's in use. Delete your own profiles with the trash button. Re-running "Create Profile…" for a device replaces its profile of the same name, so refining a mapping is just running the wizard again. ## How profiles rank against MIDI Learn When a control arrives, Gridshift resolves it in order: 1. The **wizard**, but only while it's open (so setup never fires anything). 2. **[MIDI Learn](/features/midi-bindings) command bindings**, then learned parameter bindings. 3. The device's **controller profile**. 4. The **focused instrument** (the control plays as ordinary MIDI). So an explicit MIDI Learn binding always wins over the same control in a profile — handy for overriding one button without editing the profile. ## Sync across your Macs Controller profiles live in [iCloud](/features/icloud). A profile you create on one Mac appears on the others while both are signed in — and, like presets and monitor profiles, a profile saved on one machine shows up on another that's already open. ## Requirements & limits * **Class-compliant controllers only.** Any knob/button/pad controller that appears as a standard MIDI device works. * **No LED / motor feedback.** Profiles send nothing back to the controller, so LED rings and motorized faders won't reflect Gridshift's state. Bidirectional "DAW mode" needs per-vendor support and isn't offered. * **7-bit resolution.** Standard CC values; high-resolution 14-bit CC isn't used. * MCU / HUI control surfaces aren't supported — profiles target the knob-and-button class of controller. # Default Project Source: https://docs.gridshift.studio/features/default-project Save your preferred track setup as a template for new projects. The **Default Project** is a saved template — tracks, effects, routing, and settings — that every new project starts from. ## Save as default Set up a project with your preferred tracks, effects, and settings, then save it as the default template: Open the Command Palette (`⌘K`) and search for **Save as Default Project** Every new project (`⌘N`) will now start with this template. The template includes: * All tracks and their configurations * Effect chains and plugin states * Routing and group structure * Audio samples (embedded into the template) The project name is reset to "Untitled Project" when loaded from the template. ## Reset to factory To remove your custom default and go back to the blank starting point: Open the Command Palette and search for **Reset Default Project** New projects will start with Gridshift's built-in empty project. # Ducking Source: https://docs.gridshift.studio/features/ducking Built-in ducking — lower any track from another track's timeline events, with a hand-drawn gain shape, a reusable curve library, and zero added latency. Built-in **Ducking** lowers a track's output whenever another track plays — the classic "kick pumps the bass" move, without a plugin. The dip is applied after the clipper and limiter and is always downward, so it never adds gain or colors the source. Because the trigger comes from the source track's clip starts and MIDI note-ons — not from analyzing its audio — a duck is a pure timeline function. Live playback and a [bounce](/features/bounce) produce the identical gain curve, with no detection delay and no added latency. ## The model: one curve, many targets A ducking is named and project-wide. It carries the trigger track, the drawn shape, and its settings — authored once — and then appears as an amount row on every other track. Each target dials in its own amount, so a single kick can pump the bass, the pads, and a reverb return by a different amount each. * The ducking is named after its trigger track and lives on that track. * A track can't duck itself, so its own row never appears. * One trigger can carry several distinct curves — `Kick`, `Kick 2`, … — each a separate ducking, disambiguated by name. This mirrors [Returns & Sends](/features/sends): an idle row per ducking on every track, drag the amount above 0 to apply it here. ## Create a ducking Press `⌥D` (**Add Ducking…**) and choose a trigger track from the list. Any track with clips — sample or instrument — is a valid trigger; a track with nothing to trigger from is not offered. You can also add one from the [Inspector](/features/inspector)'s empty-area right-click menu (`Add Ducking ▸ trigger track`) or the [Command Palette](/features/command-palette). If a duckable track is selected when you create the ducking, it is applied to that track at a default amount right away, so you hear it immediately. The **Ducking** section only appears on a track once at least one ducking can apply to it. The very first ducking in a project therefore comes from `⌥D`, the empty-area menu, or the palette — not from the section header, which doesn't exist yet. ## The amount row Open the **Ducking** section in the Inspector. One row appears per ducking whose trigger is a *different* track; rows are idle until they carry an amount. Drag the row's slider above 0 to apply the ducking here. Drag it back to 0 to remove it from **this track** — the ducking itself, and its use on every other track, is untouched. | Row element | Behavior | | ------------------ | ------------------------------------------------- | | Name (label) | Click to jump to the trigger track | | ⓘ button | Opens the shape editor for the shared ducking | | Slider | 0 – 100 % — scales the drawn duck shape (0 = off) | | Percentage readout | Live value, including automation playback | Right-click a row for: * **Trigger: Notes / Clip Starts** or **Clip Starts Only** — the retrigger mode (see below). * **Edit Shape…** — same as the ⓘ button. * **Rename…** — renames the ducking everywhere it's used. * **Go to Trigger Track** — selects the source in the sidebar. * **Remove from This Track** — same as dragging the amount to 0. * **Delete Ducking (All Tracks)** — removes the ducking from *every* track. The label spells out the scope so it isn't confused with the per-track removal above. ## The shape editor The ⓘ button opens the shape editor for the **shared** ducking — the curve, trigger, length, lookahead, and name. Reachable identically from any track's row, and any edit is felt on every track the ducking is applied to. * Draw the shape by hand over the material it acts on. The trigger track's and the target track's waveforms sit behind the curve, folded so every hit lands in the same place — what you draw is exactly what you hear against. * A live oscilloscope shows the actual post-effects audio playing under the curve, so you can shape the duck against the real signal, not a static picture. * `Space` starts and stops playback without leaving the editor. The vertical axis is the gain multiplier: the top is unity (no duck), the bottom is fully ducked. A target's amount scales the whole shape between those extremes. ### Trigger modes | Mode | What retriggers the shape | | --------------------------------- | ------------------------------------------------------------------------------------- | | **Notes / Clip Starts** (default) | Resolves per clip — MIDI clips retrigger on every note-on, audio clips on clip start. | | **Clip Starts Only** | Clip starts only, even for MIDI clips — one duck per clip, not per note. | ### Length The **Shape** control sets the length of one duck cycle, from `1/4 beat` up to several bars. It is beat-based, so the duck stays musical across tempo changes; the engine bakes the shape to samples at the current tempo. Changing the length keeps existing points anchored to the trigger event rather than rescaling the whole curve. ### Lookahead **Lookahead** is a zero-latency pre-duck: how far *before* the trigger event the shape starts. With it off, the shape begins at the event; with a positive value, the curve to the left of the trigger line ramps down *into* the hit — so the transient is never caught mid-slope. Classic hosts can only do this by adding plugin latency. Because Gridshift's triggers are known from the timeline, it simply fires the schedule early — no latency is added. ## The preset library Every editor offers a library of reusable **curves**: | Preset | Feel | | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | **Kick** | The everyday kick duck — hard dip at the trigger, short floor, quick recovery within the beat. Also the curve a new ducking starts from. | | **Snare** | A tight half-beat duck for snare hits — narrow floor, fast recovery. | | **Pump** | Classic pump — full dip at the trigger, ease-out recovery over the beat. | | **Transient** | Transient carve — only the hit is ducked, then straight back up over half a beat. | The **◀ ▶** buttons step through the library against the playing material, each step a single undo, so you can audition curves without stopping. **Save Current Shape as Preset…** adds your own curve to the library — saved presets sync via [iCloud](/features/icloud) and join the same list. A preset carries only the **curve, length, and lookahead**. Applying one overwrites exactly those — the trigger source, the targets, their amounts, and the trigger mode are left untouched. So one saved curve can be dropped onto any duck. ## What can trigger, what can be ducked | Role | Eligible tracks | | -------------------- | ------------------------------------------------------------------------------------------------------------ | | **Trigger** (source) | Any track that carries clips — sample or instrument. | | **Target** (ducked) | Any track with a mix stage — sample, instrument, group, return, or master — except the trigger track itself. | Because groups, returns, and the master are all valid targets, one trigger can duck a whole submix or a shared effect return, not just individual tracks. ## Ducking vs. plugin sidechain Both make one track respond to another, but they sit in different places: | | Built-in Ducking | [Sidechain](/features/sidechain) | | -------------- | ------------------------------------- | --------------------------------------------- | | Needs a plugin | No — native | Yes — a plugin with a sidechain input or MIDI | | Effect | Downward gain only, after the clipper | Whatever the plugin does with the sidechain | | Shape | Hand-drawn gain curve | The plugin's own response | | Trigger | Clip starts / note-ons | Audio, MIDI, or Trigger Impulse | Reach for built-in Ducking when you want a clean, drawn volume duck with no plugin in the path; reach for plugin sidechain when you want a compressor, gate, or filter to react to the source. ## Bounce & Flatten Ducking is part of the mix, so it renders identically in a [bounce](/features/bounce) — live and offline share the same baked shape. **Flatten Track** (`⌥F`) prints a track's instrument and effects to audio but leaves the mixer live, so any ducking on the flattened track keeps working exactly as before. # Focus Mode Source: https://docs.gridshift.studio/features/focus-mode Edit a clip in detail directly inside the timeline — it expands inline instead of opening a separate window, so your arrangement stays visible. **Focus Mode** expands a single clip inline in the timeline for detailed editing, so you stay in context with your arrangement visible. The Timeline has three vertical zoom levels: **Compact** (`⌥↑`) drops all tracks to minimal height for an arrangement overview, **Normal** is the default track height, and **Focus** (`⌥↓` or double-click a clip) expands a single clip for detailed editing. Entering Focus Mode shrinks every other track to a 24 pt compact row rather than hiding it, so the arrangement stays on screen above and below the editor. The focused clip carries a thin header strip: press in the strip to drag the clip, press below it to edit. Exit with `Escape` or `⌥↑`; zoom, scroll position, and every track height are restored. While in Focus Mode, `Tab` / `⇧Tab` step to the next / previous clip on the same track without exiting. `→` / `←` navigate inside the focused clip — note by note, slice by slice, point by point — and cross into the adjacent clip only once you run past its last or first element. ## Audio Focus Mode Audio clip in Focus Mode showing the waveform Audio clip in Focus Mode showing the waveform The track expands into a shallow editing band — about 40% of the viewport — showing the clip's slice markers and layout. Detailed waveform work, transient detection, and marker editing live in the [Sample Editor](/features/sample-editor) — open it with a click on the inspector waveform preview or `⌥X`. ### Slice playback Letter keys trigger slices between transient markers — 26 slices per page. With more than 26 slices, run **Musical Typing: Octave Up** / **Musical Typing: Octave Down** (`Fn↑` / `Fn↓`) to switch pages. ```text theme={null} Upper row: Q W E R T Y U I O P (slices 16–25) Middle row: A S D F G H J K L (slices 7–15) Lower row: Z X C V B N M (slices 0–6) ``` The Inspector provides playback options: slices play in full, and you can apply a decay time across all slices. ## MIDI Focus Mode MIDI clip in Focus Mode showing piano roll with notes MIDI clip in Focus Mode showing piano roll with notes An inline piano roll grid appears inside the track lane. Musical Typing is active — play notes from your computer keyboard in real time. See the [Musical Typing](/shortcuts/musical-typing) page for the full keyboard layouts. ### Create and delete notes Hold `⌘` and click on an empty area to create notes. The behavior mirrors clip creation on the timeline: | Context | Result | | ---------------- | ------------------------------------------ | | No note selected | Creates a new note at the clicked position | | Note selected | Stamps a duplicate of the selected note | Drag after clicking to set the note duration. Right-click a note to delete it. Right-click and drag to erase multiple notes. ## Automation Focus Mode Double-click an automation clip to edit automation curves inline. See [Automation](/features/automation) for the full editing reference. ## Focus bar A floating bar appears centered at the top of the window, just below the toolbar. Its contents depend on the clip type: | Clip type | Control | Range | | ---------- | ----------------------------------------- | ------------------------------------------------------------- | | Audio | Gain slider | -24 dB to +12 dB | | MIDI | Velocity slider | 0–127 (selected notes, or all notes when nothing is selected) | | Automation | Draw / LFO mode toggle and shape controls | — | ### Clip picker The bar leads with a **clip picker** — a shade swatch plus a badge counting how many clips are linked together. Open it to switch the focused clip to another one on the track (each row shows a live mini-preview) to **Unlink** so the clip stops sharing its body, or to **Link Identical** — merge every clip on the track with identical content into one linked group. Press `Escape` once to close the picker, again to exit Focus Mode. See [Linked Clips](/features/linked-clips) for the full model. ## Shortcuts The keys for entering, exiting, and navigating Focus Mode are below. The [Focus Mode Shortcuts](/shortcuts/focus-mode) reference has the complete grid — piano-roll note editing, audio-slice triggers, and automation-curve editing. | Action | Shortcut | | -------------------------------- | -------------------- | | Enter Focus Mode | `⌥↓` or double-click | | Exit Focus Mode | `Escape` or `⌥↑` | | Compact zoom | `⌥↑` | | Focus next / previous clip | `Tab` / `⇧Tab` | | Navigate inside the focused clip | `→` / `←` | | Select next / previous note | `⌘→` / `⌘←` | | Edit Sample or Instrument | `⌥X` | | Split clip at all transients | `⇧⌘E` | # Groove & Swing Source: https://docs.gridshift.studio/features/groove Apply swing and groove patterns to shift the grid, snap behavior, and playback timing — globally or per track. **Groove** shifts the timing grid away from a straight, mechanical feel. Off-beat grid lines move according to a groove pattern, and clips snap and play back at the shifted positions. The underlying clip data stays in straight time — groove is applied non-destructively. ## Set the groove **Global (affects all tracks):** Open the `Project` inspector tab (`⌘5`) and choose a groove template and amount under `Grid`. **Per track:** Select a track and open the Inspector. Under `Grid`, disable **Project Groove** to assign the track its own groove template and amount. Tracks without a custom setting follow the global groove automatically. ## Amount The amount slider (0–100%) controls how strongly the groove pattern is applied. At 0% the grid is straight. At 100% the full pattern is applied. ## Shift (per track) The **Shift** slider nudges a track's entire grid earlier or later by a constant amount, independent of any groove pattern. Find it in the track Inspector under `Grid`, next to **Amount**. * **Range:** ±50 ms, bipolar around 0. Negative values push the track *ahead* of the beat (earlier); positive values lay it *back* (later). Option-click resets to 0 ms. * **Per track only.** There is no global shift — a single value applied to every track would just be latency. Each track carries its own shift. * **Works with or without a groove.** Shift is independent of the groove template and amount, and of the **Project Groove** toggle. A track can follow the global groove (or have no groove at all) and still be shifted. * **Tempo-independent.** The shift is stored in milliseconds (wall-clock time), so the push/pull feel stays constant when you change the project tempo. Like groove, the shift is non-destructive: the underlying clip data stays in straight time, and clips snap and play back at the shifted positions. Use it to humanize a part, drag a track slightly behind the beat for a laid-back feel, or push it ahead to add urgency. ## Samples as groove sources Instead of using a preset, you can extract groove timing from an audio sample. This lets you match the feel of a drum loop or any rhythmic audio. A sample track becomes eligible automatically once it has transient markers and reads as rhythmic — there is no toggle to enable. Eligible tracks appear in the groove picker under a `Project Samples` section, below the built-in presets. Gridshift extracts the timing pattern from the sample's transient positions. When the sample is selected as the groove template, its rhythmic feel is applied to the grid. Every eligible sample track appears automatically, so multiple samples can sit in the list together. You can also run **Set Project Groove from Sample** from the Command Palette to set the project groove from the selected track's sample. ## Presets 34 groove templates organized into six categories: | Category | Presets | | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | **Swing** | Swing, Alt Shuffle, Machine Swing, Surf Rock, Nice Eighths | | **Triplet** | Triplets, Triplets Alt, Drummer Triplets | | **Hip-Hop** | Hip-Hop 16th, Hip-Hop 8th, Westside, MPC 60 #1, MPC 60 #2 | | **Funk** | Boogaloo, Funky B, Groovy 60s, Groovy 70s | | **Breakbeat** | Amen, Amen B, Break 1, Chemical 1, Chemical 2 | | **Complex** | Push Pull, Push Pull Heavy, Late Snare, Laid Back, Ragga, Loose Feel, Pushing 1, Pushing 2, Drummer Swing 1, Drummer Swing 2, Ragged, Tight | # iCloud Integration Source: https://docs.gridshift.studio/features/icloud Gridshift uses iCloud to sync your projects, presets, and settings across your Macs. **iCloud Integration** keeps your projects, presets, and settings in sync across every Mac signed in to the same Apple ID. Sign in on each Mac and Gridshift keeps the following in sync automatically: * **Projects** — your `.gsp` project bundles, including embedded audio, [version history](/features/versioning), and the project's task list. * **Effect Presets** — see [Presets](/features/presets). * **Monitor Profiles** — see [Monitor Profiles](/features/monitor-profiles). * **Plugin Categories** — see [Plugin Categories](/features/plugin-categories). * **Sample-library annotations** — ratings, tags, and detected BPM/key on samples you've indexed. See [Sample Library](/features/sample-library#cross-device-sync). ## Gridshift folder in iCloud Drive Projects, presets, and monitor profiles live as files in iCloud Drive. Open Finder and navigate to `iCloud Drive → Gridshift` to see: ``` iCloud Drive/ Gridshift/ Projects/ .gsp project bundles Presets/ .gspreset effect presets MonitorProfiles/ monitor calibration bundles ``` `⌘S` and `⌘O` default to the `Projects` folder. You can organize it any way you like — Gridshift watches the folder and updates the project browser automatically when files arrive from another Mac. ## Download progress When you open a project that isn't on your Mac yet, Gridshift shows a **Downloading from iCloud…** indicator with progress while the bundle is fetched. Once it's local, loading continues straight into the project. Large projects with embedded audio may take a few seconds on the first open. # Inspector Source: https://docs.gridshift.studio/features/inspector The panel on the right. Five tabs — track details, sample browser, instruments, effects, and project settings — switchable with ⌘1–⌘5. The **Inspector** is the panel on the right side of the main window. A row of tabs in the toolbar switches what it shows, while the [Sidebar](/features/sidebar) keeps the track list in view the whole time. It has five tabs, switchable from the toolbar or with the keyboard (`⌘1`–`⌘5`) — each shortcut also opens the Inspector if it's hidden: * **Tracks** — settings for the selected track * **Browser** — audio sample file browser * **Instruments** — installed Audio Unit instruments * **Effects** — installed Audio Unit effects * **Project** — project settings, tasks, and version history ## Tracks Select a track to open its settings in the Tracks tab. The sections from top to bottom: Inspector panel showing track name, mix controls, and grid settings Inspector panel showing track name, mix controls, and grid settings ### Track Properties The track name (double-click to rename), plus toggles for **Mute** and **Solo**. If the track has plugin-induced latency, a latency indicator shows the total PDC delay in milliseconds. ### Color A 12-color palette for the track. If the track belongs to a group, a **Use Group Color** toggle appears — when enabled, the track inherits the group's color. ### Source Shows the assigned audio sample or Audio Unit instrument. For **sample tracks** with transient markers: | Control | Description | | ---------- | ---------------------------------------------------------- | | **BPM** | Detected or overridden source tempo (editable via stepper) | | **Slices** | Number of detected slices | | **Decay** | Envelope decay applied to all slices | Time stretch settings are also available here. See [Time Stretching](/features/time-stretching) for details. If the sample has transient markers, a **Groove Source** toggle appears. Enable it to use the sample's rhythmic feel as a [groove template](/features/groove#samples-as-groove-sources). Click the waveform preview to open the [Sample Editor](/features/sample-editor) — a modal sheet for editing transient markers, slice settings, and the source BPM grid on a much larger waveform. The same editor is available from the Command Palette as **Edit Sample…** (`⌥X`). For **instrument tracks**, the loaded Audio Unit instrument is shown with its interface. Hold `⌘` and drag on its controls to adjust them in place without opening the full window — the same goes for MIDI-effect cards. See [Direct Plugin Interaction](/features/plugin-strip#direct-plugin-interaction). ### Mix Signal history visualization, stereo metering, volume fader, pan, mid/side processing, clipper/limiter, and mono-below frequency control. The section is collapsible. See [Mix Controls](/features/mix) for the full reference. ### Sends On sample and instrument tracks, the **Sends** section lists one row per [Return track](/features/sends) in the project. Drag a row's slider above 0 to route the track into that return. On a Return track, an **Incoming Sends** section appears instead, mirroring the rows from every source currently feeding the return. See [Returns & Sends](/features/sends) for the full reference. ### Grid Per-track groove settings. By default tracks follow the global groove. Disable **Use Global Grid** to assign the track its own groove template and amount. See [Groove & Swing](/features/groove) for details. ## Browser A file browser for audio samples. Add folders via the Command Palette → **Add Sample Folder**. The browser shows your favorite folders as an outline view. Click a file to preview it. Drag one or multiple files onto the Timeline to import them as new tracks. For keyboard-driven search across every indexed folder — plus Smart Search and live sample swapping during playback — see the [Sample Library](/features/sample-library) page. ## Instruments Lists installed Audio Unit instruments in collapsible categories, including **Favorites** and **Other**. Drag an instrument onto an instrument track to load it. You can drag instruments within a category to reorder them, or drop them onto another category header to move them there. The context menu lets you create categories and assign a plugin without dragging. Plugins are scanned on first launch — use **Scan All Plugins** from the Command Palette to rescan. ## Effects Lists installed Audio Unit effects in the same category-based browser. Drag an effect onto the [Plugin Strip](/features/plugin-strip) to add it to a track. Saved [presets](/features/presets) are shown under their respective plugin. Effects can be drag-reordered within a category and moved across categories by dropping them onto another category header. Plugin categories live at the app level, not per project, and sync across your Macs via iCloud. See [Plugin Categories](/features/plugin-categories) for how to create, rename, reorder, and assign categories. ## Project Global project settings and metadata: | Section | Content | | --------------- | --------------------------------------------------------------- | | **Info** | Project cover artwork, editable title, and workflow status | | **Audio** | Sample rate | | **Key & Scale** | Root note and scale type for Musical Typing and MIDI generation | | **Grid** | BPM, [groove](/features/groove) template and amount | | **Tasks** | Per-project task list with checkboxes | | **Versions** | [Version history](/features/versioning) with audio previews | ### Info section The Info section at the top of the Project tab combines the project artwork, an editable title field, and the workflow status picker into a single group. The title defaults to the project file name and updates the window title as you type. The status picker tracks where a project sits in your workflow. Choose from five stages: | Status | Description | | ------------- | ---------------------------- | | **Draft** | Initial ideas and sketches | | **Flesh Out** | Building out the arrangement | | **Polish** | Mixing and fine-tuning | | **Released** | Final, published version | | **Archived** | No longer active | The [Project Overview](/features/project-overview) (`⌘P`) groups all your iCloud projects by status, so you can see at a glance what needs attention. ## Shortcuts The keys for opening Inspector tabs and the editors they link to are below. The [Global Shortcuts](/shortcuts/global) reference has the complete grid for tabs and focus areas. | Action | Shortcut | | ------------------- | --------- | | Show Inspector tabs | `⌘1`–`⌘5` | | Project Overview | `⌘P` | | Edit Sample | `⌥X` | # iOS Companion Source: https://docs.gridshift.studio/features/ios-companion Browse Gridshift projects from iPhone or iPad, preview saved version bounces, and manage tasks from the companion app. The **iOS Companion** lets you browse Gridshift projects stored in iCloud Drive from your iPhone or iPad. It reads a lightweight `manifest.json` written by the Mac app, so the project list can load project metadata, artwork thumbnails, track summaries, and version previews without opening the full `project.json` first. ## Requirements * iPhone or iPad running **iOS / iPadOS 18.0** or later * The same Apple ID as your Mac, with **iCloud Drive** enabled * Gridshift on macOS saving projects into the shared Gridshift iCloud container * At least one saved version with a bounce preview if you want instant playback from the project list ## Browse the project list Projects are grouped by workflow status in horizontal carousels. Pull to refresh rescans iCloud, and if iCloud is unavailable the companion shows an explicit unavailable state instead of a stale local cache. Tap a project cover to control browsing playback: | Tap a cover when… | Result | | ------------------------------ | ----------------------------------------------------------------------------------- | | Nothing is playing | Shows the mini player and starts the newest saved version that has a bounce preview | | That project is playing | Pauses playback | | That project is paused | Resumes playback | | A different project is playing | Switches playback and updates the mini player | You can also drag a project card between status sections to update its workflow state from iOS. ## Mini player bar The mini player appears at the bottom of the project list after you select a project. It includes: * project artwork thumbnail * a progress strip across the top edge * elapsed time / total time while a bounce is active * a play/pause control Tap the **mini player bar** to expand into the full project detail view. Tap the **project artwork in the list** to pause/resume or switch playback. If the selected project has no active bounce preview yet, the bar stays visible and shows the project's BPM until a playable version is available. ## Detail view Expanding the mini player opens a full-height detail sheet with: * a large artwork header with project name, tempo, and description * a **Versions** tab for saved version previews and bounce playback * a **Tasks** tab backed by the shared `tasks.json`, so task changes sync between macOS and iOS Bounce previews download from iCloud on demand. While a preview file is still being fetched, the mini player switches to a **Downloading...** state and starts playback automatically once the file becomes local. ## Delete a project Long-press a project card to open a context menu with artwork preview and a delete action. Choosing **Delete from iCloud** asks for confirmation before removing the entire `.gsp` bundle from the shared iCloud container. Deleting removes the project, its saved versions, and its bounce previews from iCloud for good — there's no undo. If the deleted project is currently active in the mini player, playback stops immediately and the mini player closes. ## How iCloud storage works The companion app is designed around iCloud-backed projects: * project browsing uses the Gridshift iCloud container * manifests are read first for fast list loading * older projects without `manifest.json` fall back to `project.json` * task edits are written cross-platform via `tasks.json` For more about the shared storage layout, see [iCloud](/features/icloud). # Linked Clips Source: https://docs.gridshift.studio/features/linked-clips Reuse one clip across many places on a track — edit it once and every copy follows. A **linked clip** is a copy that stays in sync with the original. Edit the notes, the part of the sample it plays, the fades, or the gain on any one of them, and every linked copy changes with it. It's the same idea as clip aliases in Bitwig or reused patterns in FL Studio, tailored to Gridshift: linking is **same-track only**, and there's nothing to name or manage. Two things are always **per-copy**, no matter what: * **Where it sits** — its position on the timeline, plus its mute and quantize state. Everything else is shared between linked copies: the MIDI notes, the audio sample and the part it plays, time-stretch, fades, length, and clip gain. Linking works for MIDI, audio, and automation clips alike. ## Create linked clips By default, duplicating a clip keeps it linked to the original. **Duplicate** (`⌘D`) drops a linked copy directly after the original; **stamp** (`⌘`+click an empty area with a clip selected) places one at the click position; and copying then pasting on the same track (`⌘C` then `⌘V`) puts a linked copy at the cursor. Duplicating a **group** clip carries the link down — each child clip is duplicated as a linked copy. Edit any one of them afterwards — paint a note, drag a fade, move the gain slider — and the change shows up on every linked copy right away, including during playback. ## Create an unlinked copy When you want a copy that evolves on its own, make it unlinked instead. **Duplicate Unlinked** (`⇧⌘D`) makes a copy that starts identical but isn't linked, and **Unlink Clip** (`⌘I`, or the clip picker) detaches the selected clip so its edits no longer carry to the others. **Unlink Clip** is bound to `⌘I`. You can also run it from the [Command Palette](/features/command-palette) or the clip picker (see below), or reassign the shortcut in `Settings → Shortcuts`. It only acts on a single focused or selected clip; a multi-clip selection is ambiguous and is left untouched. ### Operations that unlink automatically Some edits change a clip so much that it can't sensibly stay linked. These quietly unlink the affected clip: * **Slicing or splitting** a clip (`⌘E`, `⇧⌘E`, or a mouse slice) * **Duplicating only part of a clip** (for example across a partial marquee selection) * **Moving or pasting a clip to a different track** — linking is same-track only, so the destination copy is always unlinked ## Re-link identical clips Already have copies that aren't linked — recorded in a row, duplicated unlinked, pasted, or built by hand — but are exactly the same? **Link Identical Clips** (`⇧⌘I`) joins them back together: clips whose body matches — same notes or sample window, fades, gain, and length — become one linked group, so editing any of them edits them all. It's the bulk inverse of **Unlink**. What gets linked follows your selection: * **One clip focused or selected** — every clip on that track identical to it joins its group. * **A marquee** — the clips the marquee touches, just like duplicate or delete would resolve it. * **Several clips selected** — the selected clips are grouped by identical content and each group is linked. Clips already linked to a selected clip follow along — linking never breaks up an existing group. Separate copies outside the selection are left alone, so you can link the chorus copies while an intro copy stays free. * **Nothing selected** — the selected track is swept whole: every set of identical clips on it becomes a linked group in one go. Selecting a group track sweeps all of its member tracks; automation lanes are only swept when you select the lane itself. Like every linked-clip operation it stays on one track — groups never span tracks, even when a sweep covers several. Clips that differ in any way are left untouched, and the whole pass is a single undo step. **Link Identical Clips** is bound to `⇧⌘I` — the mirror of Unlink's `⌘I`. Run it from the [Command Palette](/features/command-palette) or the clip picker (see below). Identical means *exactly* identical: a copy whose gain or length you've since changed — including slices recorded at different trigger levels, or held for slightly different lengths with record-quantize off — won't be linked. ## Visual identity Linked clips share a shade of the track color so you can see groupings at a glance: * An **unlinked** clip uses the plain track color. * Linked clips are tinted with the same shade. A different set of linked clips on the same track gets a different shade, so you can tell groups apart. ## The clip picker When you enter [Focus Mode](/features/focus-mode) on a clip, the floating bar starts with a **clip picker** — a colored swatch, a count of how many clips are linked together, and a chevron. Focus Mode floating bar with the clip picker on the left Focus Mode floating bar with the clip picker on the left Open it to see every distinct clip on the track as a row with a live mini-preview — a waveform for audio, note blocks for MIDI, the curve for automation — plus how many copies are linked to each one: * **Click a row** to switch the focused clip to that one. It immediately plays and displays the clip you picked. * **Unlink** (footer) detaches the focused clip so its edits stop carrying to the others. It's disabled when the clip isn't linked to anything. * **Link Identical** (footer) merges every clip on the track whose body is exactly the same as the focused one into a single linked group. It's disabled when there's nothing identical to link. Press `Escape` to close the picker; a second `Escape` exits Focus Mode. ## Things to know * **Linking is same-track only.** A clip can only link to other clips on its own track. This is why moving a clip to another track always unlinks it. * **Position, mute, and quantize stay per-copy.** Only the clip body is shared — each linked clip keeps its own spot on the timeline and its own mute state. * **Clip-gain number keys aren't shared.** The `0`–`9` clip-gain keys on the timeline change exactly the clips you selected and leave linked copies alone. Use the gain slider in Focus Mode (or the inspector) if you want a gain change to carry across the link. ## Shortcuts The keys for linking and unlinking clips are below. The [Timeline Shortcuts](/shortcuts/timeline) reference has the complete grid. | Action | Shortcut | | ---------------------------- | ------------ | | Duplicate — linked | `⌘D` | | Duplicate — unlinked | `⇧⌘D` | | Stamp linked copy | `⌘`+click | | Paste (same track) | `⌘V` | | Unlink clip | `⌘I` | | Link identical clips | `⇧⌘I` | | Split / slice (auto-unlinks) | `⌘E` / `⇧⌘E` | # MCP Server Source: https://docs.gridshift.studio/features/mcp-server Control Gridshift from AI assistants like Claude via the Model Context Protocol. Gridshift includes a built-in **[MCP](https://modelcontextprotocol.io) Server** that allows AI assistants to read project state and control the DAW — including mixing, plugin management, and MIDI composition. ## Install for Claude Desktop Go to `Help → Install Claude Extension` in Gridshift's menu bar. This installs the MCP server as an extension in Claude Desktop. Help menu showing Install Claude Extension option Help menu showing Install Claude Extension option ## Add to other clients The MCP server uses a bridge binary that communicates with Gridshift via Unix socket. Add the following to your client's MCP configuration: ```json theme={null} { "mcpServers": { "gridshift": { "command": "/Applications/Gridshift.app/Contents/Helpers/GridshiftBridge" } } } ``` Gridshift must be running for the connection to work. ## Available tools ### Session | Tool | Description | | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | `get_session_overview` | Get project info, transport state, tracks, and mixer levels in one call. Use the `include` parameter to request specific sections. | ### Transport | Tool | Description | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `transport_control` | Control playback, recording, loop, tempo — all via a single `action` parameter (`play`, `stop`, `toggle_playback`, `toggle_loop`, `toggle_recording`, `go_to_beginning`, `set_tempo`). | ### Tracks | Tool | Description | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | `track_add` | Add a sample, instrument, or return track. | | `track_configure` | Set volume, pan, mute, solo, and return output routing for one or more tracks in a single call. Accepts a batch `operations` array. | | `track_rename` | Rename a track. | | `group_create` | Create a group track containing existing tracks as children. | | `track_move_to_group` | Move a track into a group, or back to the top level. | ### Sends & Returns | Tool | Description | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `send_configure` | Create, adjust, or remove sends from tracks to return tracks (level + pre/post tap). Accepts a batch `operations` array. Create a return track first with `track_add` type `return`. | ### Plugins | Tool | Description | | ----------------------- | ---------------------------------------------------------------------------------------------------------------------- | | `available_plugins` | Search installed AU plugins by name or manufacturer. | | `plugins_list` | List all loaded plugins across tracks with bypass state and parameter count. | | `plugin_get_parameters` | Get plugin parameters with type metadata, value labels, and pagination. | | `plugin_configure` | Set parameter values, toggle bypass, and/or configure [sidechain](/features/sidechain) routing — all in a single call. | | `plugin_add_remove` | Add or remove plugins on tracks. Supports batch operations across multiple tracks. | ### Clips & MIDI | Tool | Description | | ------------------ | ---------------------------------------------------------------------------------------- | | `clip_delete` | Delete clips by ID or clear all clips on a track. Works with any clip type. | | `midi_clip_create` | Create a MIDI clip with optional initial notes. Returns the clip ID for further editing. | | `midi_clip_read` | Read all notes from a MIDI clip (pitch, position, duration, velocity). | | `midi_clip_edit` | Add, delete, or modify notes in a MIDI clip. Supports batch operations. | ### Automation | Tool | Description | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `automation_create` | Automate a parameter (mixer volume/pan, a plugin parameter, or a send amount) over a time range. Creates the lane and clip, and optionally seeds breakpoints or an LFO. `absolute` sets the value directly; `relative` stacks a modulation layer on top — so you can drive one parameter from several automations. Returns the lane index and clip ID. | | `automation_clip_read` | Read an automation clip: its targets, blend mode and range, and breakpoints or LFO shape. | | `automation_clip_edit` | Add, delete, modify, or re-curve breakpoints in an automation clip. Supports batch operations. | | `automation_lfo` | Configure LFO generate mode on a clip: set the shape, bake it to editable points, or clear it. | | `automation_target_configure` | Edit a lane's parameter bindings: add or remove targets (one curve → many parameters), or change a target's blend mode or range. | ### Samples | Tool | Description | | ------------------------- | ------------------------------------------------------------------------- | | `sample_search` | Search the indexed sample library by filename, folder, and category tags. | | `sample_place` | Place a sample as a clip, creating a sample track if needed. | | `sample_replace_on_track` | Swap the audio source on a sample track, preserving clip positions. | ### Project | Tool | Description | | ----------------- | ----------------------------------------------------------------------------- | | `project_artwork` | Get, set, or remove the project artwork (cover image). Supports PNG and JPEG. | ## Design principles Gridshift's MCP tools follow best practices for LLM integration: * **Workflow-oriented**: Tools map to user goals, not internal APIs. * **Compound operations**: Batch changes in single round-trips (e.g. configure multiple tracks at once). * **Rich metadata**: Plugin parameters include type info and human-readable labels so the AI can set values correctly without trial-and-error. * **Musical context**: Project key and scale are included in the session overview so the AI writes in-key MIDI. # Metronome Source: https://docs.gridshift.studio/features/metronome Three metronome modes, selectable click styles, and a configurable count-in. The **Metronome** plays a click track during playback and recording, with an optional count-in before recording begins. Mode, click style, and count-in are set from the Command Palette (`⌘K`); all three persist across sessions and sync across your Macs. ## Choose when the metronome plays Set the mode from `Command Palette → **Metronome Mode**`: | Mode | Behavior | | ---------------------------- | --------------------------- | | **Always** | Clicks during all playback | | **Recording Only** (default) | Clicks only while recording | | **Never** | Metronome off | `Command Palette → **Metronome On/Off**` is a quick toggle — it turns the click on (**Always**) or off, whatever the current mode. ## Change the click sound Pick the click style from `Command Palette → **Metronome Style**` — **Hihat** (the default), **Click**, or **Woodblock**. ## Groove-aware clicks The metronome follows the selected track's groove, so its off-beat clicks swing in time with the track. With no single track selected, it falls back to the project groove. See [Groove & Swing](/features/groove). ## Set the count-in Count-in is a **separate** setting from the mode — its clicks always play before recording, even when the metronome mode is **Never**. Set it from `Command Palette → **Count-In**` — **Off**, **1 Bar** (the default), or **2 Bars**. When recording starts with a count-in enabled: It stays where it is — nothing records during the count-in. Clicks play for the configured number of bars, and a visual overlay shows the current beat. When the count-in finishes, recording starts on the beat. The number of beats per bar follows the project's time signature. ## Settings persist Mode, click style, and count-in are saved automatically, persist across sessions, and sync across your Macs. # MIDI Bindings Source: https://docs.gridshift.studio/features/midi-bindings Bind any MIDI controller to Gridshift commands and plugin parameters — transport buttons run commands, encoders drive the last-touched parameter. Gridshift's **MIDI Bindings** system lets any MIDI controller drive the app without per-vendor scripts. There are two layers: * **Command bindings** — buttons (Note On / CC>0) trigger any command in the palette. * **Parameter bindings** — knobs and pitch wheels (CC / Pitch Bend) drive plugin or mixer parameters. Both are learned ad-hoc, one control at a time, directly from the Command Palette — no vendor scripts. To map a whole controller in one guided pass instead, and save it as a reusable per-device profile, use the [Controller Profiles](/features/controller-profiles) wizard. ## Command bindings Command bindings are global and stored in user defaults — they apply across every project. A MIDI badge appears next to the shortcut badge for that command. The next time your controller sends that event, the command runs and the event is absorbed — it does not additionally reach the focused instrument. Use command bindings for transport, recording, loop toggles, track navigation, or any other command you'd otherwise trigger with a keyboard shortcut. ## Parameter bindings Parameter bindings are project-scoped — they travel with the project file and auto-prune when the referenced track or plugin slot is removed. Incoming values are normalized to the parameter's range and 20 ms linear smoothing is applied so the 7-bit CC stepping isn't audible on smooth targets (filter cutoff, volume faders, dry/wet). Parameter bindings use **absolute tracking** (Ableton's "None" takeover mode): the first CC after learn snaps the parameter to the knob's position, and every subsequent event tracks 1:1. ### Endless encoders Endless rotary encoders must be switched to **absolute mode** on the controller itself before learning — relative / 2's-complement encoding isn't supported in V1 and cannot be reliably detected from CC traffic alone. * **Akai MPK mini IV**: use the "Plugin" preset, or a user preset with `KnobM=Abs` * **Arturia / Novation**: use the MIDI Control Center (or equivalent) to set encoders to absolute / CC mode If an encoder is left in relative mode, the parameter will jump between its minimum and maximum as the encoder wraps — same limitation as Ableton's user MIDI Learn. ## Automation recording When record mode is active, MIDI-bound knob movements flow through the normal automation-recording path. Arm a track, hit record, and turn the knob — the parameter is automated for free. ## Current limits * No LED/motor feedback in V1. Controllers with LED rings or color pads won't reflect the current parameter value. * 7-bit CC resolution only. High-resolution 14-bit CCs are not yet supported. * MCU / HUI control surfaces are not supported — the learn model targets the MPK Mini class of controller. ## Shortcuts The keys used when learning bindings are below. See the [Global Shortcuts](/shortcuts/global) reference for the rest of the app. | Action | Shortcut | | -------------------------------------- | -------- | | Open Command Palette | `⌘K` | | Arm command-binding Learn (in palette) | `⌘L` | | MIDI Learn: Last Touched Parameter | `⌥⌘L` | # MIDI Capture Source: https://docs.gridshift.studio/features/midi-capture Retroactively recall MIDI notes you played but forgot to record. Gridshift continuously buffers incoming MIDI. **MIDI Capture** continuously records incoming MIDI events into a circular buffer — even when you're not in record mode. If you play something great and forgot to hit record, you can recall it after the fact. The buffer holds up to 16,384 events per track. When full, the oldest events are silently overwritten. ## Commit a capture Gridshift creates a clip from the buffered notes on the selected track. The notes are placed at their correct timeline positions based on when they were played relative to the transport. ## Clear the buffer Open the Command Palette (`⌘K`) and search for **Clear MIDI Capture Buffer** to discard all buffered events and start fresh. # MIDI Input Source: https://docs.gridshift.studio/features/midi-input Connect hardware MIDI controllers and play instruments from your computer keyboard, with automatic device detection and per-track routing. **MIDI Input** lets you play and record instruments from hardware MIDI controllers or your computer keyboard, with automatic device detection and per-track routing. ## Hardware MIDI Gridshift automatically detects and connects to all available MIDI input devices. When you plug in a MIDI controller, it's immediately available — no configuration required. To make a controller's knobs and buttons *drive* Gridshift — transport, mixer, navigation — map them with the [Controller Profiles](/features/controller-profiles) wizard or ad-hoc [MIDI Bindings](/features/midi-bindings). ### Supported messages | Message | Description | | -------------- | -------------------------------------- | | Note On / Off | Triggers instruments and records notes | | Control Change | Maps to plugin parameters | | Pitch Bend | Pitch wheel input | ### Routing MIDI input is routed to the selected instrument track. In Focus Mode, input is routed to the focused clip's instrument. ## Computer keyboard (Musical Typing) When an instrument track is selected or a MIDI clip is focused, your computer keyboard becomes a musical instrument. See the [Musical Typing](/shortcuts/musical-typing) page for the full keyboard layouts. Musical Typing has three layouts, selected per-track via the **Keys Layout** picker in the Inspector: * **Scale** — Three rows of scale degrees across 3 octaves. Only notes in the selected key/scale are played. Best for melodies and chords. Default for new instrument tracks. * **Piano** — Chromatic piano layout with white keys on the middle row and black keys on the upper row, across 2 octaves. * **Drums** — 26 sequential chromatic pads across Y/Z…P, with Y/Z mapped to MIDI 36 (General MIDI Bass Drum). Automatically selected when you load a drum plugin. All layouts support: * Octave shifting via Command Palette (**Musical Typing: Octave Up/Down**) * Velocity control * Real-time recording and step entry ## Instrument tracks To use MIDI input for playing and recording: The piano roll in the Inspector highlights keys as they are played, providing visual feedback during performance. # Mix Controls Source: https://docs.gridshift.studio/features/mix Volume, panning, mid/side processing, clipper/limiter, and mono-below — every track has a full mixing toolkit built into the Inspector. **Mix Controls** are the per-track mixing tools built into the [Inspector](/features/inspector): volume, pan, mid/side gain, clipping and limiting, and mono-below. Click the Mix section header to expand or collapse it. Mix section in the Inspector showing signal history, meter, volume fader, and mix controls Mix section in the Inspector showing signal history, meter, volume fader, and mix controls ## Signal history & metering At the top of the Mix section, a real-time signal history visualization shows the track's level over time. Next to it, a stereo peak meter displays left and right channel levels with a dB scale. Above the visualization: **Peak** (click to reset), **Gain** (current volume in dB), and integrated **LUFS** readings. The ceiling line in the visualization is draggable — pull it down to set the clipper ceiling below 0 dB. ## Volume Vertical fader ranging from -48 dB to +12 dB. Snaps at 0 dB. The fader moves automatically during playback when volume automation is active. Use **Normalize Track Volume** (`⌥N`) to automatically set the fader so the peak reaches 0 dBFS. Play the track first so Gridshift has peak data to work with. ## Clip type Select the output clipping or limiting mode from the dropdown: ### Clipping curves Clipping curves shape peaks that exceed the ceiling. They add harmonic character at zero latency. | Curve | Character | | ---------------------- | ---------------------------------------------------------------- | | **None** | Bypass — no clipping applied | | **Hard** | Aggressive digital clipping, peaks sliced flat | | **Quintic** | Gentle soft clip with smooth saturation onset | | **Cubic** | Classic soft clip, warm and musical, predominantly odd harmonics | | **Hyperbolic Tangent** | Analog-style saturation, smoothest transition into limiting | | **Arctangent** | Gentle saturation, preserves dynamics, minimal coloration | | **Algebraic** | Moderate soft clip, balanced between Arctangent and Cubic | ### Limiter modes Transparent peak control without harmonic coloration. | Mode | Behavior | | --------------------- | -------------------------------------------------------------------------------------------------------------------------- | | **Limit** | Zero-latency peak limiter with stereo-linked gain reduction and \~100 ms release | | **Limit (Lookahead)** | Peak limiter with a short lookahead buffer for smoother response. Adds minimal latency, automatically compensated via PDC. | ## Pan Horizontal panner from full left to full right with snap points at L50, Center, R50. Right-click to switch mode: | Mode | Description | | -------------- | -------------------------------------- | | **Balance** | Adjusts left/right volume (default) | | **Stereo Pan** | Crossfades the signal between channels | ## Mid / Side Independent gain controls for the center (Mid) and stereo (Side) content of the signal. | Control | Range | Description | | -------- | ----------- | --------------------------------------------------------------------------- | | **Mid** | -∞ to +6 dB | Center channel gain — controls mono content | | **Side** | -∞ to +6 dB | Side channel gain — controls stereo width. At zero the signal becomes mono. | ## Mono Below Collapses low frequencies to mono below a configurable cutoff frequency (20 Hz – 1 kHz). Tightens the stereo low end without affecting the rest of the spectrum. Option-click to disable. Right-click to switch algorithm: | Mode | Description | | ---------- | ------------------------------------ | | **Mono** | Sums L+R below cutoff (default) | | **Mono L** | Uses left channel only below cutoff | | **Mono R** | Uses right channel only below cutoff | # Monitor Profiles Source: https://docs.gridshift.studio/features/monitor-profiles An output selector that bundles audio device, channel pair, gain, and a room-correction plugin, letting you switch between Studio Monitors, Headphones, and other outputs in one click. **Monitor Profiles** are Gridshift's primary output selector. Each profile captures everything that defines a monitoring setup: * **Audio output device** (interface + stereo channel pair) * **Input and output gain** in dB (pre- and post-plugin trim) * **One optional AU plugin** on the listen bus (room correction, headphone calibration, reference meter, etc.) Switching between Studio Monitors and Headphones swaps all of these atomically — the device changes, the channel pair is re-routed, and the plugin chain is rebuilt. The hardware output volume is not part of a profile: it is system-global and stays with macOS. ## Where to find them Open `Settings → Audio → Monitor`, or use the **Monitor** section at the bottom of the Master track's [Inspector](/features/inspector) — the same fields, always expanded and edited in place. A **System Default** profile is created automatically on first run and follows the macOS system output device. ## Switch outputs | Action | How | | -------------------------- | --------------------------------------------------------------------------------------------------- | | Pick a profile | `⌥M`, or Command Palette (`⌘K`) → **Switch Monitor Profile** | | Follow macOS system output | The **System Default** profile auto-switches whenever you change the output in macOS Sound Settings | | Activate from settings | Hover a row in the profile list and click **Activate** | When the profile activates, Gridshift mutes the listen bus, applies the device, applies the channel pair, loads the profile's plugin, and ramps the input gain back up — so the swap is click-free. A profile bound to a device that isn't plugged in can't be activated. Its row is greyed out and inert in the Command Palette, its **Activate** button is disabled in settings, and the Inspector dropdown marks it "(not connected)". The refusal is enforced centrally, so audio never lands on the system default with the wrong device's gain applied. ## Profile fields In settings, click the info button (ⓘ) on a profile row for the detail sheet. In the Master track's Inspector, the same fields sit in the **Monitor** section and are edited in place — there is no separate dialog. | Field | Description | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Name** | Display name (e.g. "Beyerdynamic DT 900", "Genelec 8030"). | | **Device** | Audio interface or output. System Default follows macOS. | | **Output Channels** | Stereo pair (e.g. 1-2, 3-4). Appears on devices with more than two outputs. | | **Device Volume** | A live window on the current output device's hardware volume — written straight to CoreAudio, never stored in the profile, and it tracks changes made from the menu bar, media keys or Audio MIDI Setup. Appears only when the device accepts a volume write. | | **Input Gain** | dB trim applied before the plugin, -24 to +12 dB, **0 dB** (default). Use to match calibration targets. | | **Output Gain** | dB trim applied after the plugin, -24 to +12 dB, **0 dB** (default). Use to compensate for plugin makeup gain. | | **Plugin** | Optional AU. Add / remove directly in the detail sheet. | | **Level** | Horizontal stereo meter on the listen bus, post-plugin. Shown only while the profile is active. | ### Multiple profiles on one interface A common setup: Studio Monitors on channels 1-2 and Headphones on channels 3-4 of the same interface. Create two profiles, bind both to that interface, and set different **Output Channels**. Switching profiles re-routes the stereo pair without interrupting playback. ## The monitor plugin Each profile has one optional plugin slot, designed for room / headphone correction: * Add a plugin with **Add Plugin…**, in the profile detail sheet or in the Master track's **Monitor** section. * Plugin state is saved back into the profile on profile switch and on app quit — your settings persist across sessions. * Press `⌥⇧M`, or run **Open Monitor Plugin** from the Command Palette, to open the plugin's AU window. The plugin is audible through the listen bus, but a monitor profile is never rendered into a [bounce](/features/bounce) — exported audio is not colored by a correction plugin, and the profile does not travel with the project file. ## iCloud sync Monitor Profiles sync via [iCloud](/features/icloud). Each profile is a `.gsmonitor` file in `Documents/MonitorProfiles/` inside the iCloud container, so the setups you configure on one machine appear on every other Mac signed into the same Apple account. # Plugin Categories Source: https://docs.gridshift.studio/features/plugin-categories Organize your Audio Unit instruments and effects into custom categories that sync across your Macs. **Plugin Categories** are the top-level folders in the [Instruments](/features/inspector#instruments) and [Effects](/features/inspector#effects) inspector tabs. Each plugin can live in one or more categories, and you control the order inside each category. Categories are app-wide — the same layout applies to every project. With iCloud enabled, your categories, plugin assignments, and ordering sync across your Macs. ## Default categories Gridshift ships with a starter set of categories. Effect categories appear in the **Effects** inspector tab: * **EQ** * **Dynamics** * **Reverb** * **Delay** * **Modulation** * **Distortion** * **Utility** Instrument categories appear in the **Instruments** inspector tab: * **Synths** * **Sampler** * **Keys** * **Drums** * **Strings** Defaults behave like any other category — you can rename, reorder, or delete them. ## Auto-categorization When a plugin is scanned for the first time, Gridshift drops it into a matching category based on its name — a plugin called "Fab Reverb" lands in **Reverb**, "SSL Compressor" in **Dynamics**, and so on. Once a plugin has any explicit assignment, that assignment takes over and the name isn't consulted again. Plugins that don't match any category land in **Other**. ## Manage categories Right-click a category header in the **Instruments** or **Effects** inspector tab: | Action | Effect | | ----------------- | ------------------------------------------------------------ | | **Rename "…"** | Rename the category | | **Delete "…"** | Delete the category; assigned plugins fall back to **Other** | | **New Category…** | Create a new category | **Favorites** and **Other** are built-in — they can't be renamed or deleted. Drag a category header up or down to change the order it appears in. ## Assign plugins Right-click a plugin row to open its context menu. Under **Assign to Category** you'll see every category for the current inspector tab: * A checkmark marks categories the plugin already belongs to. * Clicking a category toggles membership — a plugin can live in multiple categories at once. * **New Category…** at the bottom creates a fresh category and assigns the plugin in one step. You can also drag a plugin onto another category header to move it, or drag up or down within a category to reorder plugins. ### Favorites The **Favorites** section at the top of each inspector tab is toggled per plugin via the **Favorite** context-menu item. Favorites sync alongside your categories. # Plugin Strip Source: https://docs.gridshift.studio/features/plugin-strip A horizontal strip of plugin cards at the bottom of the window — see and control your entire effects chain at a glance. The **Plugin Strip** sits at the bottom of the main window and shows every plugin on the selected track as a card. Each card displays a scaled-down preview of the plugin's interface alongside controls for bypass, level metering, mix, and loudness compensation. ## Add and reorder plugins Drag a plugin from the `Effects` inspector tab (`⌘4`) onto the strip. An insertion indicator shows where it will land. You can also add plugins via `⌥E` or the Command Palette. To reorder, drag a card left or right — adjacent cards shift out of the way in real time. Right-click a card for quick access to `Open Full View`, `Bypass`, and `Remove`. ## Full-view window Double-click a card (or right-click → `Open Full View`) to open the plugin at its native size in a floating window. The strip shows a placeholder with parameter controls and sidechain settings while the full view is open. ## Direct plugin interaction The card shows the plugin's real interface, just scaled down — so you can operate it without opening the full window. Hold `⌘` and drag (or click) a control on the card to adjust it in place, perfect for quick tweaks while you stay in the Timeline. A plain click still opens the [full view](#full-view-window) and a plain drag still reorders the card, so nothing changes about the usual workflow. The same gesture works on the instrument and MIDI-effect cards in the [Inspector](/features/inspector). `⌘` is only the trigger and is not sent to the plugin, so modifiers the plugin uses itself still work — hold `⇧` while dragging for fine adjustment, or `⌥`-click to reset, wherever the plugin supports it. On a few GPU-rendered plugins the pointer can jump when you release a drag. The value you set is still correct. ## Bypass a plugin Click the power icon on the left sidebar of any card to bypass it. The icon turns red when bypassed. Bypassed plugins are removed from the signal path — no CPU load. ## Level meters Each card shows a stereo level meter on the right sidebar with: * **RMS bars** for perceived loudness * **Peak bars** for transient levels * **Peak hold marker** that decays after a short hold ## Dry/wet mix Click the **Mix** button to open a popover with two vertical faders: * **Dry** — unprocessed signal (default 0%) * **Wet** — processed signal (default 100%) The button turns orange when the mix is set to anything other than the default. Useful for parallel compression or blending reverb. ## Automatic loudness compensation (ALC) Click the **A** button to open the ALC popover. When enabled, Gridshift measures the loudness before and after the plugin and applies compensating gain so the perceived volume stays consistent. The popover shows live values for: * **Input LUFS** — loudness entering the plugin * **Output LUFS** — loudness leaving the plugin * **Delta** — the difference in dB * **Gain** — the compensation applied This makes it easy to judge a plugin by its effect on the sound rather than its effect on the volume. ## Parameter controls For plugins without a custom interface, the strip shows a scrollable list of parameter sliders with names and values — no need to open a separate window. # Effect Presets Source: https://docs.gridshift.studio/features/presets Save and recall plugin effect chains with iCloud sync across devices. **Effect Presets** capture a plugin's full state — every parameter value, bypass status, and level — so you can recall it on any plugin slot and sync it across your Macs via iCloud. ## Save a preset Open the Command Palette (`⌘K`) and search for **Save Plugin Preset** The preset captures the plugin's full state including all parameter values, bypass status, and levels. ## Load a preset Open the `Effects` tab in the Inspector (`⌘4`). Presets are listed under their corresponding plugin. Select a preset to load it onto the currently selected plugin slot. ## iCloud sync Presets sync automatically across your Macs via iCloud Drive. See [iCloud Integration](/features/icloud) for details on the folder structure and sync behavior. # Project Overview Source: https://docs.gridshift.studio/features/project-overview A visual dashboard of all your iCloud projects, grouped by workflow status. The **Project Overview** gives you a bird's-eye view of every Gridshift project stored in iCloud Drive. Projects are grouped by their workflow status and displayed as artwork cards in horizontal carousels, so you can see at a glance what needs attention. Open it with `⌘P`, or from the Command Palette (`⌘K`) by searching for **"Project Overview"**. ## Status levels Each project carries a workflow status that tracks its production stage. The overview groups projects into sections by status: | Status | Icon | Description | | ------------- | --------- | ---------------------------- | | **Draft** | Pencil | Initial ideas and sketches | | **Flesh Out** | Hammer | Building out the arrangement | | **Polish** | Sparkles | Mixing and fine-tuning | | **Released** | Checkmark | Final, published version | | **Archived** | Archive | No longer active | Set a project's status in the [Project inspector tab](/features/inspector#project) under `Info`. ## Features ### Artwork thumbnails Each project card shows the artwork thumbnail saved in its project bundle. Projects without custom artwork display a placeholder icon. ### Quick-open Click any project card to open it. If the current project has unsaved changes, Gridshift prompts you to save before switching. ### New Project The **New Project** button in the top-right corner creates a fresh project (using your [default project](/features/default-project) template if one is set). ### iCloud sync The overview monitors iCloud Drive with a live metadata query. Projects saved on other devices appear automatically once synced. Only fully downloaded bundles show manifest details (artwork, BPM); evicted bundles are skipped until re-downloaded. ## Project Overview vs. Project Inspector Tab | | Project Overview (`⌘P`) | Project Inspector Tab (`⌘5`) | | -------------- | ----------------------------------- | ------------------------------------- | | **Scope** | All iCloud projects | Current project only | | **Purpose** | Browse, filter, and switch projects | Edit settings, metadata, and versions | | **Layout** | Artwork cards grouped by status | Form-based settings panels | | **Opens with** | `⌘P` | `⌘5` | ## Shortcuts The keys for opening and switching projects. The [Global Shortcuts](/shortcuts/global) reference has the complete grid — transport, file operations, and inspector tabs. | Action | Shortcut | | -------------------------- | -------- | | Open Project Overview | `⌘P` | | Command Palette | `⌘K` | | New project | `⌘N` | | Show Project inspector tab | `⌘5` | # Quantize Source: https://docs.gridshift.studio/features/quantize Snap clips and MIDI notes to the nearest grid position. Swing-aware, with automatic overlap trimming. **Quantize** snaps the start positions of clips and MIDI notes to the nearest grid line. Select clips or MIDI notes and press `⌘U` to snap their start positions to the nearest 1/16 grid line. Quantization respects the current [groove](/features/groove) settings — notes land on grooved positions, not a straight grid. When quantization causes overlaps, Gridshift trims clips and notes at their edges rather than deleting them. # Recording Source: https://docs.gridshift.studio/features/recording Record audio, MIDI, slice triggers, and automation — live, step by step, or retroactively via MIDI Capture. **Recording** captures audio, MIDI, slice triggers, and automation — live, step by step, or retroactively via MIDI Capture. Toggle record mode with `Caps Lock`. Record mode follows the key: the Caps Lock light is on exactly when record mode is on. Record mode arms the selected track — it does not start playback. Press `Space` to start playback and begin live recording, or enter notes directly for step recording while the transport is stopped. ## What gets recorded What Gridshift records depends on the selected track: * **Instrument track** — MIDI notes from your keyboard or Musical Typing * **Sample track with transients** — Slice triggers from your keyboard * **Empty sample track** — Audio from your input device (microphone, line in, audio interface). See [Audio input recording](#audio-input-recording) below. Additionally, [automation](/features/automation) is always captured on any track type: move a plugin knob or mixer fader during recording and the parameter changes are recorded as automation points. ## Live recording Activate record mode, then press `Space` to start playback. A ghost clip appears and grows with the playhead. ### Record Quantize MIDI notes can be snapped to a grid at commit time (not during recording, so your performance feels natural while playing). The grid is configurable via the Command Palette → **Set Record Quantize**: | Setting | Behavior | | --------------------------------------- | -------------------------------------------------------------------- | | **None** (default) | Notes keep their played micro-timing | | **1/4** / **1/8** / **1/16** / **1/32** | Each captured beat snaps to the nearest grid line at that resolution | The same setting is applied to MIDI captured retroactively from the [jam buffer](/features/midi-capture). Edit-time quantization is still available afterwards via the piano roll regardless of this setting. ### Loop recording (overdub) When looping is active (`⌘L`), each pass layers on top of the previous one. Notes accumulate across loops — stop recording to keep all layers. Overlapping clips are automatically trimmed. ## Audio input recording Record from a microphone, line in, or audio interface onto a sample track. The take is committed as a clip on the track. Audio input recording only fires when the selected sample track is empty. If the track already has a sample loaded, the same key flow records slice triggers instead. ### Permissions On first use, macOS will ask for **Microphone** permission. You can manage this in `System Settings → Privacy & Security → Microphone`. ### Input device, gain, and level meter Configure your input in `Settings → Audio → Input`: | Control | Purpose | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | **Input Device** | Choose the system default or a specific connected interface. | | **Input Gain** | Digital trim from −24 dB to +24 dB applied to the incoming signal, before recording and metering. | | **Input Level** | Live peak meter. Play or speak into your input and adjust gain so peaks land around −12 dBFS to leave headroom and avoid clipping. | ## Step recording With record mode active and the transport stopped, notes are entered one at a time at the cursor position: They form a **chord** at the same position. Press `→` to extend by one grid step, `←` to shorten. Modified arrows keep their navigation meaning. Step recording works for both MIDI notes on instrument tracks and slice triggers on sample tracks. A slice is inserted at its full natural length, and the cursor lands on the next grid line at or after the clip end. ### Audition, then commit Holding a note, chord, or slice auditions it; pressing `Return` while still holding writes it to the timeline at the edit cursor. This needs no record mode. Computer keyboard, hardware MIDI, and the MPC-levels number keys all work as hold anchors. The held pitches commit as one chord step at their audition velocity; a slice commits at the gain it auditioned at. The cursor then advances. Releasing the last key disarms the resize. The commit defers to `Return`'s established meaning where it already has one: in record mode (every key-down already inserts), during live recording, with a range marquee active (`Return` fills the region), and — for notes — inside [Focus Mode](/features/focus-mode). ### Delete with Backspace Press `Backspace` to delete the previous grid division and move the cursor back — exactly like deleting a character while typing. This works inside step entry and, with the transport stopped, whenever the timeline has focus and no clip or marquee is selected: * Any clip content on the cursor's track in the deleted division is trimmed away. Clips entirely inside the division are removed; clips spanning into the division are split or trimmed so only the division's content is removed. * If the division is empty, the cursor still moves back without changing anything. With a clip or marquee selected, `Backspace` deletes the selection instead. ### Exit with Escape When step entry is active, press `Esc` to leave record mode without reaching for `Caps Lock`. `Esc` has slightly different behavior depending on context: if a plugin window is open it closes that window first; if live recording is running (transport is playing) it stops the recording. When the transport is stopped and record mode is already active, `Esc` exits step entry by turning record mode off. ## Count-in When the [metronome](/features/metronome) is configured with count-in, starting playback in record mode plays a count-in before recording begins. ## Shortcuts The keys most relevant to recording are below. The [Global Shortcuts](/shortcuts/global) reference covers transport and recording across the app. | Action | Shortcut | | ------------------------------------------ | ------------------------ | | Toggle record mode | `⇪ Caps Lock` | | Start / stop playback | `Space` | | Toggle looping (overdub) | `⌘L` | | Commit MIDI Capture | `⇧C` | | Commit the auditioned note / chord / slice | `Return` (while holding) | | Extend / shorten last step note | `→` / `←` | | Delete previous division (step) | `⌫` | | Exit step entry / stop recording | `Esc` | # Reverse Reverb Source: https://docs.gridshift.studio/features/reverse-reverb Generate reverse reverb tails for transitions, risers, and atmospheric builds. **Reverse Reverb** creates a reverb swell that builds up *into* a sound, rather than trailing away after it. It's a classic production technique for transitions, vocal risers, and atmospheric builds. ## Create a reverse reverb tail Open the Command Palette (`⌘K`) and search for **"Reverse Reverb"**. Gridshift processes the clip and creates a new clip with the reverse reverb tail. The original clip remains unchanged — place the reverse reverb clip before the original for a classic "swell into the hit" effect. # Sample Editor Source: https://docs.gridshift.studio/features/sample-editor A modal sheet for editing a sample — transient markers, slice settings, source BPM, and the beat-grid alignment. The **Sample Editor** opens a large interactive waveform on top of the Timeline so the audio fills the screen while every editor control sits in a single bar at the bottom. It is the only place where transient markers and the source-level BPM grid are edited. ## Open the editor | From | Action | | --------------- | ---------------------------------------------------- | | Inspector | Click the waveform preview in the **Sample** section | | Command Palette | Run **Edit Sample or Instrument** (`⌥X`) | The sheet locks input to the Timeline behind it. Press **Done**, `Esc`, or click outside the sheet to close it. `Return` does not close the editor — it drops a marker at the playhead. The window can be resized from its minimum (1280 × 540) upward to any size your display allows. ## Layout The waveform fills the body of the sheet. A single bar at the bottom holds the controls for the currently selected mode. Both the waveform and the controls are tinted with the color of the track that owns the sample. A segment picker centered in the header switches between three modes: | Mode | Purpose | | ---------- | --------------------------------------------------------------------------- | | **Slices** | Transient detection, and the per-slice envelope — Fade In, Fade Out, Length | | **Tempo** | Original BPM, beat-grid origin, and aligning clips to the downbeat | | **Stems** | Generate per-stem layers from the sample and balance their volumes in place | Press `⌘1`, `⌘2`, or `⌘3` to switch to Slices, Tempo, or Stems from the keyboard. ## Waveform interactions The waveform reacts to the same gestures in Slices and Tempo modes — only the click target differs. Stems mode replaces the waveform with a lane stack and has none of them. Zoom reaches as deep as the Timeline's, down to individual samples. | Gesture | Action | | ------------------------- | ------------------------------------------------------------------------------------------------------- | | Drag empty area | Pan horizontally and zoom (drag down = zoom in) around the click point | | Scroll wheel | Zoom, anchored at the pointer | | Trackpad pinch | Zoom, anchored at the pointer | | Trackpad horizontal swipe | Pan horizontally | | `←` / `→` | Step the selection through slices; the view re-frames on every step (see below) | | `⇧←` / `⇧→` | Extend the selection by one slice — several slices loop as one region | | `↑` / `↓` | Clear the slice selection (playback falls back to the whole sample) | | `⌘←` / `⌘→` | Nudge the selected marker (or the Tempo grid offset) by 1 ms | | `⌥⌘←` / `⌥⌘→` | Fine-nudge the same target by a single sample | | `⌥←` / `⌥→` | Zoom out / in, keeping the selected slice framed (Slices mode) or anchored at the downbeat (Tempo mode) | | `⌥↑` | Reset zoom to 1× | The right hand never leaves the arrow cluster: step from marker to marker with the bare arrows, hold `⌘` to shove the selected marker, add `⌥` for sample-accurate alignment. ### Where the camera puts the selected slice Arrow navigation and keyboard zoom always frame the selected slice the same way, so the marker under review never has to be re-found after a keypress: * **While the slice fits on screen** it is **centered**. * **Once it is wider than the viewport** — i.e. zoomed in past the point where the whole slice fits — its **start marker is pinned one third in from the left edge**, leaving room to judge the attack in context. Zooming in with `⌥←` / `⌥→` walks a slice from the first state into the second, so the transient stays in view the whole way down to sample level. Letter keys play the slices of the sample for audition (same layout as [Musical Typing for audio slices](/shortcuts/musical-typing#audio-slices)). ## Slices mode ### Transients A picker selects how transient markers are produced: | Mode | Behavior | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Auto** | An on-device detector places markers automatically. A sensitivity slider in the bar filters the candidate set — turn it up for more markers, down for fewer. Switching back to Auto re-applies the detection. | | **Manual** | The current marker positions are pinned. The bar shows a **Clear** button that removes every marker on the source. Auto-detection no longer overwrites the markers in this mode. | | **Beat** | Markers are evenly spaced on a beat grid derived from the source BPM. A division picker chooses the spacing (2 Bars, 1 Bar, 1/2, 1/4, 1/8, 1/16). | ### Editing markers (Slices mode) | Action | Input | | --------------------------- | --------------------------------------------------------------------------------- | | Add marker | Double-click on the waveform | | Remove marker | Double-click on a marker, or press `Backspace` with the marker selected | | Move marker | Drag a marker — the model updates on release | | Nudge selected marker | `⌘←` / `⌘→` (1 ms), or `⌥⌘←` / `⌥⌘→` for a single-sample step | | Drop marker at the playhead | `Return` while a slice is auditioning or Space-preview is running | | Toggle looping preview | `Space` — loops the selected slices, or the whole sample when nothing is selected | The selected slice is the one whose start marker the `⌘`-arrow nudge moves. Selection is set with the bare `←` / `→` arrows, by clicking a marker, or by playing a slice with its letter key. ### Looping the slice you are editing `Space` loops the selection rather than playing once through: * **One slice selected** → that slice loops. * **`⇧←` / `⇧→` extended the selection** → the whole range loops as one region. * **Nothing selected** (`↑` / `↓` clears it) → the whole sample loops. The loop follows the selection **while it plays**: step to the next slice with `→` and you immediately hear it, so a transient can be judged and corrected with `⌘←` / `⌘→` without stopping playback. Moving or deleting a marker moves the loop onto the corrected position too, and holding an arrow walks the loop continuously. Every seam the loop cuts — the turn-around, a jump to another slice, and stopping — is de-clicked with the same shape the timeline and the keyboard audition use: the outgoing pass rings out over roughly 8 ms of the audio that actually follows the slice, while the incoming pass ramps in over 2 ms. The ramp is deliberately much shorter than the ring-out, so attacks stay sharp enough to judge. ### Sample operations (Slices mode) Two chips in the top-right corner of the waveform hold non-destructive operations on the source sample, in Slices mode only. Both write back into the sample's parameters — the original audio file is not modified, and pressing the same button again removes the effect. | Operation | Description | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Normalize** | Lifts the sample's peak to 0 dBFS. Off by default. | | **Trim Silence** | Detects leading and trailing silence and excludes it from playback. Available only while the sample plays raw — **Stretch** off and **Pitch** at 0 — since stretched and varispeed buffers don't share trim semantics. Clearing an existing trim stays available. | ### Shape the slices The right of the bar holds the per-slice amplitude envelope. Option-click a slider to reset it, double-click to type a value. | Control | Description | Default | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------- | | **Fade In** | Linear fade at each slice's start, 0–250 ms | `0 ms` | | **Fade Out** | Linear fade back from each slice's effective end, 0–250 ms | `0 ms` | | **Length** | Played portion of each slice, 1–100 % of the slice body — below 100 % the slice gates to silence and the rest becomes a rhythmic gap | `100 %` | These mirror the same controls in the Inspector. ## Tempo mode Tempo mode shows a beat grid overlaid on the waveform. The grid is derived from the source's effective BPM and uses the bar/beat lines to give the user a visual reference for aligning the audio. ### Set the source BPM The toolbar holds one control: **Original BPM**, the sample's own tempo — detected at import, or the project tempo when detection isn't possible. Drag the field to scrub it and the beat grid follows live, click to type a value, right-click to reset an edited value back to the detected one. Warping — **Character**, **Stretch**, **Target BPM**, **Pitch**, **Formant** — lives in the track Inspector, not here: "what tempo is this sample" and "fit this clip to the project" are different jobs. See [Time Stretching](/features/time-stretching). ### Aligning the beat grid When the first downbeat of the audio doesn't sit at the start of the file, the grid can be moved without changing the BPM: | Action | Input | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------ | | Drag the grid | Click any beat line and drag — the offset updates live | | Stretch the grid | `⌘`-click a beat line and drag — the downbeat stays anchored, the BPM updates so the grid spacing matches the drag | | Nudge offset | `⌘←` / `⌘→` (1 ms), or `⌥⌘←` / `⌥⌘→` for a single-sample step | | Reset offset | The **Reset** button on the offset chip (bottom-right corner of the waveform) | | Move the clips onto the grid | The **Align Clips** button on the same chip | The current offset is shown in seconds in the chip. The offset is persisted on the source and re-applied the next time the editor is opened — and stored in the [Sample Library](/features/sample-library) against the audio itself, so the next project that loads the same file starts from your correction. Moving the grid says how far the clips are off; it does not move them. **Align Clips** finishes the job for every clip using this sample, across all tracks — it counts them in its label (**Align 3 Clips**) and is disabled when there is nothing to correct. It slides the audio inside each clip rather than moving the clip, so clip positions, lengths, and neighbours stay exactly as they are. ## Stems mode Stems mode replaces the single waveform with a stack of stem lanes — one row per stem (Vocals, Drums, Bass, Other for Source Stems; Kick, Snare, Cymbals, Toms for Drum Elements). Each lane carries a solo button and a volume slider — drag it to zero to mute, double-click to reset — so you can rebalance the parts inside one sample without splitting the clip across multiple tracks. Three states the user can land in: | State | What you see | | ----------------------------- | ------------------------------------------------------------------------------------------- | | Model not installed | A **Download Model** call to action that hands off to the model-download sheet | | Model installed, no stems yet | A **Generate Stems** call to action — uses the algorithm chosen in the **Algorithm** picker | | Stems present | The lane stack | The **Algorithm** picker in the middle of the bar selects the model (Source Stems / Drum Elements), and is disabled while a bake runs. A source stores one bundle at a time, so switching to a kind that hasn't been baked drops back to **Generate Stems**. While a bake runs, the body of the editor swaps to a progress view; once the bundle lands on the source, the lanes appear automatically. This is an in-place alternative to [splitting a clip into separate stem tracks](/features/stem-separation) — both flows use the same models, but stems mode keeps everything on one track and one sample. Use stems mode when you want to mix the layers as a single instrument; use the track-split flow when you want to arrange them independently. ## Shortcuts These keys are specific to the Sample Editor sheet. The slice-audition letter keys follow the [Musical Typing](/shortcuts/musical-typing#audio-slices) layout. | Action | Shortcut | | -------------------------------------------------- | ------------------ | | Switch to Slices / Tempo / Stems mode | `⌘1` / `⌘2` / `⌘3` | | Step through slices | `←` / `→` | | Extend the slice selection | `⇧←` / `⇧→` | | Clear the slice selection | `↑` / `↓` | | Nudge marker or grid offset 1 ms | `⌘←` / `⌘→` | | Fine-nudge by a single sample | `⌥⌘←` / `⌥⌘→` | | Zoom out / in | `⌥←` / `⌥→` | | Reset zoom to 1× | `⌥↑` | | Drop marker at playhead (while auditioning) | `Return` | | Toggle looping preview (selection or whole sample) | `Space` | | Remove selected marker | `Backspace` | | Close the editor | `Esc` | # Sample Library Source: https://docs.gridshift.studio/features/sample-library Index your sample folders, search by name or vibe, and swap samples on a track in real time — all from the keyboard. The **Sample Library** keeps a central, searchable index of every audio file in the folders you've added. The index powers two workflows that share the same keyboard-first entry point: * Name search through the Command Palette — find a sample and load it onto a track without leaving the keyboard. * **Smart Search** (optional) — an on-device audio model sorts your library by how close each sample *sounds* to the one you're working with, so you can audition alternatives by vibe, not filename. While playback is running, the arrow keys step through samples and each candidate is heard in place on the current track. Clip offsets, lengths, and positions do not change. ## Indexed folders Manage the library under `Gridshift → Settings → Samples`. The index itself lives in `~/Library/Application Support/Gridshift/library.db`. | Action | Description | | --------------- | ---------------------------------------------------------------- | | **Add Folder…** | Pick one or more folders. Subfolders are scanned recursively. | | **Rescan** | Force a full rescan for a specific folder. | | **−** (minus) | Remove a folder from the library. Files on disk are not touched. | Each row shows the folder's sample count and the time of the last scan. ### Supported formats | Format | Extensions | | -------- | --------------- | | **WAV** | `.wav` | | **AIFF** | `.aif`, `.aiff` | | **MP3** | `.mp3` | | **M4A** | `.m4a` | | **CAF** | `.caf` | | **FLAC** | `.flac` | | **OGG** | `.ogg` | ### Content-hash identification Every file is identified by a **content hash**, not by its path. That means: | Event | Result | | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | File moved or renamed | Automatically relinked on the next scan — project references keep working | | File deleted | The library entry stays until the folder is rescanned or removed; projects that reference the file warn about missing media on load | | File contents changed | Treated as a new sample | | Duplicate file in a second folder | Recognized as the same sample (only one library entry) | A file-system watcher keeps the index live. New files appear shortly after you drop them into an indexed folder, without a manual rescan. Manual tempo corrections are stored against the content hash too. When you set a source BPM or move the downbeat in the [Sample Editor](/features/sample-editor), Gridshift writes the correction to the library; the next project that loads the same audio picks it up automatically, unless that project already has its own value. Resetting both clears the stored correction. Corrections stay on the Mac that made them — they are not part of the iCloud annotation set below. Because identification is content-based, you can reorganize your sample folders freely. Projects that reference a moved sample pick it up automatically the next time Gridshift sees the file. ### Cross-device sync With iCloud enabled, the annotations you make on samples sync across your Macs: * Ratings, colors, and tags * Detected BPM and key * Transient markers Because samples are identified by content, these annotations follow the file rather than its location — rate a sample on one Mac and it's rated on every other Mac that has the same file indexed, even if you've organized your folders differently there. The list of indexed folders is per-Mac, since file paths don't translate across machines. Add folders once on each Mac you use. ## Sample search via Command Palette Open the picker with `⌥S` — Command Palette → **Add or Change Sample…** — while a sample or instrument track is selected. Step through results with `↑` / `↓`, commit with `Return`, or cancel and revert with `Escape`. On an instrument track the pick loads the built-in sampler. The list re-ranks as you type. Ranking combines several signals: | Signal | Effect | | ------------------------------ | ---------------------------------------------------------- | | **Exact / prefix / substring** | Direct filename matches rank highest | | **Fuzzy subsequence** | `khs` still finds `kick-hard-snap` | | **Folder-name boost** | Matches against ancestor folder names, decaying with depth | | **Recency** | Samples you've used recently rank higher (7-day half-life) | | **Favorites** | Starred samples appear in their own section at the top | ### Filter tokens Combine a query with `:` tokens to narrow the list: | Token | Filters to | | ----------------------------------------------------- | --------------------------------------------------------------- | | `:short` | Samples ≤ 2 seconds | | `:long` | Samples ≥ 10 seconds | | `:mono` | Single-channel files | | `:stereo` | Two or more channels | | `:drums`, `:kick`, `:snare`, `:hat`, `:clap`, `:perc` | Auto-classified drum categories | | `:vocal` | Vocals — matches files named vox, vocal, voice, chant, acapella | | `:bass`, `:synth`, `:fx`, `:loop` | Other categories | Categories are inferred heuristically from filename and parent-folder tokens. A file under `.../Kicks/808/deep.wav` picks up `drums` and `kick` automatically. Tokens stack. `kick :short :mono` returns only short, mono kicks. ## Smart Search Smart Search extends filename matching with **acoustic similarity**. Instead of relying on how files are named, Gridshift compares how they actually sound — using an on-device audio model. ### Enable Smart Search Smart Search is opt-in. Toggle it under `Settings → Samples → Smart Search`: Switch on **Smart sample search**. Gridshift downloads the audio and text models on first enable (around 170 MB combined), then runs a one-time indexing pass over your library in the background — Settings shows the progress for both. All processing runs on-device — no audio leaves your Mac. ### How you use it Smart Search activates automatically once enabled. The sample picker picks the right mode based on what you do: | Mode | Trigger | Behavior | | ------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Similarity browse** | Open the picker with an empty query, on a track that already has a sample | The library is sorted by acoustic similarity to the current sample — the top entry is the closest sonic match | | **Name and description search** | Type letters | Blends acoustic similarity to the track's current sample (0.7), filename match (0.2), and how close the typed words are to how the sample sounds (0.1). With no sample on the track, filename and description split evenly. | For drum replacement: open the picker on a snare track with nothing typed. Gridshift orders your library so the snares closest in character sit at the top — step through with `↑` / `↓` to audition alternatives quickly. ### Turn it off Switching the toggle off returns the picker to pure name-based search. If you re-enable Smart Search later, it picks up where it left off without re-downloading the model or re-indexing your library. ## Swap samples during playback The picker is designed for live, performative sample replacement. Clips keep their positions; only the underlying audio changes. Each step: * Swaps the sample on the track **immediately and audibly** during playback. * Leaves clip offsets, lengths, and positions untouched. * Plays a full-length audition of the highlighted sample — except when playback is already running *and* the track has audio clips, where the clip-level preview is enough on its own. Gridshift only creates a fresh waveform when you commit with `Return`; preview steps reuse the existing track in place. ### Edge cases | Case | Behavior | | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | New sample is shorter than a clip's internal offset | The clip plays past the sample's end. Gridshift still allows the swap so you can judge the result. | | No sample or instrument track selected | The picker shows an explanation ("Sample or Instrument Track Required") instead of an empty list. | | Track runs an AU instrument | The picker refuses with "AU Instrument Loaded" — remove the instrument first to load a sample into the built-in sampler. | | First scan still running | The picker shows "Indexing Your Sample Library…" until the scan finishes. | | Library is still empty | The picker shows "No Samples Indexed Yet" and points you at the Sidebar browser favorites to add a folder. | ### Change a sample without preview When you already know which file you want, two non-performative paths are also available: | Method | Description | | --------------- | ----------------------------------------------------------------------------------------------------------- | | **Inspector** | Click the sample name in the track [Inspector](/features/inspector) to open a Finder dialog. | | **Drag & Drop** | Drop an audio file from the [Browser](/features/inspector#browser) or Finder onto an existing sample track. | Both create a fresh sound source immediately, with waveform and transients generated up front — no preview / commit loop. ## Shortcuts The keys that drive the sample picker. The [Global Shortcuts](/shortcuts/global) reference has the complete grid of track and file operations. | Action | Shortcut | | -------------------- | --------- | | Open sample picker | `⌥S` | | Step through results | `↑` / `↓` | | Commit selection | `Return` | | Cancel and revert | `Escape` | | Command Palette | `⌘K` | # Return Tracks & Sends Source: https://docs.gridshift.studio/features/sends Route any sample or instrument track through one or more shared return buses with per-send level, pre/post-mix tap points, and an incoming-sends view on the return. A **Return track** is a shared bus that other tracks feed through a **send**. Use returns to share a reverb, delay, or parallel compression across many tracks — load the effect once on the return, then dial in how much each source pushes into it. ## Add a return track Press `⌥⇧⌘T` to add a return track. Returns also appear in the right-click menu of the Sidebar's empty area. New returns are inserted just above the **Master** bus and named `Return 1`, `Return 2`, … automatically. There is no limit on the number of returns. Returns carry the same effects chain, mix controls (gain, pan, mid/side, mono-below), metering, and [signal history](/features/mix#signal-history--metering) as any other track. Load plugins on them through the [Plugin Strip](/features/plugin-strip) — including [sidechain](/features/sidechain) sources. ## Create a send On any sample or instrument track, open the **Sends** section in the [Inspector](/features/inspector). One row appears per return in the project; rows are dimmed until they carry signal. To create the send, drag the row's slider above 0. The send starts at **Post-Mix** by default. To remove a send, drag the slider back to 0 — there is no separate "Remove" button. | Send row element | Behavior | | ------------------- | ----------------------------------------- | | Return name (label) | Click to jump to the return track | | Slider | 0 – 150 %, snaps at 100 % (unity) | | Percentage readout | Live value, including automation playback | Right-click a send row for: * **Send Pre-Mix** / **Send Post-Mix** — choose the tap point (see below). * **Automate Send Amount** — adds a new [automation lane](/features/automation) bound to the send level. * **Go to Track** — selects the return in the Sidebar and reveals it in the Inspector. ## Pre-Mix vs Post-Mix A send's **tap point** decides where in the source track's signal path the audio is picked up. | Tap point | Signal source | | ---------------------- | -------------------------------------------------------------------------------------------------------- | | **Post-Mix** (default) | After the source track's fader, pan, mid/side, and clipper/limiter. The send level rides with the fader. | | **Pre-Mix** | Before any of the source track's mix stage. Send level is independent of the source fader. | Use Post-Mix for typical "more reverb on this track" routing. Use Pre-Mix when you want the wet path to stay alive while the dry source is faded down, or to drive a parallel processor at a fixed level regardless of the fader. Muting the source does **not** silence its sends — the mute gate sits after both tap points. That's what makes soloing a Return a clean way to audition just the wet signal. ## Incoming Sends on the return Select a return track. Its Inspector adds an **Incoming Sends** section listing every track currently sending into it — one row per source, in track order. The rows mirror the source side exactly: * Slider with the same 0 – 150 % range and 100 % snap. * Right-click for **Send Pre-Mix** / **Send Post-Mix**, **Automate Send Amount**, and **Go to Track** (jumps to the source). * Drag to 0 to disconnect. This means you can balance a return's input mix from the return itself, without bouncing between tracks. The section is hidden when nothing is feeding the return. ## What can send where | Source track type | Can send to a return? | | ----------------- | ---------------------------------- | | **Sample** | Yes | | **Instrument** | Yes | | **Group** | Not yet — coming in a later update | | **Return** | No (would form a routing cycle) | Gridshift checks for routing cycles every time you create or change a send; sends that would close a cycle are refused. ## Automation "Automate Send Amount" from the right-click menu adds a new [automation lane](/features/automation) targeting the send level. The slider tracks the curve during playback. Automation lanes from either the source side or the return's incoming-sends side bind to the same underlying connection. ## Defaults and limits | Property | Default / Range | | ------------------------ | --------------------------------------------------------------------------------------- | | Send level on first drag | Whatever value you drag to (no send exists at 0) | | Tap point on creation | Post-Mix | | Send level range | 0 – 150 % (0 = silence, 100 % = unity, 150 % = +3.5 dB boost) | | Snap | 100 % (within a small radius around unity) | | Sends per source track | Unlimited (one row per return in the project) | | Returns per project | Unlimited | | Return clipping mode | **Limit** by default — parallel sums run hot, so the return is protected out of the box | # Sidebar Source: https://docs.gridshift.studio/features/sidebar The track list on the left — every track, group, and output bus in the project, always visible. The **Sidebar** sits on the left side of the main window and shows the **track list**: a hierarchical view of every track, [group](/features/track-grouping), and output bus in the project. It stays visible at all times — browsing samples, instruments, and effects all live in the [Inspector](/features/inspector) on the right, so the track list is never covered. Gridshift main window with the track list in the left sidebar Gridshift main window with the track list in the left sidebar The Sidebar has two regions. The track list at the top holds the tracks you arrange — sample, instrument, and group tracks — and is freely reorderable. A fixed **output bus** list is pinned below it, holding the buses that audio flows into. ## Track types Each row carries an icon for its type. The type also determines where the track lives and what it can do. | Type | Lives in | What it is | | -------------- | ------------ | -------------------------------------------------------------------------------------------------------------- | | **Sample** | Track list | Holds audio sample clips on the timeline. | | **Instrument** | Track list | Hosts an Audio Unit instrument, played by MIDI clips. | | **Group** | Track list | A sub-mix bus that contains other tracks. Shown as a folder-style header row, with no timeline row of its own. | | **Return** | Output buses | A shared bus fed by [sends](/features/sends) — load an effect once and push many tracks into it. | | **Master** | Output buses | The project's final stereo output. Always present; can't be deleted, renamed, or recolored. | Every project starts with a Master already in place. ## Groups A [group](/features/track-grouping) collects tracks into a sub-mix bus: the child tracks route their audio through it, so a group's [Mix Controls](/features/mix) and effects act on the summed signal. In the Sidebar a group appears as a folder-style header row with its child tracks nested beneath it. * **Group / ungroup** — select tracks and press `⌘G` to group them, `⇧⌘G` to ungroup. * **Collapse / expand** — use the disclosure triangle, or the `←` / `→` arrow keys when the row has focus, to fold a group's children out of the way. * **Nest** — groups can contain other groups, with no depth limit. * **Move in and out** — drag a track onto a group to add it, or out of one to remove it. See [Track Grouping](/features/track-grouping) for routing, color inheritance, and the full reference. ## Output buses Below the track list sits the bus list — the destinations audio flows into. Returns come first, with the Master pinned at the bottom. These rows can't be dragged into the arrangement; they're the downstream end of the signal path. * **Returns** — add one with `⌥⇧⌘T`, or from the right-click menu in the track list's empty area. New returns are named `Return 1`, `Return 2`, … and inserted just above the Master. See [Returns & Sends](/features/sends). * **Master** — the project's final output. It's always present and can't be deleted or renamed. The Master carries no Solo button — as the downstream-most node it's always audible. Returns are full participants in mute and solo. ## Working with tracks Each track row has inline toggles for **Mute** and **Solo**. Drag rows to reorder them or to move them into and out of groups. A **+** button at the bottom of the track list adds sample or instrument tracks. Right-click a row for **Duplicate Track** and **Delete Track**. The **Search** field at the top opens the [Command Palette](/features/command-palette) (`⌘K`) — the fastest way to run any command or jump to a track. The track list follows the macOS sidebar icon size preference; choosing **Small**, **Medium**, or **Large** updates row height, icon sizing, and text density together. ## Shortcuts The keys most useful while working in the Sidebar are below. The [Global Shortcuts](/shortcuts/global) reference has the complete grid, including track and inspector-tab focus. | Action | Shortcut | | ------------------------------- | ------------ | | Add sample track | `⌘T` | | New instrument track… | `⇧⌘T` | | Add return track | `⌥⇧⌘T` | | Group / ungroup selected tracks | `⌘G` / `⇧⌘G` | | Collapse / expand group | `←` / `→` | | Extend selection up / down | `⇧↑` / `⇧↓` | | Search / Command Palette | `⌘K` | # Sidechain Source: https://docs.gridshift.studio/features/sidechain Three sidechain modes — Audio, MIDI, and Trigger Impulse — with sample-accurate timing and configurable lookahead. Plugin strip sidechain panel showing source and mode selection Plugin strip sidechain panel showing source and mode selection **Sidechain** routes one track's signal to control a plugin on another track, through three modes: Audio, MIDI, and Trigger Impulse. Gridshift supports traditional audio sidechain routing as well as trigger-based modes. MIDI and Trigger Impulse modes use clip start positions and MIDI note-on events as triggers — since these positions are known ahead of time, there is no detection delay. ## Set up a sidechain Open a plugin in the [Plugin Strip](/features/plugin-strip) (click the plugin card to expand it). ## Modes | Mode | Description | | ------------------- | ------------------------------------------------------------------------------------------- | | **Audio** | Routes the source track's audio to the plugin's sidechain input bus | | **MIDI** | Sends MIDI note-on events at note and clip positions to the plugin | | **Trigger Impulse** | Generates synthetic audio impulses at note and clip positions to the plugin's sidechain bus | Available modes depend on the plugin's capabilities (sidechain bus, MIDI input) and the source track type. ## Lookahead MIDI and Trigger Impulse modes show a **Lookahead** slider (0–15 ms) that fires events early to compensate for plugin attack time. This works by looking ahead in the timeline — it does not add latency. ## Via MCP The same routing is available to AI assistants through the [`plugin_configure`](/features/mcp-server) tool. Set up classic kick→bass ducking in one call: ```json theme={null} { "track_name": "Bass", "plugin_slot_index": 0, "sidechain": { "mode": "trigger_impulse", "source_track_name": "Kick", "lookahead_ms": 5 } } ``` Modes accept `audio`, `midi`, `trigger_impulse`, or `none` (to disconnect). `audio` and `trigger_impulse` require the plugin to expose a sidechain input bus; the call returns a clear error otherwise. # Stem Separation Source: https://docs.gridshift.studio/features/stem-separation Split audio into individual stems using AI — separate vocals, drums, bass, and instruments. All processing runs locally on your Mac. **Stem Separation** splits an audio clip into individual stems — vocals, drums, bass, and instruments — using AI models that run locally on your Mac. Gridshift integrates third-party AI models for source separation. The specific algorithms may change over time as better models become available. ## Models | Mode | Model | Output stems | | ----------------- | -------- | -------------------------- | | **Song Stems** | HTDemucs | Vocals, Drums, Bass, Other | | **Drum Elements** | DrumSep | Kick, Snare, Cymbals, Toms | Models are downloaded on first use. All processing runs locally — no audio is uploaded. ## Separate a clip into stems Open the Command Palette (`⌘K`) and search for **"Separate"** or **"Split Clip into Stems"**. Choose **Song Stems** or **Drum Elements**. Stem separation only works on audio clips. If a MIDI clip is selected, the Command Palette will show a hint to select an audio clip instead. ## Output Gridshift creates a **group track** with one child track per stem, time-aligned with the original clip. The original clip remains unchanged. Each stem track is a regular sample track — you can apply effects, time-stretch, edit in Focus Mode, or use as a sidechain source like any other track. ## In-place stems in the Sample Editor If you want to mix the stems as a single instrument rather than arrange them independently, generate them inside the [Sample Editor](/features/sample-editor) instead. The Sample Editor's **Stems** mode bakes the same models against the current sample and exposes per-stem volume, mute, and solo controls on a stack of lanes — all on the original track. | Use this flow | When | | ------------------------------------- | --------------------------------------------------------------------------------------------------------- | | **Split Clip into Stems** (this page) | You want each stem on its own track for independent arrangement, effects, and routing | | **Stems** mode in the Sample Editor | You want to rebalance the parts inside one sample (e.g. lower the vocals on a loop) without adding tracks | # Time Stretching Source: https://docs.gridshift.studio/features/time-stretching Change the speed and pitch of audio independently, with four modes — Slice for drums, Complex for tonal material, Repitch for varispeed, and Off. **Time Stretching** changes the speed and pitch of audio independently, using one of four modes. ## Stretch on the Timeline Hold `⌘` and drag the right edge of an audio clip to stretch it. The audio is compressed or expanded to fit the new duration. The stretch rate is calculated automatically. You can also stretch clips from the keyboard: `⌃⇧⌘→` / `⌃⇧⌘↓` stretches slower (longer), `⌃⇧⌘←` / `⌃⇧⌘↑` stretches faster (shorter), and adding `⌥` to any of these makes a fine adjustment (1/4 of the normal step). Time stretch settings are also available in the Inspector for sample tracks. ## Modes | Mode | Best for | How it works | | ------- | ------------------------ | ------------------------------------------------------------------------------------------------------ | | Off | No processing needed | Audio plays at original speed and pitch | | Slice | Drums, percussion, loops | Repositions audio between transient markers — preserves attack and punch | | Complex | Vocals, melodies, pads | Spectral time/pitch processing (Signalsmith Stretch) with independent rate, pitch, and formant control | | Repitch | Quick speed changes | Varispeed resampling — changing speed also changes pitch, like a tape machine | ## Parameters ### Slice mode | Parameter | Range | Description | | --------- | ------------ | ---------------------------------------------------------- | | Rate | 0.25x – 4.0x | Playback speed | | Decay | 0.0 – 1.0 | Envelope decay per slice (0 = maximum decay, 1 = no decay) | ### Complex mode | Parameter | Range | Description | | -------------------- | -------------------- | -------------------------------------------------------- | | Rate | 0.25x – 4.0x | Playback speed | | Pitch | -24 to +24 semitones | Pitch shift independent of speed | | Formant | -24 to +24 semitones | Formant shift for creative voice and timbre manipulation | | Formant Preservation | On / Off | Preserve natural formant structure during pitch shift | | Tonality Limit | On / Off | Constrain pitch shifting to preserve tonal quality | ### Target BPM Instead of setting a rate manually, you can set a **target BPM** in the Inspector. Gridshift calculates the stretch rate automatically based on the source material's BPM. You can also override the detected source BPM if the automatic detection is off. ## Shortcuts The keyboard timestretch keys are below. The [Timeline Shortcuts](/shortcuts/timeline) reference has the complete grid. | Action | Shortcut | | ------------------------ | -------------------- | | Stretch slower (longer) | `⌃⇧⌘→` / `⌃⇧⌘↓` | | Stretch faster (shorter) | `⌃⇧⌘←` / `⌃⇧⌘↑` | | Fine adjustment | add `⌥` to any above | # Timeline Source: https://docs.gridshift.studio/features/timeline The central workspace for arranging, editing, and mixing in Gridshift. The **Timeline** is the central workspace. Tracks are stacked vertically, clips are arranged horizontally against a beat/bar ruler. Standard operations — drag, trim, split, copy, paste — work as expected. Timeline with multiple tracks showing audio and MIDI clips Timeline with multiple tracks showing audio and MIDI clips ## Track model Each track has a single sound source — either an audio sample or an Audio Unit instrument — followed by an effects chain. One source, one chain, one output. **Groups** act as summing buses for their child tracks. They appear in the sidebar track list but not as rows in the timeline — every other track gets a row, whether or not it holds clips. ## Zoom levels The timeline uses three fixed vertical zoom levels instead of free zoom: **Normal** (the default track height), **Compact** (`⌥↑`) for an arrangement overview at minimal height, and **Focus** (`⌥↓`) where a single clip expands for detailed editing. ## Focus Mode Double-click a clip or press `⌥↓` to enter [Focus Mode](/features/focus-mode). This opens inline editing for the piano roll, audio slice playback, and automation curves. Press `Escape` or `⌥↑` to return to the arrangement view. ## Looping A loop region repeats a section during playback. Toggle looping with `⌘L`. Use `⇧⌘L` to enable looping and zoom to the selected region. Looping is also used for [loop recording](/features/recording). ## Create and delete clips Double-click an empty area of a track to drop a new clip there — an empty 4-bar MIDI or automation clip, or the track's sample at its natural length. It stays in the arrangement view (no Focus Mode), mirroring double-click-to-create-a-note in the piano roll. `Enter` does the same at the edit cursor on the selected track. Mark a range first (drag across an empty area) and `Enter` sizes the new clip to exactly that range — on MIDI and automation tracks it makes an empty clip that wide, and on a sample track it trims the source to the range. `⌘`+click creates or *stamps* clips and supports drag-to-size: | Context | Result | | ------------------------------- | ----------------------------------------------------- | | No clip selected | Creates a new clip (empty MIDI or full-length sample) | | Clip selected, compatible track | Stamps a linked duplicate of the selected clip | Drag after a `⌘`+click to set the clip duration. New MIDI clips created with `⌘`+click automatically enter [Focus Mode](/features/focus-mode) for immediate editing. Right-click a clip to delete it. Right-click and drag to erase multiple clips in one gesture. ## Linked Clips Duplicating a clip with `⌘D` (or stamping one with `⌘`+click) keeps it **linked** to the original — editing the notes, the sample, the fades, or the gain on any copy updates them all. Use `⇧⌘D` to duplicate it **unlinked** instead. Select any one of a linked set and its siblings light up in the selection's fill, so you can see what an edit will carry to before you make it. See [Linked Clips](/features/linked-clips) for the full behavior. ## Clip gain and normalize Every audio clip carries its own gain value, independent of the track fader. Select one or more clips and press a number key to set the gain relative to that clip's own peak — `0` normalizes (peak reaches 0 dBFS), `1`–`9` scale that normalized peak down in 10% steps, and the key left of `1` mutes. Because each clip is measured independently, a mixed selection ends up at matching levels instead of sharing one global gain. MIDI clips take the number as an absolute gain instead — peak normalization has no meaning for velocity scaling. Time-stretched audio is measured across the full source span that actually plays, so sped-up drum loops normalize correctly. Boost is capped at +24 dB to keep very quiet tails from being amplified into walls of noise. Mute uses a dedicated flag, so unmuting restores the previous gain value. The number row does double duty: with no clip selected (or while recording) the same `1`–`0` keys retrigger and record the last note or slice you played at the chosen level. See [Number-Key Dynamics](/shortcuts/musical-typing#number-key-dynamics). This is separate from **Normalize Track Volume** (`⌥N`), which sets the track fader using live playback peak data. Track normalize needs playback to have happened; clip normalize measures the source file directly and works without playing first. ## Solo dimming When any track is soloed, non-soloed tracks are visually dimmed in the timeline. This makes it easy to see which tracks are active at a glance. The dimming applies to both clips and waveforms — soloed tracks keep their full brightness while everything else fades back. ## Grid and snapping The grid resolution adapts to the horizontal zoom level. All operations snap to the grid by default. Hold `Option` while dragging to snap to a fine grid — 1/8 of the current division, down to a floor of 1/128 beat. A horizontal clip drag eases onto its snap target instead of jumping to it. The glide only runs when the grid moved the clip further than the cursor moved, so a fast drag stays locked to the pointer. Run **Align Clips to Downbeat** from the Command Palette to slide each clip's audio onto the grid using the sample editor's downbeat. Clip positions and lengths stay put; it applies to the selected track and lands as one undo step. ## Groove A groove template shifts the timing grid to create swing or shuffle feels. Configure groove in the `Project` inspector tab (`⌘5`) under `Grid`: * **Groove** — 34 built-in presets across six categories: Swing, Triplet, Hip-Hop, Funk, Breakbeat, and Complex * **Amount** — 0–100% intensity of the groove offset See [Groove & Swing](/features/groove) for details. ## Shortcuts The most-used timeline keys are below. The [Timeline Shortcuts](/shortcuts/timeline) reference has the complete grid — arrow-key navigation, marquee selection, moving, timestretch, and every modifier combination. | Action | Shortcut | | ---------------------------------- | ------------- | | Toggle looping | `⌘L` | | Loop + zoom to selection | `⇧⌘L` | | Compact / Focus zoom | `⌥↑` / `⌥↓` | | Zoom in / out | `⌥→` / `⌥←` | | Create clip on empty area | Double-click | | Insert clip at cursor / range | `Enter` | | Create or stamp clip | `⌘`+click | | Duplicate — linked / unlinked | `⌘D` / `⇧⌘D` | | Select clips on track / in project | `⌘A` / `⇧⌘A` | | Extend selection from the cursor | Shift-click | | Unlink clip | `⌘I` | | Split at cursor | `⌘E` | | Quantize selection | `⌘U` | | Normalize clip gain | `0` | | Scale clip gain | `1`–`9` | | Mute clip | `` ` `` / `^` | | Normalize track volume | `⌥N` | # Track Grouping Source: https://docs.gridshift.studio/features/track-grouping Group tracks into sub-mix buses with shared effects, routing, and collapsible organization in the sidebar. A **group track** acts as a sub-mix bus. All child tracks route their audio through the group, so you can apply shared effects (e.g. a compressor across all drum tracks), control the group volume and pan as a whole, and use the group's [Mix Controls](/features/mix) on the summed signal. Select tracks and press `⌘G` to group them. Press `⇧⌘G` to ungroup. ## Visibility Group tracks appear in the sidebar track list but not on the timeline. Only the child tracks show clips on the timeline. Select the group track in the sidebar to access its Inspector and effects chain. ## Nesting Groups can contain other groups. There is no limit on nesting depth. ## Reordering Drag tracks in the sidebar to reorder them within or between groups. ## Color inheritance When a track has `Use Group Color` enabled in the Inspector, it follows the parent group's color automatically. # Project Versioning Source: https://docs.gridshift.studio/features/versioning Save and restore complete project snapshots with audio previews. Compare versions by listening before loading. **Project Versioning** saves complete project snapshots with an audio preview, so you can compare versions by ear before restoring one. ## Save a version Press `⇧⌘S` to save a versioned snapshot. Gridshift saves the complete project state and creates an audio bounce (AAC) for preview. Use `⌘S` for regular saves, `⇧⌘S` for versioned snapshots. Each version captures the full project state — tracks, clips, effects, automation, and all settings. The audio bounce lets you compare versions by ear without loading them. ## Version history Access versions from the `Project` inspector tab (`⌘5`). Each version shows its name, date, and a play button for the audio preview. Versions are stored inside the `.gsp` project bundle, so they travel with the project file — including when synced via iCloud. ## Preview and load a version Click the play button on any version to hear the bounce without loading it. This lets you quickly A/B between different arrangements or mixes. Click a version name to load it. Gridshift will prompt you to save current changes if needed. Version history is preserved when switching — you never lose access to other versions. ## Shortcuts The keys for saving and reaching version history. The [Global Shortcuts](/shortcuts/global) reference has the complete grid. | Action | Shortcut | | -------------------------- | -------- | | Save project | `⌘S` | | Save versioned snapshot | `⇧⌘S` | | Show Project inspector tab | `⌘5` | # Zero Latency Monitoring Source: https://docs.gridshift.studio/features/zero-latency-monitoring Bypass plugin delay compensation for live instrument monitoring — hear your input immediately, even with heavy plugin chains. When recording or playing instruments live, plugin delay compensation (PDC) can add noticeable latency between your input and what you hear. **Zero Latency Monitoring** bypasses PDC and temporarily disables high-latency plugins so live input is heard immediately. Bypassed plugins are shown with an orange tint in the plugin strip. ## Modes Access via `Settings → Audio` or the Command Palette (`⌘K` → **Zero Latency Mode**). | Mode | Behavior | | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | **Recording** | Bypasses latency plugins and PDC only while recording. This is the default. | | **Recording & Playing** | Bypasses latency plugins and PDC for the selected track at all times — during playback and recording. Useful for live performance. | | **Off** | Normal PDC behavior, no bypasses. | ## How it works When Zero Latency Monitoring is active: 1. **Plugin bypass** — All plugins with latency > 0 in the signal path (track inserts, parent groups, master bus) are temporarily bypassed. 2. **PDC bypass** — The track's mixer node skips the PDC delay buffer entirely. 3. **Clip compensation** — Clip playback positions are adjusted by the PDC offset so that recorded audio stays aligned with the rest of the session. Live MIDI and audio input always arrives with zero added latency. Only clip playback needs the read-position offset to stay in sync. ## Signal path scope The bypass applies to the full signal path of the monitored track: **Track Inserts** → **Parent Group Inserts** → **Master Bus Inserts** Any plugin with reported latency > 0 in this chain is temporarily bypassed. Plugins that are already user-bypassed are left unchanged. # Welcome to Gridshift Source: https://docs.gridshift.studio/introduction Gridshift is a keyboard-driven digital audio workstation for macOS, built with Swift and Metal for modern Macs. All functions are accessible via keyboard. ## Design principles All functions via keyboard. Play instruments, trigger samples, navigate, edit, mix. Optimized for computer-based production. Focused feature set. Minimal clicks, instant feedback. Audio Unit integration instead of bundled plugins. Swift and Metal tuned for modern Macs, with Apple Silicon recommended for best performance. ## Features 200+ commands with fuzzy search and customizable shortcuts. Edit clips inline — audio waveforms and MIDI piano roll expand in place. See and control your entire effects chain at a glance, with ALC and metering. Automate mixer controls and plugin parameters with editable curves. 38 groove presets that shift the grid, snapping, and playback — globally or per track. Three modes — Audio, MIDI, and Trigger Impulse. Zero latency. Duck any track from another's events with a hand-drawn shape. No plugin, no latency. Split audio into vocals, drums, bass, and more — all processed locally. Save snapshots with audio previews. Compare before restoring. Play MIDI from the computer keyboard. Scale, Piano or Drums layout. Record the audio output of any running app on your Mac. ## System requirements * **macOS 26** or later * **Apple Silicon or Intel** Mac with a Metal-capable GPU * **Recommended:** Apple Silicon (M1 or later) ## Quick links Learn the interface Explore features Learn shortcuts # Focus Mode Shortcuts Source: https://docs.gridshift.studio/shortcuts/focus-mode Edit MIDI notes in the Piano Roll and play audio slices in Focus Mode. **Focus Mode** opens a single clip for detailed editing — the Piano Roll for MIDI, slice playback for audio, and a curve editor for Automation. This page lists its keyboard and mouse shortcuts. ## Entry & exit Double-click a clip to enter Focus Mode for detailed editing: | Clip Type | Focus Mode | | ---------- | ----------------- | | MIDI | Piano Roll editor | | Audio | Slice playback | | Automation | Curve editor | | Action | Shortcut | | ------------------- | -------------------- | | Enter Focus Mode | `⌥↓` or double-click | | Exit Focus Mode | `Escape` or `⌥↑` | | Focus Next Clip | `Tab` | | Focus Previous Clip | `⇧Tab` | If the [clip picker](/features/linked-clips#the-clip-picker) is open, `Escape` closes it first and a second press exits Focus Mode. ## MIDI (Piano Roll) The Piano Roll uses the same modifier conventions as the main timeline, but applied to MIDI notes instead of clips. ### Modifier mapping The same modifier hierarchy applies, but to notes instead of clips: | Modifier | Timeline (Clips) | Piano Roll (Notes) | | -------- | ---------------- | --------------------- | | (none) | Cursor movement | Cursor movement | | `⇧` | Extend marquee | Extend marquee | | `⌘` | — | Navigate notes | | `⇧⌘` | — | Add note to selection | | `⌃⌘` | Move clips | Move notes | ### Note navigation #### Horizontal (←/→) | Modifier | Action | | -------- | ---------------------------------------------------------------- | | (none) | Move the cursor by one grid division (clears the note selection) | | `⇧` | Extend the marquee | | `⌘` | Select next/previous note (by start time) | | `⇧⌘` | Add note to selection | | `⌃⌘` | Move note(s) (1 grid division; `⌥` for a fine step) | #### Vertical (↑/↓) | Modifier | Action | | -------- | ------------------------------------------------------------ | | (none) | Move the cursor by one pitch row (clears the note selection) | | `⇧` | Extend the marquee | | `⌘` | Select note with higher/lower pitch | | `⇧⌘` | Add note to selection | | `⌃` | Transpose selected note(s) (1 octave) | | `⌃⌘` | Transpose note(s) (1 semitone) | `⌃↑` / `⌃↓` only apply in the MIDI piano roll and only when one or more notes are selected. They transpose by `±12` semitones, clamp pitches to the MIDI range `0...127`, participate in undo, and have no dedicated action outside piano roll focus mode. ### Note editing (keyboard) | Action | Shortcut | | -------------------------------------------- | ----------- | | Delete Notes | `⌫` | | Duplicate Notes | `⌘D` | | Select All Notes | `⌘A` | | Transpose Selected Notes by Octave | `⌃↑` / `⌃↓` | | Copy | `⌘C` | | Paste (at the clip start, offsets preserved) | `⌘V` | | Cut | `⌘X` | | Exit Piano Roll | `Escape` | ### Note editing (mouse) | Action | Result | | -------------------- | -------------------------- | | Click on note | Select note | | `⇧`-click on note | Add/remove from selection | | Double-click on note | Delete note | | Right-click on note | Delete note | | Right-click + drag | Eraser (delete multiple) | | Drag note | Move note (with grid snap) | | Drag note edge | Change duration | ### Creating notes | Action | Modifier | Result | | ------------------- | -------- | -------------------------- | | Click on empty area | (none) | Set cursor, start marquee | | Drag on empty area | (none) | Create marquee selection | | Click on empty area | `⌘` | Create new note | | Drag on empty area | `⌘` | Create note + set duration | **Brush mode** Hold `⌘` to enter brush mode. A ghost note appears under your cursor showing where the note will be placed. Click to create, or drag to set the note's duration. ### Musical Typing & slices Letter keys play MIDI notes or trigger audio slices without any modifier. See the dedicated [Musical Typing](/shortcuts/musical-typing) page for full keyboard layouts (Scale / Piano / Drums) and slice triggering. ### Slice definition Each slice starts at a transient marker, so N markers give N slices: * **Slice 0**: From the first transient to the second * **Slice 1**: From the second transient to the third * **Last slice**: From the last transient to the clip end Audio before the first transient is not a playable slice. Slices are defined by transient markers. Transient detection and marker editing live in the [Sample Editor](/features/sample-editor) (`⌥X`). Use `⇧⌘E` on the main timeline to split a clip at all transients, creating separate clips from each slice. ### Splitting at transients | Action | Shortcut | | ------------------------- | -------- | | Split Clips at Transients | `⇧⌘E` | This creates individual clips from each slice, useful for rearranging drum hits or creating variations. ## Automation (curves) The Automation Focus Mode uses the same modifier hierarchy for editing automation points on parameter curves. ### Point navigation | Action | Shortcut | | --------------------- | -------- | | Select next point | `→` | | Select previous point | `←` | When you reach the last point in a clip, pressing `→` jumps to the first point of the next automation clip. Similarly, `←` at the first point jumps to the previous clip. ### Cursor & marquee | Action | Shortcut | | -------------------------------- | -------- | | Cursor horizontal (1 grid) | `⌘←/→` | | Cursor vertical (1/32 value) | `⌘↑/↓` | | Cursor horizontal (fine) | `⌥⌘←/→` | | Extend marquee horizontal | `⇧⌘←/→` | | Extend marquee vertical | `⇧⌘↑/↓` | | Extend marquee horizontal (fine) | `⌥⇧⌘←/→` | Points within the marquee are automatically selected. ### Moving points | Action | Shortcut | | -------------------------------- | -------- | | Move horizontal (1 grid) | `⌃⌘←/→` | | Move vertical (1/32 value) | `⌃⌘↑/↓` | | Move horizontal (fine) | `⌃⌥⌘←/→` | | Move vertical (fine, 1/64 value) | `⌃⌥⌘↑/↓` | ### Point editing (keyboard) | Action | Shortcut | | ---------------------- | -------- | | Delete selected points | `⌫` | | Exit Automation Mode | `Escape` | ### Point editing (mouse) | Action | Result | | --------------------- | ------------------------- | | Click on point | Select point | | `⇧`-click on point | Add/remove from selection | | Double-click on point | Delete point | | `⌥`-click on point | Delete point | | Right-click on point | Open the curve-type menu | | Drag point | Move (with grid snap) | | `⌥`-drag point | Move (fine, no snap) | ### Creating points | Action | Modifier | Result | | -------------------------- | -------- | ---------------- | | Double-click on empty area | (none) | Create new point | | Click on empty area | `⌘` | Create new point | ### Step recording When Automation Focus Mode is active, recording is armed, and the transport is stopped, the number keys insert automation points directly at the cursor position: | Key | Value | | --- | ----- | | `1` | 10% | | `2` | 20% | | `3` | 30% | | `4` | 40% | | `5` | 50% | | `6` | 60% | | `7` | 70% | | `8` | 80% | | `9` | 90% | | `0` | 100% | After each keystroke, the cursor advances by one grid division automatically. If a point already exists at the cursor position (within a small tolerance), it is replaced. **Non-reassignable shortcut**: The `0–9` step recording keys are processed directly and are not part of the Command Palette system. They cannot be rebound: shortcuts are assigned in the Command Palette (`⌘K`, then `⌘S` on the selected command), and these keys are not palette commands. The same applies to clip volume keys (`1–9`, `0` on the main timeline), audio slice playback keys, the Sample Editor's transient / grid-offset nudge (`⌘←` / `⌘→`, with `⌥` for a single-sample step), and Musical Typing. ### Grid snapping * **Horizontal**: Points snap to the current grid (same as MIDI notes) * **Vertical**: Points snap to a 32-step grid (0%, 3.125%, 6.25%, … 100%) * **Option**: Fine mode — free positioning without grid snap # Global Shortcuts Source: https://docs.gridshift.studio/shortcuts/global Transport, file operations, and app-wide navigation shortcuts. App-wide keyboard shortcuts for transport, file operations, track management, and navigation. ## Playback | Action | Shortcut | | ------------------- | ------------- | | Play/Pause | `Space` | | Play from Selection | `⇧Space` | | Toggle Recording | `⇪ Caps Lock` | ## Looping | Action | Shortcut | | -------------------------- | -------- | | Set Loop to Marquee | `⌘L` | | Set Loop to Marquee + Zoom | `⇧⌘L` | The loop region is defined by the current marquee selection. Use `⇧⌘L` to simultaneously set the loop and zoom to fit the loop region in view. ## File operations | Shortcut | Action | | -------- | ------------------------------ | | `⌘N` | New Project | | `⌘O` | Open Project | | `⇧⌘O` | Open Recent Project | | `⌘S` | Save | | `⇧⌘S` | Save Version (with AAC bounce) | | `⇧⌘B` | Bounce to Disk | | `⌘P` | Project Overview | ## Tracks | Shortcut | Action | | -------- | ---------------------------------------------------------------- | | `⌘T` | Add Sample Track | | `⇧⌘T` | New Instrument Track… — creates the track and asks what plays it | | `⌥⇧⌘T` | Add [Return Track](/features/sends) | | `⌘G` | [Group](/features/track-grouping) selected tracks | | `⇧⌘G` | Ungroup selected tracks | | `⌘R` | Rename selected track | | `⌘⌫` | Delete selected tracks | | `⌥⌘↑` | Move selected track up | | `⌥⌘↓` | Move selected track down | | `⌘F` | Search tracks | | `⌥S` | Add or change sample on selected track | ## Inspector tabs Each shortcut switches the Inspector to that tab, opening the Inspector if it's hidden. | Shortcut | Action | | -------- | ---------------- | | `⌘1` | Show Tracks | | `⌘2` | Show Browser | | `⌘3` | Show Instruments | | `⌘4` | Show Effects | | `⌘5` | Show Project | ## Focus areas | Shortcut | Action | | -------- | ------------------ | | `⌘0` | Focus Timeline | | `⌘6` | Focus Plugin Strip | ## View | Shortcut | Action | | -------- | --------------- | | `?` | Toggle Info Bar | ## Monitoring | Shortcut | Action | | -------- | ---------------------------------------------------- | | `⌥M` | Switch [monitor profile](/features/monitor-profiles) | | `⌥⇧M` | Open the active profile's monitor plugin | ## Command Palette | Shortcut | Action | | -------- | -------------------- | | `⌘K` | Open Command Palette | ## Undo & redo | Action | Shortcut | | ------ | -------- | | Undo | `⌘Z` | | Redo | `⇧⌘Z` | ## Ruler interaction | Action | Result | | -------------- | --------------------- | | Click on Ruler | Set playhead position | # Musical Typing Source: https://docs.gridshift.studio/shortcuts/musical-typing Play instruments and trigger slices from your computer keyboard. When a MIDI or Instrument track is focused, letter keys play notes without any modifier. The **Keys Layout** picker in the Inspector switches between three layouts, each optimized for a different use case. Hardware MIDI controllers are unaffected by this setting — they always send the notes you play. ## Scale — for melodies and chords Each key plays a scale degree in the selected key. Only notes in the scale sound, which makes it easy to stay in key while improvising. ``` Upper row (+1 octave): Q W [E] R T Y U I O P Middle row (base): A S [D] F G H J K L Lower row (-1 octave): [C] V B N M ↑ Root aligned ``` * Three rows across 3 octaves. Root notes aligned vertically: **C**, **D**, **E**. * Change the key and scale globally in the Transport Bar. * Default layout for new instrument tracks. ## Piano — chromatic layout Piano-style layout across two octaves. White keys on the middle row, black keys on the upper row. ``` Upper row (black keys): [Q] W E [R] T Y [I] U O P C# D# F# G# A# C# D# Middle row (white keys): A S D F G H J K L ; ' C D E F G A B C D E F Lower row: (inactive) ``` `Q`, `R`, `I` are dead keys (no black key between E–F and B–C). ## Drums — pad grid 26 sequential chromatic pads across every letter key. Designed for drum plugins like Loopcloud Drum, Battery, or Kontakt kits, which map pads chromatically starting at MIDI 36 (General MIDI Bass Drum). ``` Upper row: Q W E R T Y U I O P (MIDI 52–61) Middle row: A S D F G H J K L (MIDI 43–51) Lower row: Y X C V B N M (MIDI 36–42) ↑ MIDI 36 = GM Bass Drum ``` * `Y`/`Z` (bottom-left) always triggers MIDI 36 — your kick drum. * Layout is fixed chromatic and ignores the selected key/scale. * If your kit has more than 26 pads, use **Musical Typing: Octave Up/Down** from the Command Palette to page through the kit. * Gridshift automatically selects this mode when you load a drum plugin. ## Audio slices When an audio track with transients is focused, the same letter-key layout triggers slices directly — this is separate from Keys Layout and always active for audio clips. ``` Upper row: Q W E R T Y U I O P (slices 16–25) Middle row: A S D F G H J K L (slices 7–15) Lower row: Y X C V B N M (slices 0–6) ``` When there are more than 26 slices, use **Musical Typing: Octave Up/Down** from the Command Palette to switch pages. Playback is monophonic — a new slice stops the previous one. ## Number-key dynamics The letter keys choose *what* plays (the pitch or the slice); the number row chooses *how hard*. With **no clip selected**, the `1`–`0` keys retrigger the last note or slice you played on the focused track at a fixed level. On an instrument track the level becomes the MIDI velocity; on a sample track it scales the slice gain. | Key | Level | Instrument velocity | Sample gain | | --- | ----- | ------------------- | ----------- | | `1` | 10 % | 13 | 0.1 | | `2` | 20 % | 25 | 0.2 | | `3` | 30 % | 38 | 0.3 | | `4` | 40 % | 51 | 0.4 | | `5` | 50 % | 64 | 0.5 | | `6` | 60 % | 76 | 0.6 | | `7` | 70 % | 89 | 0.7 | | `8` | 80 % | 102 | 0.8 | | `9` | 90 % | 114 | 0.9 | | `0` | 100 % | 127 | 1.0 | * The "last played" note or slice comes from your most recent letter-key press on that track. Play a note once with the letter keys, then hammer the number row to repeat it at different dynamics. With no prior play this session, the trigger falls back to slice 0 (sample) or the scale root (instrument). * Hold a number key to sustain; release to stop. Auto-repeat sustains the trigger rather than re-firing it. * The mute key (`` ` `` / `^`) does not trigger — a velocity-0 note would be a Note Off. ### Recording dynamics from the number row This is not only for previewing. Arm recording and the same press *lays down* a MIDI note or a slice clip at the chosen level — so you can punch in a dynamic drum or bass pattern straight from the number row, no controller needed. While recording, the number-key trigger always wins, even if a clip happens to be selected. The same keys do two things depending on selection. With **no clip selected** (or while recording) they trigger and record notes/slices as above. With **one or more clips selected** (and not recording) they instead edit the selected clips' gain — see [Clip Gain & Normalize](/shortcuts/timeline#clip-gain--normalize). Selection decides which mode runs. ## Octave & configuration Change octave via Command Palette: **Musical Typing: Octave Up/Down** (assignable in `Settings → Shortcuts`). Range 1–7. Set **Key**, **Scale**, and **Octave** in the Transport Bar. Key and Scale only apply to the **Scale** layout — Piano and Drums ignore them. Musical typing is disabled during text input and works across keyboard layouts (QWERTY, QWERTZ, AZERTY). # Keyboard Shortcuts Source: https://docs.gridshift.studio/shortcuts/overview Reference for all keyboard shortcuts. Gridshift is keyboard-driven, with a consistent modifier hierarchy across contexts. These tables cover the shortcuts, grouped by where you use them. ## Quick reference Transport, Files, Navigation Clips, Selection, Zoom Piano Roll, Audio Slices ## Modifier key philosophy Gridshift uses a consistent modifier hierarchy throughout the application. Once you learn these patterns, you can predict how shortcuts work across different contexts. | Modifier | Purpose | | ------------ | ----------------------------------------------- | | **(none)** | Cursor/Marquee movement | | **⇧ Shift** | Extend Marquee selection | | **⌘ Cmd** | Object navigation (select clips, notes, points) | | **⇧⌘** | Multi-selection (add to selection) | | **⌃⌘** | Move objects (clips, notes, points) | | **⌃⇧⌘** | Timestretch objects | | **⌥ Option** | Zoom & fine adjustments | **Option = Fine Mode** When combined with other modifiers, Option makes movements finer (1/8 grid instead of full grid). This works for cursor movement, marquee extension, and object positioning. ## Most used shortcuts | Action | Shortcut | | ------------------------------- | ------------------------ | | Play/Pause | `Space` | | Toggle Recording | `Esc` / `⇪ Caps Lock` | | Save | `⌘S` | | Undo | `⌘Z` | | Redo | `⇧⌘Z` | | Split at Cursor | `⌘E` | | Slice at Position | `⌘+Right-click` | | Octave Transpose Selected Notes | `⌃↑` / `⌃↓` (Piano Roll) | | Normalize Track Volume | `⌥N` | | Toggle Info Bar | `?` | | Delete Selection | `⌫` | | Duplicate | `⌘D` | | Select All | `⌘A` | # Timeline Shortcuts Source: https://docs.gridshift.studio/shortcuts/timeline Navigate, select, edit, and arrange clips on the Timeline. Keyboard and mouse shortcuts for working in the **Timeline** — moving the cursor, selecting and editing clips, and arranging them. ## Arrow key navigation Arrow keys are the foundation of keyboard navigation. Their behavior changes based on modifier keys. ### Horizontal (←/→) | Modifier | Action | | -------- | --------------------------------- | | (none) | Move cursor (1 grid division) | | **⇧** | Extend marquee | | **⌘** | Select next/previous clip | | **⇧⌘** | Add clip to selection | | **⌃⌘** | Move selected clips | | **⌃⌥⌘** | Move selected clips (fine) | | **⌃⇧⌘** | Timestretch selected clips | | **⌃⌥⇧⌘** | Timestretch selected clips (fine) | | **⌥** | Zoom in/out | ### Vertical (↑/↓) | Modifier | Action | | -------- | ------------------------------------ | | (none) | Move cursor to track above/below | | **⇧** | Extend marquee vertically | | **⌘** | Select clip on track above/below | | **⇧⌘** | Add clip on other track to selection | | **⌃⇧⌘** | Timestretch selected clips | | **⌃⌥⇧⌘** | Timestretch selected clips (fine) | | **⌥** | Zoom level (↓=in, ↑=out) | ## Cursor movement (keyboard) | Action | Shortcut | | -------------------------- | -------- | | Move Cursor Right (1 grid) | `→` | | Move Cursor Left (1 grid) | `←` | | Move Cursor to Track Above | `↑` | | Move Cursor to Track Below | `↓` | ## Clip selection (keyboard) | Action | Shortcut | | ------------------------------ | -------- | | Select Next Clip | `⌘→` | | Select Previous Clip | `⌘←` | | Select Clip on Track Above | `⌘↑` | | Select Clip on Track Below | `⌘↓` | | Add Next Clip to Selection | `⇧⌘→` | | Add Previous Clip to Selection | `⇧⌘←` | | Add Clip Above to Selection | `⇧⌘↑` | | Add Clip Below to Selection | `⇧⌘↓` | ## Clip selection (mouse) | Action | Modifier | Result | | ------------------------- | -------- | ------------------------------------------------------- | | Click on clip | (none) | Select clip | | Click on clip | `⇧` | Add/remove from selection | | Click on clip | `⌘` | Set cursor position | | Click on empty background | `⇧` | Extend the marquee from the cursor to the clicked point | | Double-click | (none) | Enter Focus Mode | ## Moving clips | Action | Shortcut | | ------------------- | -------- | | Move Right (1 grid) | `⌃⌘→` | | Move Left (1 grid) | `⌃⌘←` | | Move Right (fine) | `⌃⌥⌘→` | | Move Left (fine) | `⌃⌥⌘←` | ## Timestretch | Action | Shortcut | | ------------------------- | ------------------ | | Timestretch Slower | `⌃⇧⌘→` or `⌃⇧⌘↓` | | Timestretch Faster | `⌃⇧⌘←` or `⌃⇧⌘↑` | | Timestretch Slower (fine) | `⌃⌥⇧⌘→` or `⌃⌥⇧⌘↓` | | Timestretch Faster (fine) | `⌃⌥⇧⌘←` or `⌃⌥⇧⌘↑` | You can also timestretch with the mouse by holding `⌘` and dragging the **trailing pill** of an audio clip (the handle at its right edge). ## Clipboard operations | Action | Shortcut | | --------------------------------------------------- | --------------- | | Cut | `⌘X` | | Copy | `⌘C` | | Paste (at cursor) | `⌘V` | | Duplicate (linked) | `⌘D` | | Duplicate Unlinked | `⇧⌘D` | | Unlink Clip | `⌘I` | | Link Identical Clips | `⇧⌘I` | | Duplicate Replace | Command Palette | | Delete selection / Trim previous division at cursor | `⌫` | | Select All Clips in Track | `⌘A` | | Select All Clips | `⇧⌘A` | | Deselect | `Escape` | `⌘D` keeps the copy [linked](/features/linked-clips) to the original; `⇧⌘D` duplicates it unlinked. **Unlink Clip** is `⌘I` and its mirror **Link Identical Clips** (`⇧⌘I`) re-joins copies that are exactly the same; **Duplicate Replace** has no default shortcut — run it from the [Command Palette](/features/command-palette) or assign your own. ## Splitting | Action | Shortcut | | ----------------------- | -------------------------------------------------------------------------------- | | Split at Cursor/Marquee | `⌘E` | | Split at Transients | `⇧⌘E` | | Slice at Position | Right-click a clip with `⌘` held (or right-click below the header in Focus Mode) | **Split Behavior** * With a **marquee selection**: Splits at both marquee boundaries * With **clips selected** (no marquee): Splits each clip in half * **Split at Transients** creates separate clips at each detected transient marker * **Mouse slice:** `⌘`+Right-click a clip to slice it at the pointer. A bare right-click **deletes** the clip. (In Focus Mode, right-clicking below a clip's header slices without `⌘` — and never deletes.) ## Quantize | Action | Shortcut | | ------------------ | -------- | | Quantize Selection | `⌘U` | ## Marquee selection The marquee selects a time range across tracks. ### Creating a marquee | Action | Modifier | Result | | -------------------------- | ---------- | ------------------------------------------------ | | Drag on empty area | (none) | Create marquee | | Shift-click on empty area | `⇧` | Extend the existing marquee to the clicked point | | Drag on a clip | `⌘` | Create marquee within clip | | Drag below a clip's header | Focus mode | Create marquee within clip | ### Extending a marquee (keyboard) | Action | Shortcut | | --------------------- | -------- | | Extend Right | `⇧→` | | Extend Left | `⇧←` | | Extend to Track Above | `⇧↑` | | Extend to Track Below | `⇧↓` | ### Bar selection | Action | Shortcut | | -------------------- | -------- | | Expand Bar Selection | `⇧⌘.` | | Shrink Bar Selection | `⇧⌘,` | ## Creating & deleting clips | Action | Modifier | Result | | -------------------------------------- | ---------- | ---------------------------------------------------------- | | Double-click on empty space | (none) | Create new clip at the clicked spot | | `Return` | (none) | Insert clip at the edit cursor (or fill the marquee range) | | Click on empty space | `⌘` | Create new clip | | Right-click on clip | (none) | Delete clip | | Right-click on clip | `⌘` | Slice at hover position | | Right-click below a clip's header | Focus Mode | Slice at hover position | | Right-click a clip, then keep dragging | (none) | Eraser mode (delete every clip the pointer crosses) | ## Zoom ### Keyboard | Action | Shortcut | | ---------------- | -------- | | Zoom In | `⌥→` | | Zoom Out | `⌥←` | | Enter Focus Mode | `⌥↓` | | Exit Focus Mode | `⌥↑` | ### Zoom presets | Action | Shortcut | | ----------------- | -------- | | Zoom to Selection | `⌥1` | | Zoom to Project | `⌥2` | ### Mouse zoom | Action | Modifier | Result | | ----------------- | -------- | ------------------------- | | Scroll | (none) | Horizontal scroll | | Scroll | **⇧** | Vertical scroll | | Scroll | **⌥** | Zoom (centered on cursor) | | Drag vertically | **⌥** | Zoom (anchor under mouse) | | Drag horizontally | **⌥** | Scroll timeline | **Intuitive Zoom Tool** Hold Option to enter zoom mode. Drag vertically to zoom with the anchor point staying fixed under your mouse. Drag horizontally to scroll the timeline. ## Mouse interaction on clips **A clip is a hand.** Press it anywhere and you drag it — there is no invisible boundary inside the clip to find, and so none to misclick. Hold **⌘** and the pointer becomes an arrow: now a click sets the timeline cursor and a drag makes a marquee, anywhere on the clip. **Hover a clip and its grips appear.** A *pill* at each side resizes it, and — on audio clips wide enough — a small *grip* at each top corner pulls a fade. Nothing about a click changes on hover; the chrome only shows you where the grips are. The pills sit a few points **inside** the clip's edge, which leaves the clip's actual start and end free. That is the point: ⌘-clicking the boundary itself is the only way to put the timeline cursor exactly on it. **Focus mode inverts this, along a drawn line.** Every clip on the focused track carries a **header** — a ledge at its top, about a compact clip tall, with a shadow falling from its lower edge onto the content sliding beneath it. Press the header to drag the clip (everything a bare press does in the arrangement); press anywhere **below** it to edit — set the cursor, start a marquee, work the piano roll or the automation curve — no ⌘ needed. Focus mode is the view you enter *in order to* work inside a clip, so the precision click is the default there and moving is what the header is for. | Action | Modifier | Result | | ----------------------------------- | ---------- | ----------------------------------- | | Click on clip | (none) | Select clip | | Click on clip | **⇧** | Add/remove from selection | | Drag anywhere on a clip | (none) | Move clip | | Click on a clip | **⌘** | Set cursor / start marquee | | Click below a clip's header | Focus mode | Set cursor / start marquee | | Drag a clip's header | Focus mode | Move clip | | Drag a side pill | (none) | Resize clip | | Drag the trailing pill | **⌘** | Timestretch clip | | Drag a top-corner grip | (none) | Fade in / out (audio) | | Click the clip's exact start or end | **⌘** | Put the cursor on the clip boundary | The ghost cursor appears whenever you are in cursor mode over a clip — that is, while ⌘ is held. Right-click follows the same rule: a bare right-click deletes the clip, ⌘+right-click slices it. In Focus Mode, right-clicking below a header slices without ⌘ — and never deletes. **Resize** lives on the pills, not on the clip's edge. Hold ⌘ on the **trailing** pill to timestretch instead. ⌘ over the *leading* pill yields to the cursor — ⌘ means "get out of the way", everywhere except that one grip. ## Track actions | Action | Shortcut | | -------------------------- | -------- | | Add Sample Track | `⌘T` | | New Instrument Track… | `⇧⌘T` | | Add or Change Sample | `⌥S` | | Load Instrument or Sample… | `⌥I` | | Add Effect | `⌥E` | | Add Ducking | `⌥D` | | Rename Track | `⌘R` | | Group Selected Tracks | `⌘G` | | Ungroup Selected Track | `⇧⌘G` | | Delete Selected Tracks | `⌘⌫` | | Toggle Mute | `⇧M` | | Toggle Solo | `⇧S` | | Normalize Track Volume | `⌥N` | | Move Track Up | `⌥⌘↑` | | Move Track Down | `⌥⌘↓` | | Search Tracks | `⌘F` | | Connect Automation Track | `⌥A` | | Flatten Track | `⌥F` | | Bounce Track or Selection | `⌘B` | ## Clip gain and normalize Number keys set the gain of selected audio clips relative to each clip's own peak level. `0` normalizes the selection — every clip is boosted so its loudest sample reaches 0 dBFS. `1`–`9` scale that normalized peak down in 10 % steps, so two clips of different original loudness end up at matching levels. The key left of `1` (`^` on German / ISO layouts, `` ` `` on US / ANSI layouts) mutes the selected clips. Mute is a separate flag on the clip and muting never touches the gain value, so any of `1`–`9` or `0` unmutes and sets the new level in one press. | Key | Action | | ------------- | ------------------------------ | | `` ` `` / `^` | Mute selected clips | | `1` – `9` | 10 % – 90 % of normalized peak | | `0` | Normalize (peak → 0 dBFS) | Each clip is measured independently, so normalizing a mixed selection levels them all to the same ceiling instead of applying one shared gain. MIDI clips take the number as an absolute gain instead — peak normalization has no meaning for velocity. Time-stretched audio is measured across the full source span that is actually played, not the visual clip length, so sped-up loops normalize correctly. Boost is capped at +24 dB to keep very quiet tails from being amplified into walls of noise. These keys are handled via direct key events rather than the command system, so they cannot be reassigned through the Command Palette. Number-key gain changes do **not** propagate to linked clip siblings — the selection you addressed is exactly the selection that changes. Use the Inspector gain slider if you want linked propagation. Editing gain is only half of what the number row does. With no clip selected (or while recording), the same keys retrigger — and record — the last note or slice you played at the chosen level. See [number-key dynamics](/shortcuts/musical-typing#number-key-dynamics). ## Track clip mode and ceiling These drive the selected track's built-in clipper/limiter — the same controls as the Inspector's Clip section — straight from the keyboard. They sit on the number row and the two keys right of `0`, all held with Control (`⌃`): the same physical keys as bare [clip gain](#clip-gain--normalize), one modifier up. Because they need only a selected *track* (not a selected clip), the two layers never clash. ### Clip Mode Hold **`⌃`** and tap a key on the number row to pick the clipping curve directly. The key left of `1` (`^` on German / ISO layouts, `` ` `` on US / ANSI layouts) sets **None** (clipper off); `1`–`0` walk the ten curves in order — the same key positions as the bare row's `` ` `` mute, `1`–`9`, `0`. | Key (with `⌃`) | Clip Mode | | -------------- | ----------------- | | `` ` `` / `^` | None (off) | | `1` | Hard | | `2` | Hard (Edge) | | `3` | Hard (Erosion) | | `4` | Quintic | | `5` | Cubic | | `6` | Hyperbolic Tan | | `7` | Algebraic | | `8` | Arctangent | | `9` | Limit | | `0` | Limit (Lookahead) | ### Ceiling The two keys right of `0` set the clip ceiling — `⌃=` raises, `⌃-` lowers, the same louder/quieter direction as the bare volume keys. Add `⌥` for fine steps. | Key | Action | | ------------- | ---------------------- | | `⌃=` / `⌃-` | Ceiling ±1 dB | | `⌃⌥=` / `⌃⌥-` | Ceiling ±0.1 dB (fine) | The clip modes show their `⌃`-key inline under **Change Clip Mode** in the Command Palette, where each can be rebound; the cycling commands **Track Clip Mode — Next / Previous** remain too, mainly for hardware encoders. Ceiling appears as **Track Ceiling …**. Shortcut labels follow your keyboard layout, so `⌃=` shows as the glyph actually printed on that key. ## Inspector controls The Inspector panel shows mix controls for the selected track. ### Reset to default | Action | Result | | ----------------------------------- | ---------------------- | | `⌥`-click or right-click any slider | Reset to default value | **Default Values:** * **Volume**: 0 dB (unity gain) * **Pan**: Center * **Mid/Side**: 1.0 (unity)