Skip to main content

.vibrai project files

A .vibrai file is a plain YAML text file — a song blueprint. It sits next to your .als file and describes:
  • Sections — the named parts of the arrangement (Verse 1, Chorus 1, Drop, etc.), their lengths, tension category, and positions.
  • Parts — what plays in each section: which track, which generator, and any scale or variation overrides.
  • Templates — arrangement-view clip placements and automation slot definitions.
  • Generation settings — global tempo, scale (root + name), and a deterministic seed.
Project files are human-readable, version-controllable, and round-trippable. The same file + the same seed always produces byte-identical output, so .vibrai files are a lightweight way to version-control your music. The vibrai capture command (CLI) or capture_project tool (MCP) creates a .vibrai from whatever is currently in your Live set — you don’t have to write one from scratch.

Generators

The engine ships four generators. Each generator receives a section’s tension level, the active scale, and a stable seed, and produces a set of MIDI notes: Euclidean — for rhythmic parts (kick, snare, hi-hat, percussion, crash, fill, roll). Uses the Bjorklund algorithm to spread hits evenly across a step grid. Tension controls density: higher tension = more hits; lower tension = sparser patterns. Melodic — for line-based parts (bass, lead, arp, riff, melody, hook, solo). Walks a 16-step grid over a chord progression chosen per tension category, drawing pitches from a per-genre melodic cell that defines step density, interval pool, octave range, and accent shape. Scale-aware and deterministic per seed. Ambient — for sustained harmonic parts (pads, chords, ambience, loops). Generates drop-2 chord voicings from a bank of chord progressions, chosen per tension category. Scale-aware: output respects the resolved scale for each (section, part) pair. FxSweep — for FX risers and releases. Emits one whole-note trigger per bar of the section; the rising or falling motion itself is a filter-cutoff sweep the arrangement engine writes as automation (exponential up for a riser, exponential down for a release). In a .vibrai part, the generator: field accepts Euclidean, Melodic, Ambient, or FxSweep. Genre presets (.vibraigenre files) wire each part type to the appropriate generator and configure section lengths, tempo, and templates. Fourteen genre libraries ship with Vibrai today.

Theme and variation

A Vibrai arrangement is built around a theme extracted from the first section (by position). Every other section’s output is derived from that theme, not from scratch — this guarantees coherence across a song. Variation operators let you modify the theme per-section without breaking coherence. Three operators ship today, applied in fixed order (transposedensitymotif) regardless of the order you write them in YAML: Variation is relative to the theme, not cumulative. Section 3’s output depends only on the theme + section 3’s own variation block — never on section 2. This means you can re-render a single section without affecting any other, and vibrai generate --dry-run can preview individual sections safely.
Scale overrides follow a Part > Section > Global precedence, resolved field-by-field. A Part can override only the root note while inheriting the Section’s scale name. This lets a single section set a key for all its parts while one part (say, the arp) plays in a different mode.