Read, write, and manage automation envelopes.Documentation Index
Fetch the complete documentation index at: https://docs.vibrai.com/llms.txt
Use this file to discover all available pages before exploring further.
Command line
automation params
List automatable parameters for a device
Track number (1-based: 1, 2, … or first, second, …)
Device ID, 1-based position number, or name substring
automation slots
Enumerate symbolic automation slot vocabulary for a PartType
PartType enum value: Pad | Lead | Bass | Arp | Bd | Sd | Hh | Other
automation get
Get automation envelope
Track number (1-based: 1, 2, … or first, second, …)
Scene number (1-based: 1, 2, … or first, second, …)
Device ID, 1-based position number, or name substring
Parameter index from
vibrai automation params, or the param name (e.g., “Cutoff”)automation write
Write automation points
Track number (1-based: 1, 2, … or first, second, …)
Scene number (1-based: 1, 2, … or first, second, …)
Device ID, 1-based position number, or name substring
Parameter index from
vibrai automation params, or the param name (e.g., “Cutoff”)--json-data
Automation points as JSON array (free-form). Mutually exclusive with —curve.
--file
Path to JSON file containing automation points array. Mutually exclusive with —curve.
--curve
Curve shape: LinearUp|LinearDown|ExpUp|ExpDown|Sine|Triangle|SawUp|SawDown|Hold|Wander. Mutually exclusive with —json-data/—file.
--length
Curve length in beats. Required when —curve is given.
--from
Curve start value (for Linear/Exp/Sine/Triangle/Saw/Hold).
--to
Curve end value (for Linear/Exp/Sine/Triangle/Saw).
--subdivisions
Number of teeth (for SawUp/SawDown only). Default 4.
--center
Wander center value.
--range
Wander deviation amplitude.
--smoothness
Wander knot density (0=jittery, 1=lazy drift).
--seed
Wander RNG seed. Auto-generated if omitted.
automation clear
Clear a single automation envelope on a session-view clip
Track number (1-based: 1, 2, … or first, second, …)
Scene number (1-based: 1, 2, … or first, second, …)
Device ID, 1-based position number, or name substring
Parameter index from
vibrai automation params, or the param name (e.g., “Cutoff”)automation clear-all
Clear all automation envelopes on a session-view clip
Track number (1-based: 1, 2, … or first, second, …)
Scene number (1-based: 1, 2, … or first, second, …)
automation apply
Apply an automation slot to project sections (mutates Template.Automation)
--part
Part id from project.Parts[].Id
--slot
Symbolic slot key (e.g. “cutoff”, “resonance”, “macro_3”, “synth_cutoff”). Use
vibrai automation slots <part-type> to list supported keys.LinearUp | LinearDown | ExpUp | ExpDown
--sections
Comma-separated section ids, or ‘all’ for every section
--project
Path to .vibrai file (default: Untitled.vibrai in CWD)
--in-memory
Mutate but do not save (preview mode)
--from
Curve start value (overrides the default 0 or 1 for the chosen shape).
--to
Curve end value.
--subdivisions
Saw teeth (default 4).
--center
Wander center value.
--range
Wander deviation amplitude.
--smoothness
Wander knot density.
--seed
Wander RNG seed (auto if omitted).
--apply-to-live
Also push the applied slots into the running Live set via the safe bouncer. Requires an existing populated arrangement; slots without a clip at the section are skipped.
automation get-arrangement-envelopes
Read all envelopes on an arrangement-view clip (clip-relative beats)
Track number (1-based: 1, 2, … or first, second, …)
Arrangement-clip number on the track (1-based: 1, 2, … or first, second, …; from
vibrai arrangement get-clips)automation bounce
Bounce one or more automation envelopes into the arrangement view
Track number (1-based, or ‘first’, ‘second’, …)
Start position (e.g. ‘0’ or ‘2.3’ for bar 2 beat 3)
Bounce window length in beats
--envelopes
Path to a JSON file containing an array of AutomationEnvelopeSpec (see MCP tool description for shape)
automation ledger
Read the in-process ledger of arrangement envelopes committed by bounce/place.
--track
Optional track number (1-based). Omit for all tracks.
MCP tools
list_automation_params
List the automatable parameters of a device on a track.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Device ID or 1-based position number or name substring
get_automation
Read the automation envelope for a parameter on a session-view clip.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Scene number of the clip carrying the envelope (1-based: 1, 2, … or ‘first’, ‘second’, …)
Device ID or 1-based position number or name substring
Parameter index (from list_automation_params .param_id column) OR the parameter’s display name (.param_name column)
write_automation
Write an automation envelope onto a session-view clip (replaces existing points). Provide EITHER points (free-form) OR curveSpec (compact shape — Sine, Wander, etc — expanded server-side). Returns the readback so you can verify what landed.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Scene number of the clip that should carry the envelope (1-based: 1, 2, … or ‘first’, ‘second’, …)
Device ID or 1-based position number or name substring
Parameter index (from list_automation_params .param_id column) OR the parameter’s display name (.param_name column)
Automation points (time + value). Mutually exclusive with curveSpec.
Compact curve specification. Mutually exclusive with points. Shape can be LinearUp/LinearDown/ExpUp/ExpDown/Sine/Triangle/SawUp/SawDown/Hold/Wander.
clear_automation
Remove a single automation envelope (one (device, param) pair) from a session-view clip.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Scene number of the clip (1-based: 1, 2, … or ‘first’, ‘second’, …)
Device ID or 1-based position number or name substring
Parameter index (from list_automation_params .param_id column) OR the parameter’s display name (.param_name column)
clear_all_automation
Remove every automation envelope on a session-view clip.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Scene number of the clip (1-based: 1, 2, … or ‘first’, ‘second’, …)
get_arrangement_clip_envelopes
Read the clip-level envelopes attached to an arrangement clip. KNOWN ISSUE: returns empty for clips that arrived via duplicate-to-arrangement (which is how bounce_arrangement_automation and place_arrangement_clip both write). For verification of writes, use get_arrangement_envelopes_ledger instead.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Arrangement-clip number on the track (1-based: 1, 2, … or ‘first’, ‘second’, …; from get_arrangement_clips)
apply_automation_template
Author a composition-level automation slot on the .vibrai project’s arrangement template. The slot is a symbolic key resolved through AutomationTargetMap (see list_automation_slots for the vocabulary per PartType). Slots fall into two families: bare-synth slots (synth_cutoff, synth_resonance, synth_volume) target a parameter on device 0 by LOM name; rack-macro slots (cutoff, resonance, macro_1..macro_16) target a macro on the first Instrument Rack on the chain, resolved at bounce-time. The project is loaded, mutated, validated, and saved. Idempotent on (sectionId, partId, slot). Use “all” in sections to apply to every section. Set apply_to_live: true to also push the just-applied slots into the running Live set via the safe bouncer (Spec A’s atomic-rollback contract applies per slot). The .vibrai file is updated first, then each applied (section, part, slot) tuple is resolved to a bouncer-shaped envelope and bounced onto the existing arrangement clip at the section’s position. Slots whose section has no arrangement clip are skipped with status SkippedNoArrangementClip — Spec B is an iteration tool, not bootstrapping. Verify what landed via get_arrangement_envelopes_ledger. Default false preserves the file-only flow that callers depend on today.
Absolute filesystem path to the .vibrai file.
Canonical part id from project.Parts[].Id
Symbolic slot key (e.g. “cutoff”, “resonance”, “macro_3”, “synth_cutoff”). Use list_automation_slots to enumerate keys for a PartType.
AutomationCurve enum: LinearUp | LinearDown | ExpUp | ExpDown
Section ids to apply to, or the single literal “all” to apply to every section in project.Sections
If true, also push the applied slots into the running Live set via the safe bouncer. Default false — file-only authoring. Requires an existing populated arrangement; slots whose section has no arrangement clip are skipped with a status. See recipe
apply_automation_template_live for the iteration flow.list_automation_slots
Enumerate the symbolic automation slots supported for a PartType. Returns a list of {slot_key, target_kind, target_details, description}. target_kind is “device_param” or “macro”. Macro slots resolve at bounce-time; device_param slots resolve to a fixed (device_index, param_name) pair. Returns an empty list for PartTypes with no entries (e.g. Bd, Sd, Hh).
PartType enum value: Pad, Lead, Bass, Arp, Bd, Sd, Hh, Other
bounce_arrangement_automation
ADVANCED PRIMITIVE — for routine ‘write automation into the arrangement,’ prefer place_arrangement_clip with carry_envelopes:true. Bounces one or more envelopes into Live’s arrangement view by snapshotting overlapping clips, deleting them, writing a merged scratch clip, then duplicating it back into place. The operation is atomic: on any failure the original clips are restored to their pre-call state. On rollback failure the call throws BounceRollbackPartialException with per-clip restore status. Note: success rewrites every overlapping clip, losing clip name/color metadata in the process. See recipe write_arrangement_automation for the canonical safe path.
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
Start position in arrangement: bar.beat notation (e.g. ‘2.3’ = bar 2, beat 3) or raw beats (e.g. ‘8’ or ‘8.0’)
Length of the bounce window in beats
Array of envelope specs. Each entry has a discriminated Target (kind=“device_param” or “macro”) and EITHER points or curveSpec.
get_arrangement_envelopes_ledger
Read back the in-process ledger of envelopes committed to Live’s arrangement view by bounce_arrangement_automation or place_arrangement_clip (carry_envelopes:true). Use this for programmatic verification — the LOM read-back path (get_arrangement_clip_envelopes) returns empty for clips that arrived via duplicate-to-arrangement. The ledger is in-process, bounded LRU (256 per track), and resets on MCP server restart. See recipe verify_arrangement_writes for the full verification flow.
Optional track number (1-based). Omit for all tracks.