| --- |
| title: Noteworthy Sheet Music Transcription |
| emoji: 🎵 |
| colorFrom: blue |
| colorTo: purple |
| sdk: gradio |
| app_file: app.py |
| python_version: "3.10" |
| pinned: false |
| license: apache-2.0 |
| --- |
| |
| # Noteworthy — Sheet Music Transcription |
|
|
| A side-by-side comparison of [openbmb/MiniCPM-V-4.6](https://huggingface.co/openbmb/MiniCPM-V-4.6), [jon-fernandes/noteworthy](https://huggingface.co/jon-fernandes/noteworthy), a version fine-tuned on sheet music images, and GPT-5.5. |
|
|
| Upload a sheet music image, paste one from the clipboard, or take a photo from a phone/tablet camera, then click **Transcribe Music** to run all three transcriptions in parallel. |
|
|
| ## Run from a phone or iPad |
|
|
| Start the app on your computer: |
|
|
| ```bash |
| python app.py |
| ``` |
|
|
| The app binds to `0.0.0.0:7860` by default. On a phone or iPad connected to the same Wi-Fi network, open: |
|
|
| ```text |
| http://<your-computer-lan-ip>:7860 |
| ``` |
|
|
| Use the Camera tab, allow camera access, choose the rear camera if your browser asks, and frame the page normally with the top-left of the music at the top-left of the preview. Tap or click the camera preview to take a snapshot, then tap **Transcribe Music** after the snapshot appears. |
|
|
| Before inference, images are normalized for transcription and shown under the original input for comparison with a preprocessing confirmation message. Phone orientation metadata is applied, the page is perspective-corrected when a page boundary is detected, staff lines are detected, surrounding blank paper/background is trimmed away, single-line music is cropped to the music band, candidate rotations are scored so the treble clef/key signature appears upright at the top-left, and the result is resized for model input. |
|
|
| The local MiniCPM models are warmed up at startup with an example image so the first real transcription does not pay the initial generation setup cost. |
|
|
| For access from another network, start with a temporary public Gradio link: |
|
|
| ```bash |
| GRADIO_SHARE=1 python app.py |
| ``` |
|
|