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

# Controller Profiles

> Maps a whole MIDI controller in one guided pass into a named per-device profile that follows the focused track and syncs across your Macs. Open Settings ▸ MIDI and click Create Profile for your device.

## Create a profile

Press `⌘,`, choose **MIDI** and click **Create Profile for** *your controller's name*… next to your controller. For each step, press the button or slowly turn the knob or encoder; **Skip** passes on one control and **Skip Rest** jumps to the end. Name the profile and press **Save Profile**.

## Drive the focused track

Select a track and turn the Volume or Pan knob. Select another track, and the same knob rides that one.

## Browse without the keyboard

Turn the **Navigation** encoder to select tracks. Press **Browse: open / confirm** to open the Command Palette, turn the encoder to scroll to a command, and press it again to run it.

## Choose a profile for a device

In `Settings ▸ MIDI`, under **Connected MIDI Devices**, pick **Auto-detect**, **No profile** or a specific profile in the device's picker.

## Change or remove a profile

Under **Installed Profiles**, the pencil button changes or removes single controls. The trash button deletes your own profile and asks first.

## Good to know

* **The profile turns on by itself whenever that controller is connected**, and only then. Its knobs ride the track you are on and its buttons run transport and edit commands.
* **Everything acts on the focused track**: the selected track, or in [Focus Mode](/edit/focus-mode.md) the focused clip's track. Knobs map roles, not fixed parameters.
* **Use a profile to set a controller up once; use [MIDI Bindings](/controllers/midi-bindings.md) for a one-off**, such as "this knob drives that plugin's cutoff". An explicit binding always wins over the same control in a profile, so you can override one button without editing the profile.
* **Only touch the controller you are mapping.** While the wizard is open, input from all MIDI devices is captured, so nothing leaks through to instruments or bindings.
* **Profiles live in [iCloud](/sync/icloud.md).** A profile made on one Mac appears on your others, even one that is already open.

> **Details**
>
> * Any class-compliant controller works: anything that appears as a standard MIDI device. No vendor scripts, no config files. Every connected controller is listed under **Connected MIDI Devices**.
> * A listening… counter runs while the wizard reads a turn. The step marks the control with a green check and its name, for example `CC 70 ch1 · knob`, and moves on. **Back** redoes the previous step.
> * The essentials come first, then an optional block of extras. **Skip Rest** works once you reach the extras.
> * The wizard tells an endless encoder (relative) from a fixed-range knob (absolute) on its own; either kind works. If a device fools it, press **Back** and redo the step.
> * The summary shows how many controls were mapped; the name defaults to the device name. After **Save Profile** the device's picker shows the profile, its row reads **N binding(s) active**, and the profile appears under **Installed Profiles** with an **Active** badge.
> * Re-running **Create Profile…** replaces the device's profile of the same name, so refining a mapping is running the wizard again.
> * A Send number is a row, not a Return: Send 3 is the third row of the Inspector's [Sends](/mix/sends-and-returns.md) section, so a knob means the same on every track. Turning up a Send creates the send, as dragging the idle slider does. Knobs beyond the project's Returns come alive when a Return is added; the eight Send steps come last, so **Skip Rest** passes them at once.
> * The Stereo width knob follows the track's own reading: width percentage, or mid/side balance if the stereo row is set to Mid/Side. Profiles made before this step mapped separate Mid and Side knobs; both now drive the stereo control.
> * The Navigation encoder is context-aware: with nothing open, right selects the next track and left the previous one; with the [Command Palette](/work-fast/command-palette.md) or a picker open, it scrolls that list. **Browse: back / close** steps back a level or closes the palette.
> * **Connect automation track** opens the automation picker for the last-touched parameter; browse it with the encoder and confirm to bind. An optional **Cursor jump** encoder moves the edit cursor by grid steps.
> * The device row reads **N binding(s) active** or **Routes as plain MIDI**, and notes **N ports** when a controller exposes several (DAW / MIDI / plugin ports). A profile applies across all of a device's ports.

> **Bindings or a profile?**
>
> | | 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 |
> | Buttons run | Any single command you pick | A fixed set of transport, edit and navigation commands |
> | Stored as | Command bindings (global) + parameter bindings (per project) | One named profile per device |
> | Turns on | Always | Whenever that device is connected |
>
> When a control arrives, Gridshift resolves it in this order: the wizard (only while it is open, so setup never fires anything); MIDI Learn command bindings, then learned parameter bindings; the device's controller profile; the focused instrument, which plays it as ordinary MIDI.

> **Controls a profile maps**
>
> | | Control | Does |
> | - | - | - |
> | **Essential** | Play / Stop, Record, Loop, Undo buttons | Transport and edit |
> | **Essential** | Volume, Pan knobs | The focused track's mixer |
> | **Essential** | Navigation encoder | Selects tracks: right next, left previous; scrolls the palette or a picker when open |
> | Optional | Shift button | Hold it while mapping a later control to give that control a second assignment |
> | Optional | Mute, Solo, Quantize, Redo, Metronome, Octave up / down | Focused track and edit |
> | Optional | Browse open / confirm, Browse back / close, Connect automation track | Navigation |
> | Optional | Cursor forward / backward buttons, Cursor jump encoder | Move the edit cursor by grid steps |
> | Optional | Dynamic knob | The plugin parameter you touched last |
> | Optional | Stereo width, Mono-below cutoff, Ceiling, Mix-filter knob, Mix-filter mode selector, Clip-mode selector | The focused track's mixer |
> | Optional | Send 1 … Send 8 | The focused track's send rows |

> **Device picker**
>
> | Choice | Effect |
> | - | - |
> | **Auto-detect** | Uses the installed profile made for this device, named in parentheses, or reads **Auto-detect (no match)** |
> | **No profile** | The device routes as plain MIDI: instruments and Learn bindings only |
> | A specific profile | Pins that profile to this device |

> **Limits (profiles and bindings)**
>
> * No LED or motor feedback: LED rings and motorized faders do not reflect Gridshift's state. The one exception is text: on a controller whose display Gridshift supports (currently the MPK mini IV), turning a mapped knob shows its name and value.
> * Bidirectional "DAW mode" is not offered; it needs per-vendor support.
> * 7-bit CC resolution only; high-resolution 14-bit CC is not used.
> * MCU / HUI control surfaces are not supported. Profiles and bindings target the knob-and-button class of controller (MPK mini and similar).
> * Learned parameter bindings need encoders in absolute mode; only the profile wizard detects relative encoders.


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