Templates
Migrate from another controller
Coming from an Akai APC, Ableton Push, or Novation Launchpad? Map your muscle memory onto a PS5, Xbox, or Switch controller without starting over.
Updated
Switching from a dedicated MIDI controller to a game pad feels weird for about ten minutes. Then it doesn't. This page maps your muscle memory from APC, Push, and Launchpad onto game pad equivalents so the transition takes minutes, not weeks. Most of the gain comes from accepting one fact early: you're trading grid density for analog expression. That trade is almost always worth it.
Surface comparison — what you gain, what you lose
Before remapping anything, get honest about the differences:
| Surface | APC40 | Push 2/3 | Launchpad X | DualSense (PS5) |
|---|---|---|---|---|
| Pad count | 40 | 64 | 64 | 17 buttons + 16+16 corners |
| Velocity | yes | yes | yes | buttons no, corners no |
| Aftertouch | no | poly | no | via triggers (analog) |
| Analog sticks | no | no | no | 2 (CC + corners) |
| Touch surface | no | strip | no | full touchpad (X/Y) |
| Haptic feedback | no | no | no | adaptive triggers |
| Portability | poor | poor | good | excellent |
The honest read: if you live and die by velocity-sensitive grid pads, no game pad will fully replace your APC. If you can absorb 24–32 of your most-used pads and get sticks + triggers + touchpad in exchange, the migration is a strict upgrade.
From Akai APC (40 / mini / Key)
The APC's 8×5 clip grid maps cleanly onto two sticks plus shoulder buttons. Use both stick corner zones (n: 16 each) for the bulk of the grid, then face buttons for scene launches.
{
"name": "APC40 migration — PS5",
"schema_version": 2,
"midi_channel": 0,
"deadzone": 0.06,
"poll_hz": 120,
"buttons": { "0": 82, "1": 83, "2": 84, "3": 85, "4": 86, "5": 87 },
"left_stick_corners": {
"enabled": true,
"n": 16,
"notes": [53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68],
"r_enter": 0.85,
"r_exit": 0.65
},
"right_stick_corners": {
"enabled": true,
"n": 16,
"notes": [69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],
"r_enter": 0.85,
"r_exit": 0.65
},
"hats": { "up": 78, "down": 79, "left": 80, "right": 81 }
} From Ableton Push (1 / 2 / 3)
Push's 8×8 grid is the trickiest to replicate — game pads don't have 64 buttons. The honest answer: pick the 16 you use most, put them on stick corners (n: 16 per stick), and use the D-pad for octave shifting. The remaining notes are reachable via the touchpad.
- Scale awareness — set the corner notes to your current key/scale once, save as a per-scale preset.
- Octave — D-pad up/down sends program change to shift octaves DAW-side.
- Touchpad — enable and map to two CCs for X/Y expression, like Push's strip.
- Aftertouch substitute — route trigger CC as channel aftertouch in your DAW; analog triggers give you a finer-grained substitute than Push's poly AT for most patches.
From Novation Launchpad (Mini / X / Pro)
Closer to APC than Push. Stick corners cover most of the grid; face buttons handle row launches; shoulder buttons toggle modes (Session vs Drum vs User).
{
"name": "Launchpad migration — Xbox",
"schema_version": 2,
"midi_channel": 0,
"deadzone": 0.04,
"poll_hz": 120,
"buttons": { "4": 89, "5": 90, "6": 91, "7": 92 },
"hats": { "up": 78, "down": 79, "left": 80, "right": 81 },
"left_stick_corners": {
"enabled": true,
"n": 16,
"notes": [60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],
"r_enter": 0.88,
"r_exit": 0.7
}
} {
"name": "Push migration — PS5 with touchpad expression",
"schema_version": 2,
"midi_channel": 1,
"deadzone": 0.03,
"poll_hz": 200,
"buttons": { "0": 36, "1": 38, "2": 40, "3": 41 },
"left_stick_corners": {
"enabled": true,
"n": 16,
"notes": [60,62,64,65,67,69,71,72,74,76,77,79,81,83,84,86],
"r_enter": 0.9,
"r_exit": 0.72
},
"touchpad": { "enabled": true, "x_cc": 11, "y_cc": 74 },
"l2_haptic_effect": "trigger_resist",
"r2_haptic_effect": null
} Don't try to fit 64 pads on a game pad. Pick the 24–32 you actually use and put the rest on a second template. Switching templates with a shoulder-button combo is faster than reaching for the grid you don't use.
Game pads beat dedicated controllers on two things: portability and analog input. Sticks and triggers add expression that grid controllers can't touch. Lean into that instead of forcing a 1:1 port.
Stick-corner notes feel laggy if poll_hz stays at the default 100. For Push-style fast playing, push it to 200 and drop deadzone to 0.03 — both make a bigger difference than tweaking note assignments.
Real-world template patterns by source
- APC → DualSense studio rig — both sticks at
n: 16, face buttons for scene launches, touchpad for crossfader. - Push → DualSense MPE rig — left stick corners for scale notes, touchpad for X/Y expression, triggers for aftertouch substitute.
- Launchpad → Xbox session view — corners for clip grid, D-pad for scene scrolling, shoulders for mode toggles.
- Two-template hot-swap — pad-heavy template + expression-heavy template; switch via shoulder combo for live sets.
- Per-scale migrations — clone your APC-migration template per key (C, D, F, G, A) so scale-locked corners stay correct without thinking.
Importing your existing mappings
For automated conversion of .tsi / Reaper / Ableton exports, see import a .tsi file. For starting fresh, see create from scratch. For stick-corner theory, see stick corners.