Spaces:
Sleeping
Sleeping
metadata
title: Starry
emoji: ✨
colorFrom: blue
colorTo: yellow
sdk: docker
pinned: false
license: bsd
short_description: End-to-end Optical Music Recognition (OMR) demo
app_port: 7860
STARRY — Optical Music Recognition
Starry is a demo application for an end-to-end Optical Music Recognition (OMR) system. It transforms scanned sheet music images into structured digital music notation through a multi-stage ML pipeline, and provides an interactive platform for reviewing, editing, and managing the recognition results.
What Makes Starry Different
- Multi-stage ML pipeline — Seven specialized models work in sequence: layout detection, staff gauge prediction, foreground/background mask separation, symbol semantic recognition, text location detection, OCR, and bracket recognition. Each model focuses on a specific subtask, enabling high overall accuracy.
- Automatic regulation — An ONNX-based solver analyzes recognized measures for timing consistency and automatically corrects quantization errors, reducing the need for manual intervention.
- Measure-level quality tracking — The system identifies and flags problematic measures for human review, with an annotation workflow that tracks corrections per-measure.
- Real-time progress — WebSocket streaming keeps the UI updated during long-running recognition and regulation tasks.
- Score collection management — Organize recognized scores into music sets with tagging and categorization, useful for building OMR datasets or curating repertoire.
Architecture
Frontend (React)
↓ nginx (port 7860)
├─ /api/score → cluster-server (NestJS)
└─ /api/* → omr-service (Fastify)
├─ async task worker
├─ PostgreSQL
└─ ZMQ → Python ML services (×7)
Note
This is a lightweight demo deployment on HuggingFace Spaces. The ML prediction services (layout, gauge, mask, semantic, text, OCR, brackets) are not included in this Space — it is intended for showcasing the review and editing workflow with pre-computed results.