Core progression system
The core progression is the moving harmonic field underneath a spatial composition. Manual mode lets a player set the chords. Generated mode uses a Markov chain over tonal functions, then the transport steps through the result at a configurable chord length.
A progression in Vibe Together is not a decorative label on top of the graph. It is runtime state. Chord nodes in procedural mode, harmony transforms, and composer agents all read the current progression index and current scale degree while signals are moving. Change the progression and the same topology starts making different harmonic decisions.
Composer-agent focus determines how altered chords affect a generated line. rootFocus, chordTones, and guideTones follow the exact root and quality of borrowed chords and secondary dominants. scaleTones, pentatonic, and colorTones keep their parent-scale palette, while strong resolution and anticipation moves may still land on an exact altered chord tone.
Manual mode
Manual mode is the composer-controlled path. The player sets a sequence of scale-degree chords, usually read as Roman numerals in the current key and scale. The graph then steps through that sequence in order. Manual mode is best when the harmonic arc matters: a bassline needs a known landing point, a chorus needs the same lift every time, or a study graph is meant to teach a specific progression.
Manual chords are still relative to the global key and scale. If the key changes, the degree pattern can be preserved while the sounding pitches move. That is what makes a published graph remixable: the topology and progression shape can stay intact while the harmonic color changes.
Generated mode
Generated mode uses a Markov chain. The generator classifies available scale degrees into three tonal functions: tonic, predominant, and dominant. It then chooses the next function from a transition matrix. In the default logic, tonic tends to move toward predominant, predominant tends to move toward dominant, and dominant tends to resolve back toward tonic. The last two chords get extra cadential logic so the loop feels like it has a landing point.
The flavor controls bias the chain rather than writing a fixed song. Tonic influence makes the loop feel more centered. Dominant influence creates more forward pull. Deceptive cadence chance can substitute vi for the expected tonic resolution when the scale supports it. Secondary dominant chance adds chromatic V7/target chords before supported diatonic targets, creating short applied-dominant pulls without changing the underlying key.
Chord length and stepping
The progression does not change every time a signal arrives. The transport owns the stepping. progressionRate sets how many steps a chord lasts, and the runtime derives the active chordIndex from the transport position, the progression start measure, and the current progression length. A one-beat rate makes harmony move quickly. A one-bar or two-bar rate turns each chord into a field that several graph events can move through before the harmony changes.
| Parameter | Type | Range | Default | Description |
|---|---|---|---|---|
| progressionMode | generated | manual | generated | Chooses whether the platform generates the chord degrees or uses the player-authored sequence. | |
| progression | number[] | The active scale-degree chord sequence. Degree 1 is the tonic of the current key and scale. | ||
| progressionSteps | ProgressionStep[] | Optional root accidentals, explicit triad/seventh/sixth/ninth qualities, slash bass, and applied-dominant labels aligned with the degree sequence. | ||
| progressionLength | number | 2-12 chords | How many chords generated mode creates before the loop repeats or regenerates. | |
| progressionRate | number | How many transport steps each chord lasts before `chordIndex` advances. | ||
| progressionLoops | number | How many times a generated progression repeats before a new one is generated. Special values represent forever and until-next-section behavior. | ||
| tonicInfluence | number | 0-1 | Biases generated transitions toward stable tonic-function chords. | |
| dominantInfluence | number | 0-1 | Biases generated transitions toward dominant-function chords that create pull. | |
| secondaryDominantChance | number | 0-1 | Chance to replace a pre-target chord with a chromatic dominant seventh when the scale supports it. | |
| deceptiveCadenceChance | number | 0-1 | Chance that a supported cadence resolves to vi instead of I. |
How the graph hears it
A procedural chord node reads the active degree and sounds a voicing for that chord. A manual chord node ignores the global progression and stays pinned to its own degree. Harmony transforms such as nearest chord tone read the active chord when they decide where to move an incoming pitch. Composer agents use the same context for harmonic focus, guide tones, tendency tones, and resolution behavior. The result is that one progression decision can organize many independent branches without forcing them to play the same rhythm.
Song sections can also borrow or override the core progression. A verse can use the core chords, a chorus can load a preset or custom progression, and a bridge can change harmonic pace. This gives the graph long-form structure while keeping the local topology readable.