- NEW material 'giuliani': figures require a real voicing — the generator
assigns cycle positions (bass root + upper chord tones) to DISTINCT
strings with valid frets per bar; bars that cannot be voiced are skipped
(deterministic), clear error when nothing fits. Patterns: p-i-m, p-i-m-a,
p-a-m-i, a-i-m, p-i-m-a-m-i, p-m-a-m-i-m. Honors the chord pool, string
restrictions and the tuning; one figure per beat.
- 6/8 meter added (numerator 6) across score model, settings, generators;
meter selects now offer 4/4, 3/4, 6/8.
- Arpeggio category: Giuliani entries replaced with note-sequence
broken-chord figures (1-3-2-1, 1-3-2-5(8), 1-5-3-5(8), 1-2-3-5-3) —
pure pitch sequences, no voicing claims.
- Beam fix (root cause): setBeam now happens BEFORE voice.draw — VexFlow
decides flag vs beam at draw time; registering after drawing left both
flag and beam. Beams drawn after notes, flags suppressed correctly.
- Sequence mode: bars (2/4/6/8) with one chord per bar, chosen by
functional rules (I->IV/V/vi...), diatonic cycle, or random (no immediate
repeats); deterministic via melody seed. Chord symbols per bar in the
score model (chordSymbols) rendered above the staff via setSection.
- Rhythm: quarters or eighths (cycling up/down through the pattern).
- Single-chord mode unchanged (whole path, overflow bars if needed).
- Auto-start: 'Start on first note (no count-in)' — step pace begins the
run as soon as the mic detects the first note; no start press needed.
- 'New' button re-rolls the progression (new seed).
- Tests 174/174.