Sheetmusic4J 0.0.3

2026-07-30 by Frank Delporte

A Quick Fix for ABC Files

Right on the heels of 0.0.2, here’s a small patch release: Sheetmusic4J 0.0.3.

The 0.0.2 release added ABC notation support, with new AbcReader and AbcWriter classes that read and write .abc files into and out of the same Score model as everything else. What slipped through, though, was the last bit of plumbing: the ScoreFile convenience facade — the one-line ScoreFile.load(...) / ScoreFile.save(...) entry point most people start with — didn’t yet recognize the .abc extension. So while the readers and writers themselves worked fine when used directly, loading or saving an ABC file through ScoreFile failed with an Unsupported file extension error.

0.0.3 fixes exactly that. ScoreFile now dispatches .abc to AbcReader on load and AbcWriter on save, alongside the existing MusicXML (.musicxml, .xml, .mxl), MIDI (.mid, .midi), and Guitar Pro (.gp, load only) formats. So this now does what you’d expect:

Score score = ScoreFile.load(Path.of("tune.abc"));
ScoreFile.save(score, Path.of("tune-out.abc"));

I also added round-trip tests that go through the facade specifically, so this stays wired up.

The full list is in the release notes, the difference is on GitHub > compare/v0.0.2…v0.0.3, and the code examples show how to get started. As always, issues and feedback on GitHub are very welcome.