starry / README.md
k-l-lambda's picture
Update thumbnail gradient to blue-yellow
2342afe
---
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.