Stacks

Control matrix for the chord-progression tool on Ableton Push 3, a Push Hack catalog hack. Open it from Push Hack Home (Shift + Help): it takes Push's screen, encoders, buttons and pads; Live keeps the transport. The same six banks as on Move, with full names on a 960×160 screen and 64 pads that write the selected chord.

7tabs 43encoder params 64pads 6kept by Live

Web interfaces · open in a browser on the same network

Stacks panel
http://<push>:7711The same browser panel as Stacks on Move, for the progression you play on Push. Every region and control of it: Stacks Panel (schwung-stacks, docs/panel.html).
Push Manager
http://<push>:7701Fixed port. Files, display, MIDI, and every installed hack with the port it got.
Push Hack Catalog
http://<push>:7702Fixed port. Installs, updates and removes hacks.

<push> is your Push's network address, for example push.local. 7711 is the port in Stacks' hack.json. Push Hack Catalog gives each hack a port when it installs it, from 7711 up, so on your Push it can be another one: Push Manager lists it.

The surface

Schematic, not to scale, in the hardware's order. Every label, colour and screen here comes from the code that runs on Push: the screens are the device renderer's own output for one progression (Axis, in A).

Edit keys

Navigation

Live keeps these

where you are, or on available no meaning here: dark Live's own

Banks — top buttons 1 to 6

MAIN

acts on the whole progression

top button 1 · 8 of 8

SCALEKEYOCTAVE DEFAULTCHORDSNEW CHORD LENCLIP BARSVOICE GROUPINGNOTE LANES
1SCALEWhich notes exist. Roots snap to it and it draws the grid's lanes. Live: changing it re-snaps the progression already in the buffer.13 options · Minor · scale
2KEYThe tonic, and the line you read pitch against. Transposes the buffer as you turn it; at the edge of the range it stops rather than deforming.12 options · A · key
3OCTAVE DEFAULTThe octave the progression sits in. Moves the whole buffer by octaves as you turn it, and sets where a newly filled slot starts.1 – 5 · 3 · defoct
4CHORDSHow many chords. Growing copies the last one; while the buffer is still empty it instead divides Clip Bars between the slots.1 – 16 · 4 · steps
5NEW CHORD LENThe length a chord is given. It cannot reach a chord you have written — but while the buffer is empty it re-lengths every slot, and the clip follows.2 bar / 1 bar / 1/2 / 1/4 · 1 bar · rate
6CLIP BARSHow long the clip is, and the one loop length. It follows the music — both ways — until you turn it yourself; after that it is yours, and only grows if the music would not fit.1 – 16 · 4 · bars
7VOICE GROUPINGHow the chords sit against each other, and where. dynamic leads each voicing from the one before; the registers fold them into two octaves; opens and drops space them.16 options · none · grouping
8NOTE LANESWhich grid lines the staff draws: only the notes of the selected scale, or all seven letter names.scale / diatonic · scale · lanes
INSERTDELETEDUPLICATEHALFTIMEDOUBLEMUTEUNDOREDO

START

acts on the whole progression

top button 2 · 5 of 8

GENREPROGRESSIONCOMMON PROGUNCOMMONCOLOUR
1GENREGroups the library into 17 styles, house to cinematic. Turning it jumps to that genre's first progression and applies it — the gesture Family performs on Shape.18 options · none · genre
2PROGRESSION142 progressions, stored as semitones from the tonic so they land in your Key and Scale. Voiced by style, so Colour leaves them alone. It overwrites.143 options · none · progression
3COMMON PROGThe progressions most songs are built from. Written as plain triads with no style of their own, which is what makes Colour meaningful on them.13 options · none · common
4UNCOMMONChromatic and modal material: borrowed iv, backdoor, Phrygian, chromatic mediants, secondary dominants. Plain triads like Common, so Colour applies.14 options · none · uncommon
5COLOURHow the chord is voiced, not which chord it is: close, open, the drops, shell, rootless, quartal, spread, cluster. The axis Shape cannot express.10 options · close · colour
INSERTDELETEDUPLICATEHALFTIMEDOUBLEMUTEUNDOREDO

CHORD

acts on the selected chord

top button 3 · 8 of 8

ROOTCHORD OCTSHAPE FAMILYCHORD SHAPEINVERSIONLENGTHOFFSETCHORD VEL
1ROOTThe chord's root note; Family and Shape build upward from it. A root you name here is exact: the Scale moves only roots chosen by degree.60 options · Key at Octave Default · root
2CHORD OCTWhich octave that root sits in. Moves the whole chord with its shape and inversion intact, leaving the voicing alone.1 – 5 · follows Octave Default · coct
3SHAPE FAMILYNot a value of its own: it reads the chord's family and writes Chord Shape. Leaving a family and coming back lands on that family's first chord.6 options · triad · family
4CHORD SHAPEThe chord itself, from intervals through 13ths — the one thing stored per chord and written into the clip. Includes rest.38 options · maj · shape
5INVERSIONOne ladder through zero: up rotates the lowest voice an octave up, down rotates the highest an octave down. Under a dyn Voice Grouping the encoder reads AUTO: voice leading picks the inversion, and the value you set waits for grouping to change.-3 – 3 · 0 · inv
6LENGTHHow long this chord lasts, in eighths of a bar — an absolute duration, so 8 is one bar whatever New Chord Len says. Chords run back to back.1 – 64 · 8 · len
7OFFSETDelays the chord inside its own slot so it can sit off the beat. It never pushes the next chord along.0 – 15 · 0 · off
8CHORD VELOffsets this chord's velocity against the global Velocity. Visible in the grid: a quieter chord draws lighter.-63 – 63 · 0 · cvel
INSERTDELETEDUPLICATEHALFTIMEDOUBLEMUTEUNDOREDO

VOICE

acts on the selected chord

top button 4 · 6 of 8

COLOURSTRUMCHORD GATEMUTERHYTHMTRANSPOSE
1COLOURThe same setting as Start's Colour, reached per chord: Start voices the whole progression, this voices the one you are editing, and each reads what the other left.10 options · close · ccolour
2STRUMSpreads this chord's notes across time, lowest first — a strum rather than every note landing together.0 – 100 · 0 · cstrum
3CHORD GATEOffsets how much of this chord's length actually sounds, against the global Gate. Shorter reads as a stab.-50 – 50 · 0 · cgate
4MUTESilences this chord but keeps it in the progression. Drawn as an outline, so you can still see what it would play.off / on · off · cmute
5RHYTHM35 figures — the grid, syncopation, clave, jazz comping, rock, house stabs, cinematic pulses. Anchored to the BAR and repeating across the chord; hold strikes once and is held.35 options · hold · rhythm
6TRANSPOSETransposes this chord in semitones after its shape is built, so the shape survives and only the pitch moves.-12 – 12 · 0 · ctrans
INSERTDELETEDUPLICATEHALFTIMEDOUBLEMUTEUNDOREDO

FEEL

acts on the whole progression

top button 5 · 8 of 8

PREVIEWVELOCITYGATESWINGHUMAN VELRANDOMIZE VELHUMAN TIMERANDOMIZE TIME
1PREVIEWWhether editing a chord auditions it, and whether the progression keeps looping while the transport is stopped.off / chord / loop · off · preview
2VELOCITYBase velocity that every chord is measured from. The per-chord Chord Vel is an offset against it.1 – 127 · 100 · velocity
3GATEBase proportion of a chord's length that actually sounds. The per-chord Chord Gate offsets this one.5 – 100 · 90 · gate
4SWINGLeans the off-beat at the finest level the figure uses: odd 16ths under a 16th figure, the ands under an eighth one. Anchored to the bar.0 – 75 · 0 · swing
5HUMAN VELSpreads velocity per note, as a share of the base. Seeded, so the same feel repeats until you randomize it.0 – 100 · 0 · hum_vel
6RANDOMIZE VELturn to fireRe-rolls which deviations the notes get. Same depth, a new feel — and Stamp writes the take you heard.off / on · roll_vel
7HUMAN TIMESpreads onsets per note and per hit. The spread is shifted so the earliest note still lands on the beat, never clamped.0 – 100 · 0 · hum_time
8RANDOMIZE TIMEturn to fireRe-rolls the timing spread and leaves velocity where it is, so the two can be dialled in separately.off / on · roll_time
PREV OFFPREV CHORDPREV LOOPRANDOM VELRANDOM TIMEUNDOREDO

CLIP

acts on the whole progression

top button 6 · 8 of 8

READ CLIPREAD MODESTAMP CLIPCLEARCLIP TRANSPOSECLIP OCTAVERUNUNDO
1READ CLIPturn to fireNot on Push yet. On Move it reads a clip from Move's own set file; Live's sets are a different format, so this will come through Browser Bridge. The encoder says NOT ON PUSH YET.off / on · read
2READ MODEGoes with Read Clip, so not on Push yet. On Move it chooses whether reading replaces the progression or appends to it.replace / append · replace · read_mode
3STAMP CLIPturn to fireArms one lap for Live to record. Press Record on Push (it goes to Live) and Stacks plays the progression once, from Live's downbeat, into the selected track. The screen says ARMED - PRESS RECORD. Also on Capture and the CLIP tab's bottom row.off / on · stamp
4CLEARturn to fireEmpties the buffer to a single rest, in your Key and Octave Default — not to a demo progression.off / on · clear
5CLIP TRANSPOSEMoves everything that sounds by semitones, Stamp included. Key, Scale and the degree pads stay as written; the staff names the chords that sound.-12 – 12 · 0 · transpose
6CLIP OCTAVEMoves everything that sounds by whole octaves, for performing. What you wrote is untouched, so turning back to 0 is exactly where you were.-2 – 2 · 0 · octave
7RUNWhether Stacks plays along with Live's transport (Play on Push). Switched off after a stamp so the clip is not doubled. Closing Stacks also stops it playing along; opening it gives Run back.off / on · on · run
8UNDOturn to fireSteps back through the buffer. Every write is captured, so an ordinary shape edit undoes like a Duplicate does.off / on · undo
STAMPCLEARRUNPLAY CLOSEDUNDOREDO

Pads — three pages, picked by the scene buttons

The bottom two rows are always the chords and the top two always the patterns. The middle four write the selected chord, and change with the page. Holding a scene button shows the screen below; the table is the same map, with the pads' LED colours.

WRITE · scene button 1/4
Push's screen while the 1/4 button is held: the WRITE pad map
PATTERNS 9-160910111213141516
PATTERNS 1-80102030405060708
SHAPEMAJMINDIMAUGSUS2SUS4
FAMILY5THTRIAD6TH7TH9THEXT
LENGTH1/41/23/412348
DEGREEIIIIIIIVVVIVIIREST
CHORDS 9-16
CHORDS 1-8AMAJEMAJF#MINDMAJ
VOICE · scene button 1/4t
Push's screen while the 1/4t button is held: the VOICE pad map
PATTERNS 9-160910111213141516
PATTERNS 1-80102030405060708
STRUM0102035506580100
OCTAVE12345
COLOURCLOSEOPENDROP2DROP3DROP2+4SHELLROOTLESSQUARTAL
INVERSION-3-2-10+1+2+3
CHORDS 9-16
CHORDS 1-8AMAJEMAJF#MINDMAJ
FEEL · scene button 1/8
Push's screen while the 1/8 button is held: the FEEL pad map
PATTERNS 9-160910111213141516
PATTERNS 1-80102030405060708
OFFSET012346812
VELOCITY-63-40-20-100+10+20+40
GATE-50-35-20-100+10+25+50
RHYTHMHOLDHALFQUARTEREIGHTH16THOFFBEATDOTTEDPUSH
CHORDS 9-16
CHORDS 1-8AMAJEMAJF#MINDMAJ

Listen mode — Shift + LIVE

The pads, buttons and encoders stay with Live: play your instrument as usual. The screen names the chord being played, on split-flap tiles that flip as you add a note (C, CMAJ, CMAJ7), with its degree and role in the key, its inversion or slash bass, and what a voicing leaves out. One tile per note drops in and latches; the keys go down, the root in amber. Below: C E B in A minor, a Cmaj7 without its 5th.

LISTEN · the device renderer's own frame
Push's screen in listen mode: CMAJ7 on flap tiles, degree III, tonic, root position, no 5th; tiles R, 3, 7; a keyboard with C, E and B down
Once, before the first use
Browser BridgeVersion 0.4 or later, active in a Control Scripts slot (Settings > MIDI). It keeps a silent track, Stacks Listen, whose input follows the track you select.
Stacks ListenIn Settings > MIDI, switch Track on for the output Stacks Listen. The screen says so while it is off.

Every button

Screen buttons and scene column
Top 1-7Tabs: MAIN, START, CHORD, VOICE, FEEL, CLIP, PATTERNS. They pick what the encoders and the bottom row do.amber on the tab you are on, white on the others
Top 8LIVE: gives the surface back to Live, on the release. Stacks stops playing along. Shift + LIVE: listen mode (the screen only; pads and buttons with Live).white
Bottom 1-8The tab's actions; see each bank above.white; amber while that action is on or armed
1/4, 1/4t, 1/8The pad page: WRITE, VOICE, FEEL. Hold to see the page's pad map on the screen.amber on the page you are on, white on the others
Encoders 1-8The tab's parameters. Touch one and its label lights. A step takes six ticks on a short list, three on a medium one, two on a long one; only the long lists accelerate. A trigger fires once per turn.no LED
Edit keys
ShiftModifier. Shift + Help opens Push Hack Home; Shift + LIVE switches to listen mode; Shift + Undo redoes; Shift + Double Loop is double time; Shift + jog changes tab; Shift + Scale follows Push's scale.white
HelpPush-manager's: Shift + Help opens Push Hack Home, where STACKS opens Stacks; Shift + Help, Help opens the superstar. With an older Push Hack without Home: Live -> Stacks (edit) -> Stacks (listen) -> Live.white
DeleteTap: deletes the selected chord. Hold and tap a pattern pad: clears that slot.white
UndoUndo. With Shift: redo.white
AddInserts a copy of the selected chord after it.white
DuplicateDuplicates the whole progression.white
Double LoopHalftime: every chord twice as long. With Shift: double time.white
MuteMutes or unmutes the selected chord.white
NewClears the progression to a single rest.white
CaptureStamp: arms one lap for Live to record.white
Octave +Clip Octave up: everything that sounds, one octave.white
Octave -Clip Octave down.white
ScaleJumps to the MAIN tab, where Key and Scale are. With Shift: Stacks' Key and Scale follow Push's scale (Browser Bridge 0.3 in Live); turning Stacks' Key or Scale stops following.white
Navigation
UpPrevious editor page (WRITE, VOICE, FEEL). Lit only when there is one.white when it can act, dark otherwise
DownNext editor page. Lit only when there is one.white when it can act, dark otherwise
LeftSelects the previous chord. Lit only when there is one.white when it can act, dark otherwise
RightSelects the next chord. Lit only when there is one.white when it can act, dark otherwise
Page <Scrolls the page's long pad row (Colour, Shape, Rhythm) back by eight. Lit only when it can.white when it can act, dark otherwise
Page >Scrolls the long pad row on by eight. Lit only when it can.white when it can act, dark otherwise
JogTurn: selects the chord. Shift + turn: changes tab. Press and hold: plays from the selected chord onward.no LED
Live keeps these
PlayLive's Play and Stop. Stacks follows Live's transport.Live's own
RecordLive's Record. With a stamp armed, Stacks plays one lap into it.Live's own
MetronomeLive's metronome.Live's own
Tap TempoLive's tap tempo.Live's own
TempoLive's tempo encoder, turn and press.Live's own
VolumeLive's master volume encoder.Live's own

Worth knowing

Open it from Push Hack Home.

Shift + Help opens Home, push-manager's switcher; pick STACKS. Star it there, or make it the superstar to open it with Shift + Help, Help. Shift + LIVE switches to listen mode; LIVE gives everything back. With an older Push Hack without Home, Shift + Help cycles Live, editing and listening, as in 0.2.

Live keeps the transport.

Play, Record, Metronome, Tap Tempo, the tempo and volume encoders go to Live, with Live's own LEDs. Stacks follows Live's clock.

Closed is parked.

When you close Stacks it stops playing along with Live; opening gives Run back. A stamp that is armed still plays.

Hold a chord pad to hear it.

The chord loops with its rhythm while you hold the pad, and a playhead runs inside it. Tapping only selects.

Hold a scene button for the pad map.

The screen shows every pad row of that page, named, in the pads' own colours, until you let go.

Lit means it does something.

Amber is where you are or what is on. White is available. Dark has no meaning here. The arrows light only when they can move.

Inversion can read AUTO.

Under a dyn Voice Grouping, voice leading picks each chord's inversion. The first chord, and a chord after a rest, keep their own.

The lanes hold still.

Voicing edits never zoom the staff in; it zooms out only to keep notes on screen, and moves by whole octaves. The bar at the right edge shows the register.

Slots show their chords.

A used pattern slot shows its chord count, bars and first chords. CLEAR SLOT or COPY TO SLOT, then tap the slot.

Sync once, in Live.

Settings > MIDI > Stacks In > Sync on. Without it Stacks cannot follow Play and Stop; the screen says so while Run is on.

An older Push Hack is named, not hidden.

If push-manager lacks pass-through buttons or raw frames, Shift + Help shows what to update. Playing into Live still works.

Shift + Scale follows Push's scale.

Stacks' Key and Scale follow the scale set with Push's Scale button, marked FROM PUSH on MAIN. A scale Stacks lacks keeps Stacks' and follows the key. Needs Browser Bridge 0.3, active in Live.

Listen mode names what you play.

Your pads stay with Live; the screen names the chord, with its degree, inversion and what is left out. Played voicings count: no 5th, a slash bass, add11, 7#11, two notes as an interval. The name clears when you let go; LAST, a small line under the notes, keeps the chord you played before.

The power button always works.

push-manager gives the screen and buttons back to Push the moment you press it, and at every start, so Live's own questions can be answered.

Two ports, found by Live.

Stacks Out carries the chords to the selected track. Stacks In carries Live's clock in.