mirror of
https://github.com/storytold/soundcraft.git
synced 2026-10-30 13:36:44 -06:00
Addresses the review threads on #993: - MAX_NOTES_PER_PART: the layout loop stops collecting past 100k notes per part, so the raw note vector cannot grow unboundedly regardless of clip count. - fill: a pitch the chord cap rejects no longer extends the onset end (e.0), so dropped pitches do not inflate chord duration; a retained pitch that reappears with a longer duration still does. - musicxml now checks the budget before the per-measure loop (covers an oversized title/composer, escaped, even with zero measures), after the part-list, and at the end, so no growth path is unchecked. - svg now checks every measure (rest-only or missing measures cannot grow the output untouched past the budget), every staff, every system and the final footer, so staff/clef/bracket growth is capped too. - over_budget takes the budget as a parameter and the budgeted entry points stay separate so tests pass a tiny budget instead of building 256 MiB. The oversize test shrank from ~256 MiB to ~64 KiB and the new header test checks the title/composer escape path directly. Regression tests.