Skip to main content
Create, rename, list, and delete tracks.

Command line

track list

List all tracks

track get

Get a track by its handle
required
Track handle (trk_42) OR 1-based number (1, 2, …) OR ordinal (first, second, …)

track create

Create a new track
required
Track name
default:"Other"
Part type (Bass, Lead, Melody, etc.)
Prefix track names with Ableton’s ’#’ auto-numbering token for this run.
Disable ’#’ track auto-numbering for this run (overrides env / project setting).

track delete

Delete a track by its handle
Track handle (trk_42) OR 1-based number (1, 2, …) OR ordinal (first, second, …). Omit if using —liveset-id.
Stable liveset_id handle (trk_42) from ‘vibrai track list —json’; equivalent to passing the handle positionally as <track>. Kept for backward compatibility — takes precedence over the positional value when both are supplied.

track rename

Rename a track by its handle
Track handle (trk_42) OR 1-based number (1, 2, …) OR ordinal (first, second, …). Omit if using —liveset-id (in that case pass <name> alone after the flag).
New track name. Required (validated at runtime; declared optional only so Spectre permits the —liveset-id <name> shape).
Stable liveset_id handle (trk_42) from ‘vibrai track list —json’; equivalent to passing the handle positionally as <track>. Kept for backward compatibility — takes precedence over the positional value when both are supplied.
Prefix track names with Ableton’s ’#’ auto-numbering token for this run.
Disable ’#’ track auto-numbering for this run (overrides env / project setting).

track mixer

Show a track’s volume, pan, mute/solo/arm and sends
required
Track handle (trk_42) OR 1-based number (1, 2, …) OR ordinal (first, second, …).

track set-mixer

Set a track’s volume, pan, mute/solo/arm or sends
required
Track handle (trk_42) OR 1-based number (1, 2, …) OR ordinal (first, second, …).
Volume in dB, e.g. -6. Maximum +6. Mutually exclusive with —volume-raw.
Volume as Live’s normalized 0.0-1.0 (0.85 is unity). Mutually exclusive with —volume.
Pan, -1.0 (hard left) to 1.0 (hard right).
Mute or unmute the track.
Solo or unsolo. Solo is additive — Live does not clear other soloed tracks.
Arm or disarm for recording. Group, return and master tracks cannot be armed.
Send level as return_name=dB, e.g. —send A-Reverb=-12. Repeatable. See ‘vibrai mix returns’ for the available names.

track set-color

Set a track’s colour by Live palette index
required
Track handle (trk_42) OR 1-based number (1, 2, …) OR ordinal (first, second, …).
required
Live colour palette index, 0-69.

track auto-number

Turn Ableton’s ’#’ track auto-numbering on or off across the open set
required
on or off
Also record the choice in the project’s defaults.number_tracks, so a later generate/track create inherits it. Implies —write-project.
Write the .vibrai file to disk.
Path to the .vibrai file (default: <current-directory-name>.vibrai in the working directory). Only read or written when —persist or —write-project is given.

MCP tools

list_tracks

List all tracks in the current Live set. Track id is 1-based. midi_index is the ordinal among playable MIDI tracks only (also 1-based), or null for audio and group tracks. is_group marks a group (folder) track — it holds no clips, so never target it for generation; group_id is the parent group’s handle (null at top level); fold_state is 1 when a group is collapsed.

get_track

Get a single track by its liveset_id handle from list_tracks (e.g. trk_42). Returns the same shape as list_tracks (1-based id/midi_index, plus is_group/group_id/fold_state). Errors TRACK_NOT_FOUND if no such track exists.
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.

create_track

Create a new MIDI track of the given part type. Returns the created track with a 1-based id (matching list_tracks).
String
required
Track display name
PartType
required
Part type (drums, bass, chords, lead, pad, fx, etc.)
Nullable`1
Prefix the name with Ableton’s ’#’ auto-numbering token. Null inherits VIBRAI_NUMBER_TRACKS.

delete_track

Delete a track by its liveset_id handle from list_tracks (e.g. trk_42). If the target is a group track, Live removes every track inside it — the result lists them in removed_children. Remaining tracks keep their handles. Destructive — no undo. Errors: TRACK_NOT_FOUND, CANNOT_DELETE_LAST_TRACK.
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.

set_track_name

Rename a track. Address it by its liveset_id handle from list_tracks (e.g. trk_42).
String
required
New track name
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.
Nullable`1
Prefix the name with Ableton’s ’#’ auto-numbering token. Null inherits VIBRAI_NUMBER_TRACKS.

set_track_auto_numbering

Turn Ableton’s ’#’ track auto-numbering on or off across every track in the open set. This is a one-shot sweep, not a mode: it renames the tracks that are there now and does not change what a later generate/create_track does. Turning it off strips a leading number only when it matches the track’s own position, so a track genuinely named ‘808 Bass’ is left alone. Reversible by calling again with the opposite value. CLI equivalent: vibrai track auto-number on|off.
Boolean
required
true numbers the tracks, false removes the numbering.
Boolean
Also record the choice in the project’s defaults.number_tracks so a later generate inherits it. Implies write_project.
Boolean
Write the .vibrai file to disk.
String
Path to the .vibrai file (defaults to <current-directory-name>.vibrai in the working directory when omitted). Only read or written when persist or write_project is set.

get_track_mixer

Read a track’s mixer state: volume (both dB and Live’s raw 0.0-1.0), pan, mute, solo, arm, and every send with its return-track name. Address the track by its liveset_id handle from list_tracks (e.g. trk_42).
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.

set_track_mixer

Set any subset of a track’s mixer state. Omitted fields are left untouched. Volume takes EITHER volume_db (preferred, e.g. -6) OR volume_raw (Live’s 0.0-1.0) — passing both is an error. A fader runs to +6 dB (unity at raw 0.85); a send runs to 0 dB. Sends are addressed by return-track name as “name=dB” pairs, e.g. [“A-Reverb=-12”]. Returns the post-write state, so the reported volume is what actually landed rather than what was requested.
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.
Nullable`1
Volume in dB, e.g. -6.0. Maximum +6. Mutually exclusive with volume_raw.
Nullable`1
Volume as Live’s normalized 0.0-1.0 (0.85 is unity). Mutually exclusive with volume_db.
Nullable`1
Pan, -1.0 (hard left) to 1.0 (hard right).
Nullable`1
Mute the track.
Nullable`1
Solo the track. Solo is additive — Live does not clear other soloed tracks.
Nullable`1
Arm the track for recording. Group, return and master tracks cannot be armed.
String[]
Send levels as “return_name=dB” pairs, e.g. [“A-Reverb=-12”, “B-Delay=-18”]. Use list_returns to see the available names.

apply_mix

Apply a whole mix in one call, keyed by part type. Each entry is “part_type=dB” (e.g. “bass=-6”), optionally with pan and sends: “pad=-12:pan=-0.3:send=A-Reverb=-9”. Resolves part types to tracks via the loaded project when there is one (exact), or track-name hints when there isn’t (heuristic) — the result reports which path ran. Part types with no matching track come back as warnings, not errors.
String[]
required
Mix entries, e.g. [“bass=-6”, “lead=-3”, “pad=-12:send=A-Reverb=-9”].
String
Path to the .vibrai project to bind part types against (defaults to <current-directory-name>.vibrai in the working directory). When no project is found, binding falls back to track-name hints and says so.

list_returns

List the set’s return tracks with their index and name. These names are what set_track_mixer and apply_mix accept in their sends arguments.

set_track_color

Set a track’s colour by Live palette index. Address the track by its liveset_id handle from list_tracks (e.g. trk_42). Colour-coding a set by part type or by section makes a 12-track project legible at a glance.
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.
Int32
required
Live colour palette index, 0-69.

set_scene_color

Set a scene’s colour by Live palette index. Address the scene by its liveset_id handle from list_scenes (e.g. scn_7). Section-coloured scenes make the session view readable.
String
required
Scene handle from list_scenes, e.g. “scn_7”. Copy verbatim; not a position number.
Int32
required
Live colour palette index, 0-69.

set_clip_color

Set a session clip’s colour by Live palette index. The clip is addressed by its track handle and its 1-based scene number, matching list_clips. For arrangement clips use set_arrangement_clip_props instead.
String
required
Track handle from list_tracks, e.g. “trk_42”. Copy verbatim; not a position number.
Int32
required
1-based scene number, matching list_clips.
Int32
required
Live colour palette index, 0-69.