GP files with a vocal track previously produced only the legacy vocals
arrangement XML; the melody sidecar converter existed but was never
wired, so imported paks had no karaoke-ready pitch data.
- convert_file() now calls _emit_vocal_sidecars() after writing the
vocals XML (best-effort: a sidecar failure never breaks conversion,
matching the notation-sidecar posture)
- lyrics sidecar is projected from the just-built vocals XML so timing
stays in lockstep; the XML lyric convention's trailing '+' (join) is
mapped to the spec 7.1 '-' (join) - a passthrough would have turned
every joined word into a line break
- convert_vocal_track_to_pitch_sidecar() gains require_lyric=False for
lyric-less melody tracks (pitch sidecar only)
- attach_vocal_sidecars_to_sloppak() added as the assembly-step helper
(companion to attach_notation_to_sloppak): writes the sidecars into a
directory-form pak and sets manifest lyrics/lyrics_source/vocal_pitch
with no-clobber guards
- gp2rs_gpx registered in the spec-conformance READERS list
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: ChrisBeWithYou <chris@rifflarr.local>