Build or acquire, researched and ranked · MacBookPro · 2026-09-07 · Ableton Live 11 Suite 11.3.43
Nobody sells APC20-fitted Live Sets any more. The one company that did has taken the category down. What remains for sale is genre production templates, which are shaped for the arrangement timeline rather than for an 8×5 clip grid. So the acquire route ends in a dead end that no amount of shopping fixes.
The build route is open and cheap. An .als is gzipped XML, and reshaping one into exact APC20 bank geometry is a subtractive edit. Two working tools ship with this page.
Buying is still worth it for content rather than geometry. A construction-kit or template pack gives you clips, instruments and a mix chain. Feed that pack through the generator as a donor and you get the grid fit the seller never provided.
Every design decision below follows from one number. The APC20 sees Live's Session View through a window of 8 tracks by 5 scenes, and the Shift key pages that window around a larger set. Specs are from the Akai quickstart guide, read directly rather than from a summary.
40 pads, 8 columns of tracks, 5 rows of clip slots
| Control | Count | What it does in Live |
|---|---|---|
| Clip Launch grid | 8 × 5 | Launches the clip in that Session View slot |
| Session Overview | Shift + grid | Each pad becomes one whole 8×5 block, so you jump between banks |
| Scene Launch | one per row | Fires a whole scene, including clips outside the current view |
| Clip Stop | one per track | Stops that track, including clips outside the current view |
| Track Control faders | 8 + master | VOL, PAN, SEND 1-3, USER 1-3, chosen with Shift |
| Track Activator / Solo / Arm | 8 each | Mute, solo to cue, record arm |
| Bank Select | 4 pads | Moves one track or scene, Shift moves 8 tracks or 5 scenes |
| Note Mode | 1 button | Grid splits in half, left runs C1 to G2, right runs G#2 to D#3 |
No third-party script is needed. Your installed Suite ships the control surface itself, so the APC20 is a dropdown entry in Preferences.
Note Mode's left half ascends chromatically from C1. Your drum-rack layout is white-keys-from-C1, with C1 kick, D1 snare, E1 ghost, F1 closed hat, G1 open hat. So a rack built by ableton-rack-builder is playable from the APC20 pads with no remapping at all.
Four supply channels exist in principle. Each was checked rather than assumed.
Their APC product category now returns a 404, and a site search for APC20 returns zero product cards. Their live controller list covers Push, Move, AKAI Fire, MIDIMIX, Allen & Heath and Novation. No APC of any generation appears.
The bundle was a tailored Live 8 with eight audio and eight MIDI tracks across twenty Session View scenes. Distribution was a physical CD in the box, and the quickstart guide still instructs you to insert it. That edition is two major versions behind your Suite and adds nothing you do not already own.
These sell finished genre productions as project files. They are built for the Arrangement timeline and for learning a mix, so track counts run wherever the producer left them. None advertises a controller grid fit. They are good donors and poor destinations.
Live ships Template Sets, and several Packs add construction kits. They are a reasonable starting point for content. The grid geometry is still yours to impose.
An .als is gzip-compressed XML and nothing more. Inflating one of your own sets gives readable markup with a documented shape.
Authoring a Live Set from scratch means reproducing thousands of lines of pointer-linked XML correctly. Reshaping an existing one means deleting whole elements and renaming what is left. Every byte that survives is markup Live itself wrote, so pointer integrity holds without any repair pass.
Growing past the donor's geometry is refused on purpose. Cloning a track or scene would duplicate object Ids, and that is the class of damage Live rejects. The fix is a bigger donor.
Live keeps two separate Id spaces that legitimately collide with each other. Getting this wrong is what breaks a generated set, and my first three attempts each got it wrong in a different way.
| Attribute | Space | Rule |
|---|---|---|
| Pointee Id | pointer | Globally unique, allocated from NextPointeeId |
| MidiTrack / AudioTrack / GroupTrack Id | pointer | Unique object id from the same counter. Not positional. One real set uses 127, 31, 56, 32 |
| MidiClip / AudioClip Id | local | Scoped to their slot. They legitimately repeat 0, 1, 2 |
| Scene Id, ClipSlot Id | positional | 0-based and sequential, must be reindexed after a trim |
Renumbering a track Id is the trap. A GroupTrack's children point at it through TrackGroupId. Rewriting the group's Id orphans every child silently, and the file still parses as XML.
Cutting a track list at position 8 can leave a child whose parent was cut, or a group with no children left. The generator repairs both: orphaned children are ungrouped, childless groups are dropped, and the track count is topped back up until it is stable.
Reshapes any Live 11 Set into exact APC20 bank geometry.
Nine checks. Seven are correctness and exit non-zero. Two report grid fit as warnings.
| ID | Check | Kind |
|---|---|---|
| V1 | File is real gzip and inflates | correctness |
| V2 | Bytes parse as XML with an <Ableton> root | correctness |
| V3 | MajorVersion, MinorVersion and Creator present | correctness |
| V4 | Every non-empty ClipSlotList holds one slot per Scene | correctness |
| V5 | Pointee Ids globally unique, track Ids unique among tracks | correctness |
| V5b | Scene and ClipSlot Ids sequential from 0 | correctness |
| V6 | NextPointeeId exceeds every Pointee and track Id | correctness |
| V9 | Group integrity, no orphan and no childless group | correctness |
| V7 / V8 | Track and scene counts fill whole APC20 banks | fit warning |
Given no changes, the writer reproduces Live's own bytes exactly. So the only difference in any output is the subtraction that was asked for. Two early defects turned up here: ElementTree writes '1.0' with single quotes and a lowercase utf-8, and it drops the trailing newline that some Live files carry.
A check that fails on a file Live itself wrote is a broken check. Three Live-authored sets are the control, and all three pass correctness. Reaching that state required fixing V3, V4, V5 and V5b, each of which had been written against an assumption rather than against the format.
Structural validation alone proved insufficient once already, so this was run rather than inferred. Ableton Live 11.3.43 was launched against the generated set, and its own Log.txt is the witness.
All three of the day's load attempts, scored from the log:
| Time | File | Origin | Result |
|---|---|---|---|
| 11:22:07 | Nostalgia_APC20_8x5.als | reshaped from the crashing set | CRASHED |
| 11:23:02 | Nostalgia_Homage_APC40.als | your original, untouched | CRASHED |
| 11:30:36 | APC20_1bank_8x5.als | reshaped from the clean donor | LOADED OK |
The crash tracks the donor, never the reshaping. That is the whole point of keeping a control in the experiment.
All 48 Live Sets under your Desktop were inspected for grid fit. Not one is APC20-shaped. Scene depth is often close, and track width is almost always the problem.
| Set | Tracks | Scenes | APC20 views | Plugins |
|---|---|---|---|---|
| Starter Song | 29 | 8 | 8 | 0 |
| RADIOHEAD FUG JAM | 21 | 8 | 6 | 12 |
| Song 2 | 18 | 8 | 6 | 12 |
| Sean song add drums | 18 | 8 | 6 | 12 |
| Shiner (Toe Project) | 13 | 8 | 4 | 0 |
| Nostalgia_Homage_Template | 12 | 6 | 4 | 12 |
| Nostalgia_Homage_APC40 | 12 | 5 | 2 | 12 |
Scene depth is already right at 5. Track width overruns the bank by four, so tracks 9 to 12 sit in a second view the controller has to page to. Two fixes exist. Cut to 8 for a single self-contained bank, or extend to 16 for a deliberate two-bank layout where the Shift jump is a musical decision.
This surfaced while proving the generator. The generated set crashed on load, and the obvious conclusion was a bug in the reshaping. The control test refuted that. Your untouched original crashes identically, with the same signature at the same point.
The empty VST3: Going to restore: line immediately before the fault points at plugin-state restoration. Corroborating evidence sits in your own folders: Anatomy-Jams/Nostalgia_Homage_Repair/ already holds _remove_all_vst3_devices and _minimal_repair variants, so this has been hit before.
That set carries 12 VST or VST3 references. The plugin-free Starter Song.als was used as the donor instead, which is why the shipped sets avoid the fault entirely.
Log.txtBuilt 2026-09-07 on MacBookPro. Every number on this page came from a command run against a real file, never from recall. Tools and generated sets are linked above and listed in the sibling index.md.