Skip to main content
Generate or plan a composition from a .vibrai project file.

Command line

generate

Plan + render a composition into Live’s session and arrangement views. Same preview engine as ‘plan’; use generate to write and plan to iterate on variations before writing.
Path to the .vibrai file (default: <current-directory-name>.vibrai in the working directory)
Overwrite existing session clips and arrangement content in project tracks
Delete all Vibrai-generated tracks (same rule/order as ‘vibrai project clear —yes’) before planning and rendering — a clean slate so this run’s composition doesn’t stack on top of a previous, different project’s tracks. Never touches Audio/Return/Master tracks or MIDI tracks whose Part Type is Other (user/template tracks). Skipped entirely under —dry-run (which never calls the bridge).
Empty every clip in the set before rendering, KEEPING tracks, instruments, effects, mixer settings and scenes (same routine as ‘vibrai clip clear-all —yes’) — reuse the set’s rig instead of rebuilding it. Mutually exclusive with —clear-first, which deletes tracks instead. Skipped entirely under —dry-run. NOTE: this does not by itself make generate re-render in place. Only captured or ‘project init’-bound projects reuse existing tracks; a genre-minted project still appends a duplicate track set (issue #558).
Identical preview to ‘plan’ but with generate’s exact settings; use it to sanity-check the write you are about to make.
Override the project’s T2mHash seed for this run
Deprecated and ignored. Automation no longer fails a render; unresolvable entries are always reported as skips.
After rendering, load each part’s default instrument (drum kits for drum parts) so the song is audible.
After rendering (and after —with-instruments, if passed), apply the composition’s arrangement automation. Off by default: automation resolves against the live device tree, so it needs instruments already loaded. Never fatal - unresolvable targets are reported and the render still succeeds.
Resolve instruments from stock content only: skips explicit defaults.instruments overrides AND tagged instruments, using genre stock defaults + built-in generic. For demos/testing without third-party packs.
How to treat existing MIDI tracks: replace (delete them) or append (keep, add after last MIDI track). Default: append. Audio/return tracks are always left in place.
Keep generator-produced clips that resolve to zero notes. By default these are skipped, leaving a gap in both session and arrangement views. Authored literal empty clips are always kept.
Write clips to the Session grid only; skip Arrangement placement. Use with play-song to drive the song from Session view.
When a part is bound to a track_id (project init / capture) that no longer exists in the Live set, create it (name from the part, MIDI type) instead of failing. Default: off — such a project fails validation up front, naming the missing track_id(s), before anything is written.
Swing amount 0-100 (0 straight, 100 hard triplet). Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Velocity/timing jitter 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Grace-note/roll density 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Tension-section note thinning 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Note articulation length 0-100 (10 = extreme staccato, 100 = full value/legato). Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Bass motion profile: root, root_fifth, octave_pump, arpeggiated, walking, pedal. Overrides genre default.
How the bass sits against the kick: lock (snap onto it), dodge (push off it), free (ignore it). Overrides genre default.
Emit Live’s per-note probability/velocity-deviation instead of baking randomization in. Melodic parts only — has no effect on drums, pads, or FX sweeps. The loop then varies on every playback, but the audible result is no longer reproducible from the seed. Omit to inherit the genre’s setting.
Target scale root: note name (C, C#, Db, …, B) or pitch class 0–11. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).
Target scale: Major, Ionian, Dorian, Phrygian, Lydian, Mixolydian, Minor, Aeolian, Locrian. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).
Prefix track names with Ableton’s ’#’ auto-numbering token for this run.
Disable ’#’ track auto-numbering for this run (overrides env / project setting).

plan

Preview with variation knobs (seed/density/etc.). Same preview engine as ‘generate —dry-run’; use plan when you want to iterate on variations before writing.
Path to the .vibrai file (default: <current-directory-name>.vibrai in the working directory)
Override the project’s T2mHash seed for this run
Keep generator-produced clips that resolve to zero notes. By default these are skipped, leaving a gap in both session and arrangement views. Authored literal empty clips are always kept.
Swing amount 0-100 (0 straight, 100 hard triplet). Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Velocity/timing jitter 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Grace-note/roll density 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Tension-section note thinning 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Note articulation length 0-100 (10 = extreme staccato, 100 = full value/legato). Melodic parts only — has no effect on drums, pads, or FX sweeps. Overrides genre/preset default.
Bass motion profile: root, root_fifth, octave_pump, arpeggiated, walking, pedal. Overrides genre default.
How the bass sits against the kick: lock (snap onto it), dodge (push off it), free (ignore it). Overrides genre default.
Emit Live’s per-note probability/velocity-deviation instead of baking randomization in. Melodic parts only — has no effect on drums, pads, or FX sweeps. The loop then varies on every playback, but the audible result is no longer reproducible from the seed. Omit to inherit the genre’s setting.
Target scale root: note name (C, C#, Db, …, B) or pitch class 0–11. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).
Target scale: Major, Ionian, Dorian, Phrygian, Lydian, Mixolydian, Minor, Aeolian, Locrian. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).

MCP tools

plan

Preview a composition with variation knobs (seed/density/etc.) WITHOUT writing to Live — the same generation the ‘generate’ tool runs, stopped before the write. Use plan to iterate on variations; call ‘generate’ when you’re ready to write. Returns a slim summary. Track ids in the summary (session_clips, arrangement_placements, instruments, current_tracks) are 1-based, matching list_tracks and load_device.
String
Path to the .vibrai file (defaults to <current-directory-name>.vibrai in the working directory when omitted)
Nullable`1
Optional seed override
Boolean
Keep generator-produced clips that resolve to zero notes. Default false: such clips (and their arrangement placements) are skipped, leaving a gap. Authored literal empty clips are always kept.
Nullable`1
Swing 0-100 (0 straight, 100 hard triplet). Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Velocity/timing jitter 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Grace-note/roll density 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Tension-section note thinning 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Note articulation length 0-100 (10 extreme staccato, 100 full value/legato). Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Emit Live’s per-note probability/velocity-deviation instead of baking randomization in. Melodic parts only — has no effect on drums, pads, or FX sweeps. The loop then varies on every playback, but the audible result is no longer reproducible from the seed. Null inherits the genre setting.
String
Bass motion profile: root, root_fifth, octave_pump, arpeggiated, walking, pedal; overrides the genre default
String
How the bass sits against the kick: lock, dodge, free; overrides the genre default
String
Optional target scale root: note name (C, C#, Db, …, B) or pitch class 0–11. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).
String
Optional target scale: Major, Ionian, Dorian, Phrygian, Lydian, Mixolydian, Minor, Aeolian, Locrian. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).

generate

Plan + render a composition into Live’s session view and arrangement view. To preview the result without writing to Live, use the ‘plan’ tool first. force=true is required only when append re-renders onto an existing part track whose target slots are non-empty; replace implies consent and never requires force. Automation is not applied by default — the composition’s planned entries are reported and applied by render_automation (or by passing with_automation=true). Track ids in the summary (session_clips, arrangement_placements, instruments, current_tracks) are 1-based, matching list_tracks and load_device. The ONE exception is automation.skipped_entries[].track_id, which is the project’s own part id echoed back for diagnosis — use that entry’s live_track_id (1-based, null when the part bound to no live track) if you need an address to pass to another tool. Call get_skill first to load the Vibrai operational playbook.
String
Path to the .vibrai file (defaults to <current-directory-name>.vibrai in the working directory when omitted)
Boolean
Overwrite existing session clips and arrangement content
Boolean
Deprecated and ignored. Automation no longer fails a render; unresolvable entries are always reported as skips.
Boolean
After rendering, load each part’s default instrument (drum kits for drum parts) so the song is audible.
Boolean
After rendering (and after with_instruments, if set), apply the composition’s arrangement automation. Default false: automation resolves against the live device tree, so it needs instruments already loaded. Never fatal — unresolvable targets are reported and the render still succeeds. Equivalent to calling render_automation immediately after. Check the top-level data_loss field afterwards.
Boolean
Resolve instruments from stock content only: skips explicit defaults.instruments overrides AND tagged instruments, using genre stock defaults + built-in generic. For demos/testing on installs without third-party packs.
String
How to treat MIDI tracks already in the Live set: “replace” (delete existing MIDI tracks, audio/return untouched) or “append” (keep them, add new tracks after the last MIDI track). Omit to receive a needs_decision result listing the current tracks.
Nullable`1
Optional seed override
Boolean
Keep generator-produced clips that resolve to zero notes. Default false: such clips (and their arrangement placements) are skipped, leaving a gap. Authored literal empty clips are always kept.
Nullable`1
Swing 0-100 (0 straight, 100 hard triplet). Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Velocity/timing jitter 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Grace-note/roll density 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Tension-section note thinning 0-100. Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Note articulation length 0-100 (10 extreme staccato, 100 full value/legato). Melodic parts only — has no effect on drums, pads, or FX sweeps; overrides genre/preset default
Nullable`1
Emit Live’s per-note probability/velocity-deviation instead of baking randomization in. Melodic parts only — has no effect on drums, pads, or FX sweeps. The loop then varies on every playback, but the audible result is no longer reproducible from the seed. Null inherits the genre setting.
String
Bass motion profile: root, root_fifth, octave_pump, arpeggiated, walking, pedal; overrides the genre default
String
How the bass sits against the kick: lock, dodge, free; overrides the genre default
Nullable`1
Prefix track names with Ableton’s ’#’ auto-numbering token for this render (overrides env / project setting). Null inherits.
Boolean
Write clips to the Session grid only; skip Arrangement placement. Use with play_song to drive the song from Session view.
Boolean
Delete all Vibrai-generated tracks (same rule/order as clear_project with confirm=true, or ‘vibrai project clear —yes’) before planning and rendering — a clean slate so this run’s composition doesn’t stack on top of a previous, different project’s tracks. Never touches Audio/Return/Master tracks, group/folder tracks, or MIDI tracks whose part type is ‘other’ (user/template tracks).
Boolean
Empty every clip in the set before rendering, KEEPING tracks, instruments, effects, mixer settings and scenes — reuse the set’s rig instead of rebuilding it. Mutually exclusive with clear_first, which deletes tracks instead. NOTE: this does not by itself make generate re-render in place. Only captured or project-init-bound projects reuse existing tracks; a genre-minted project still appends a duplicate track set (issue #558).
Boolean
When a part is bound to a track_id (project init / capture) that no longer exists in the Live set, create it (name from the part, MIDI type) instead of failing. Default false: such a project fails validation up front, naming the missing track_id(s), before anything is written.
String
Optional target scale root: note name (C, C#, Db, …, B) or pitch class 0–11. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).
String
Optional target scale: Major, Ionian, Dorian, Phrygian, Lydian, Mixolydian, Minor, Aeolian, Locrian. Omit to use the project’s own default scale (tiebroken by the open Live set only when the project is still at its untouched preset default).