ablx.directory

AM Arranger

v1.0.1

- Turn a core loop into a full song structure. - Get a starting basis for your song - define a song structure once, apply it in a single step. - A wizard that keeps you in Ableton's native workflow — you build and duplicate the loop yourself, AM Arranger only reduces it, non-des…

Andreas MangNo ratings yet
README · rendered from GitHubView source

AM Arranger

At a glance

  • Turn a core loop into a full song structure.
  • Get a starting basis for your song - define a song structure once, apply it in a single step.
  • A wizard that keeps you in Ableton's native workflow — you build and duplicate the loop yourself, AM Arranger only reduces it, non-destructively.

An Ableton Live 12 extension that turns a core loop into a full song structure — by muting the clips that shouldn't play in each part, without ever duplicating, moving, or altering your audio or MIDI.

Why I built this

Everyone knows the problem: you come up with a loop you love, but have no clear next step for where the song should go from there. It gets saved somewhere, forgotten, and never turns into an actual song — there's a whole genre of "how to escape the loop" tutorials on YouTube for exactly this. AM Arranger doesn't solve that problem outright, but it helps: it builds a structure around a core loop and turns it into a base for a full song from there. The arrangement itself sets helpful boundaries that keep the focus on the actual songwriting, and toggling parts active or muted makes it easy to try out what works and what doesn't.

All of this is possible in Ableton natively, too — but I wanted a tool that would let me focus on nothing but the arrangement itself.

A note on how this got built: I have a background in media technology and some programming experience from that, but not enough to have built something this complex on my own. I'm generally skeptical of AI in a lot of areas — music production very much included. I've only recently started working with Claude, and this felt like a fitting use case: Ableton Extensions are a new feature, which let me build something for myself — and hopefully for others — that simply wouldn't have been possible for me a few years ago.

Step by step

1. Build and spread your core loop. Build a core loop (e.g. 4, 8, 16 or 32 bars) at the start of the arrangement, with every track that should ever play in the song. Then duplicate it across the timeline yourself until it's at least as long as the song structure you're planning — the easiest way is to click the loop marker (selects the loop range) and duplicate with Cmd+Shift+D (macOS) / Ctrl+Shift+D (Windows). This is one of the few steps you do by hand rather than through the wizard — it turned out to be the best way to implement it (see Why doesn't AM Arranger duplicate the loop for me?).

2. Setup. Right-click any track → AM Arranger: Arrangement Wizard. Confirm the loop length and sub-block size, exclude any tracks that shouldn't be touched (e.g. a sidechain or utility track), and optionally delete empty tracks. The sub-block size is the smallest unit AM Arranger can mute independently — a long block (e.g. a 32-bar "Develop" section) is automatically split into sub-blocks (A/B/C/D) of this size, so you can still vary which tracks play within that block instead of it staying static for its entire length.

3. Song structure. Start from a genre-style preset (club track, radio edit, hypnotic techno, …) or build your own list of blocks (name, color, length in bars) — see PRESETS.md for the exact layout of each built-in preset. Drag the handle to reorder blocks. Blocks with the same name can be linked so you only define their track selection once (handy for two "Drop" sections). Save your own structures as reusable presets, and delete any preset — including the ones AM Arranger ships with — you don't need.

4. Define parts. For each part (or sub-block, for long blocks), choose which tracks are active: click a row to toggle it, shift-click to toggle a whole range, or use Cmd/Ctrl+A, Cmd/Ctrl+C and Cmd/Ctrl+V to select, copy, and paste a part's selection onto another one. Tracks inside a group can be toggled together with one click.

5. Apply. AM Arranger checks that you've duplicated the loop far enough, then mutes the clips that shouldn't play in each part — in a single undo step — and optionally trims overflow past the end of the structure or drops a cue point at the start of every block.

Nothing happens to your Live Set until you click Apply — closing the wizard or pressing Cancel just remembers your settings for next time.

Further notes

My song structure uses smaller sub-blocks than my core loop clips — what do I need to watch out for? Per-sub-block muting only works if the clips themselves are split at the sub-block boundaries — AM Arranger mutes whole clips, it can't mute part of one. So if your core loop is, say, 16 bars but your song structure uses 8-bar sub-blocks, split the loop's clips at every 8-bar mark before duplicating it across the timeline: loop just the first 8 bars, click the loop marker to select it (same as before duplicating with Cmd+Shift+D), then press Cmd+E (Windows: Ctrl+E) to split. Duplicate from there as usual.

Why can't a group be muted directly — only the tracks inside it? Group tracks in Live aren't audio/MIDI tracks themselves; they don't hold clips, so there's nothing on a group to mute or un-mute. In the "Define parts" step, clicking a group is a shortcut that toggles all of its child tracks together — it doesn't create a state of its own.

Why is "trim to structure length" a separate, off-by-default checkbox? It deletes content permanently (anything past the end of your structure). Muting is always safe and reversible; trimming is not, so it stays opt-in.

Do my manually muted clips survive re-applying the wizard? Yes. AM Arranger only tracks the clips it has muted. Re-applying first un-mutes those, then re-applies the current selection — clips you muted yourself by hand are never touched either way.

Can I delete or edit the built-in presets? Yes. The presets AM Arranger ships with (club track, radio edit, …) are seeded into your presets the first time you use it, and from then on behave exactly like presets you save yourself — including that deleting one is permanent, the same as in most music software.

Where are my settings and presets stored? In a small JSON file: ~/Library/Application Support/am-arranger/ on macOS, %APPDATA%\am-arranger on Windows (with ~/.am-arranger/ as a fallback on either platform). If no location is writable, settings and presets still work for the current Live session, they just won't survive a restart.

Why it's built this way

AM Arranger's design is shaped by what the Ableton Extensions SDK can and can't do. Understanding these limits explains a few choices that might otherwise look surprising.

Why doesn't AM Arranger duplicate the loop for me? The SDK can't move or resize existing clips, and clips it creates itself don't carry over every property (gain, pitch, reverse, groove, program change, warp settings). Live's own duplicate (Cmd+Shift+D on macOS, Ctrl+Shift+D on Windows) keeps all of that perfectly. So AM Arranger leans on that: you spread the loop natively, and the extension only reads what's there and reduces it — nothing is ever recreated from scratch. AM Arranger also can't read an actual time selection from Live (there's no API for it), so it always assumes the loop starts at bar 1 — it only asks you for the loop's length.

Why does Apply sometimes say the loop "isn't spread out enough"? Before touching anything, AM Arranger checks whether your tracks actually reach as far as the planned structure. It deliberately ignores a single outlier clip (say, one long pad that happens to run far past everything else) and looks at the second-farthest track instead, so one stray clip can't make the check pass when the rest of the arrangement hasn't been duplicated far enough yet.

Why can't AM Arranger reorder or group tracks? The SDK has no API to move, sort, or group tracks. Anything involving track order or grouping has to be done by hand in Live.

No automation, no audio effects, no rack presets? Correct — the SDK doesn't expose automation/envelopes, can't load saved effect racks (.adg) or third-party plugins, and has no freeze/bounce/render-with-effects. AM Arranger only works with what's already in your arrangement (muting clips, placing cue points, trimming clip ranges).

Outlook

I'd love to hear feedback and suggestions for improvement. I'll keep an eye on where the Extensions SDK goes — if it eventually supports moving/resizing clips or writing automation, some of the workarounds described above could become unnecessary.

Mostly, though, I want to actually use this in practice and get back to writing music. Building it took a lot more time than I expected — but it was fun.

Requirements

  • Ableton Live 12 with Extensions support and Developer Mode enabled (Preferences → Extensions).
  • A Live Set open in Arrangement View, with a core loop already built at bar 1.

Build & run

npm install
npm run build:dev   # type-check + bundle (dev, with sourcemaps)
npm run build       # production bundle
npm start           # build + launch in Live's Extension Host
npm run package     # production build + .ablx package

Only one extension can be connected to Live's Extension Host at a time — stop any other npm start first.

Rate this extension

One rating per account; you can change it any time.

No ratings yet — be the first

Comments

Sign in to join the discussion.Sign in

No comments yet.