Skip to content

Releases: Luckolite/Score-OMR

v0.1.5

Choose a tag to compare

@Luckolite Luckolite released this 02 Nov 04:01
  • Notes and pitch: improved reading of faint noteheads, touching chords, ledger lines and shared stems across staves. Repeated key signatures are less likely to be read as accidentals on individual notes. Octave clefs and mid-system returns to treble clef are better recognized.
  • Rhythm and rests: better beam and flag counts on faded or crowded notes, including double and triple beams. Improved recognition of augmentation dots, tuplets, grace notes and rests in independent voices.
  • Ties and expression: improved short ties across heads, systems and pages, plus slurs, hairpins, bow directions, accents and staccato dots. More checks distinguish these marks from staff lines, lettering and nearby beams.
  • Timing and playback: more faithful pickups, printed barlines, meter changes and simultaneous voices. Marked tempos now convert once from the printed beat unit, keeping playback and engraving in agreement.
  • Guitar and slides: better handling of connected slides, graphical and quarter-tone bends, whammy direction and strums. Supported continuous slides use MIDI pitch bends timed to reach the destination note.
  • MusicXML and engraving: exports retain more printed measure numbers, pickup lengths, beam groups, octave shifts, arpeggios, cue notes, parenthesized note groups and slur endpoints.
  • Integration: the Java decoder and Python writer agree on recognition revision 136 and Guide format 299 so users can identify cached results from older decoders.

The wheel includes the decoder and model. Requires Python 3.10/3.11 and JDK 17+. Use the inference,pdf,audio extras for PDF recognition and MP3 export.

Recognition is experimental. MP3 uses a basic synthesized tone. Model weights are unchanged and remain Apache-2.0 licensed.

v0.1.4

Choose a tag to compare

@Luckolite Luckolite released this 16 Oct 00:26
  • Speed: reused geometry, fewer pixel scans and OCR resizes, less allocation, and better desktop CPU use.
  • Guitar tabs: improved triplets, dotted rests, ties across systems/pages, technique marks and alternate tunings.
  • Metadata OCR: title, artist, composer and arranger extraction from OCR text, with improved cover/header handling through the Java API.
  • Playback: supported slowdowns, fermatas, breath pauses, piano pedal, dynamics and paired tremolos.
  • Exports: added MP3; MusicXML retains more clefs, slurs, articulations, ornaments, grace notes and explicit unpitched events.
  • Recognition: improved faint, shaded and angled notation, accidentals, independent rests, ties and tuplets.
  • Timing: fixes for pickups, changing meters, tempo marks, repeats and alternate endings.

The wheel includes the decoder and model. Requires Python 3.10/3.11 and JDK 17+. Use the inference,pdf,audio extras for PDF recognition and MP3 export.

Recognition is experimental. MP3 uses a basic synthesized tone. Model weights are unchanged and remain Apache-2.0 licensed.

v0.1.3

v0.1.3 Pre-release
Pre-release

Choose a tag to compare

@Luckolite Luckolite released this 29 Sep 02:31
  • MIDI playback: follows supported repeats and navigation, projects notes through the performed sequence, and restores numeric tempo at return destinations. The shared Java core and Python exporter support bounded traversal and partial-segment note projection.
  • MusicXML: added concert-pitch export through the CLI and Python API. Exports retain reconstructed notes, rests, chords, ties, key and meter information, numeric tempo, and guitar effects as text annotations.
  • Recognition: improved faint accidentals, noteheads, beams, augmentation dots, flags and rests, with evidence checks to limit false notes and symbols. Better printed tempo and guitar-tab rhythm/effect recognition carries through to exports.
  • Ties and expression: better ties across staff systems and pages, with pitch and key-context safeguards. Expanded ornaments, articulations and dynamics include compact mordents and hairpins continuing into adjacent systems.
  • Integration and validation: richer navigation and expressive-event records, validated semantic wire support, packaged glyph resources, provenance and licensing checks, and expanded original synthetic regressions.

The wheel includes the Java decoder and inference model. Requires Python 3.10/3.11 and JDK 17+. Use the inference,pdf extras for PDF recognition. Separate JAR and model downloads include SHA-256 checksums and model metadata.

Recognition is experimental. MusicXML reconstructs notation in source reading order rather than reproducing the page layout. Automatic expressive curves, fermata holds, source-head cache integration and private score-audit prototypes were unfinished at this release. Expressive-event records do not guarantee automatic performance of every mark. Model weights retain their documented lineage and were not newly trained for this release.

v0.1.2

v0.1.2 Pre-release
Pre-release

Choose a tag to compare

@Luckolite Luckolite released this 12 Sep 04:45
  • Model: added the v4 segmentation model, candidate24 selected at step 8,000, with matching PyTorch and NumPy weights. The Python package uses v4 by default. The previous v3 model remains available in the repository and v0.1.0 release.
  • Pitch recognition: keeps staff tracks from following nearby beams, correcting a group of pitch errors while preserving note timing.
  • Training and integration: added portable fine-tuning and export tools. Training is optional. The Python wheel provides image/PDF-to-JSON/MIDI inference, and the JAR provides the standalone Java decoder.
  • Validation: 1,096 Java tests, 19 Python tests, installed-package PNG/PDF pitch and duration checks, and scoped real-score regressions.

See the README for installation and integration. SHA256SUMS.txt lists checksums for the downloadable artifacts. Code and weights remain Apache-2.0 licensed, including use and modification in closed-source products under that license.

Recognition is experimental. Dim-paper development accuracy regressed, and missed or extra notes and rhythm errors remain. The new held-out model split had not been evaluated at this release. See models/evaluation.json for coverage and limitations.

v0.1.0

v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@Luckolite Luckolite released this 10 Sep 02:43
  • Standalone recognition: first experimental release, with a Python image/PDF command and API plus a dependency-free Java recognition core.
  • Outputs: JSON recognition results and MIDI previews, with original examples and geometry regression tests.
  • Model and training: independent float16 TFLite weights, a PyTorch checkpoint, exporter arrays and training scripts.
  • Validation: 180 Java tests, 9 Python tests, exact eight-note PNG/PDF model-to-MIDI smoke checks, a synthetic generator audit, a two-step training smoke run and a fresh TFLite re-export. The re-export reproduces the bundled float16 model byte-for-byte, and the installed wheel passed the same image/PDF checks.

The wheel includes the core JAR and model. Requires Python 3.10/3.11 and Java 17+. Use the inference and optional pdf extras. Individual model/JAR downloads and a model archive support other integrations. SHA256SUMS covers all binary assets.

Recognition is experimental. Review recognized notes and timing. Text OCR is supplied by the caller, and initial meter and tempo are explicit arguments. MIDI is a preview rather than a complete expressive performance. These checks are not a general transcription-accuracy score. Original code and independent model weights are Apache-2.0 licensed, permitting commercial and closed-source use subject to the license and notices. See the model card and licensing guide.