Files
pytheory/tests
kennethreitz af1a8d0c2e Notation: fix hold() bar misalignment + emit articulations; release 0.57.4
- Part.hold() (overlapping) notes no longer corrupt bar lengths in ABC,
  LilyPond, and MusicXML export. They advanced the bar counter at full
  duration, drifting every following barline. A new _resolve_holds()
  helper folds each held note's pitch into the next sounding note as a
  chord, keeping the pitch and aligning bars. Single-voice notation
  can't show the exact sustain; MIDI export is lossless there.
- Articulations (staccato/accent/marcato/tenuto/fermata) now emit as
  LilyPond marks and MusicXML <articulations>/<fermata>. MusicXML had
  extracted note.articulation then dropped it.

Lyrics and per-note velocity remain unrepresented in notation (a
single-voice limitation, documented).

New tests: hold bar-alignment, articulation emission.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 08:28:01 -04:00
..