SheetSage2: Coherent Lead-Sheet Transcription with Synthetic Supervision
Organizations: New York University · MBZUAI · ACE Studio · The Hong Kong University of Science and Technology
Abstract
Transcribing music into a human-readable score requires a coherent understanding of rhythm, harmony, melody, and form. Two obstacles limit this goal: annotated recordings are scarce, and accurate local predictions can still produce inconsistent musical sequences. We present SheetSage2, a unified music transcription framework that combines synthetic data, task-specific structured decoding, and autoregressive distillation. Automatically annotated MIDI, rendered into audio, provides scalable supervision across music understanding tasks. Task-specific structured decoders integrate complementary musical cues and their temporal dependencies to produce musically coherent scores. Autoregressive distillation further retains transcription accuracy without task-specific dynamic programming at inference. Across eight benchmark collections, a single SheetSage2-AR model exceeds the listed prior systems on 12 of 15 benchmark--metric pairs in our evaluation, substantially improving over SheetSage1 and surpassing task-specific models on several benchmarks. Model weights and inference code are publicly available.
Figures & tables
| Task | Label source |
|---|---|
| Beat / tempo | Tick resolution and tempo events. |
| Meter / downbeat | Time-signature events and the metrical grid. |
| Melody | Bootstrapped from track-name labels. |
| Chord | Bootstrapped from expert-rule labels. |
| Key | Bootstrapped from expert-rule labels. |
| Structure | Curated MIDI text markers (SLMS) ( Eldeeb & Malandro, 2025 ) . |
| Task | Benchmark | Metric | SheetSage1 | madmom | Prior specialist | SheetSage2 | |
| Prober | AR | ||||||
| Beat | GTZAN | F1 | 86.07 | 86.07 | 89.01 a | 82.93 | 86.27 |
| osu2017 | 91.80 | 91.80 | 89.19 a | 92.28 | 93.01 | ||
| Downbeat | GTZAN | F1 | 64.65 | 64.65 | 78.28 a | 78.74 | 80.45 |
| osu2017 | 83.47 | 83.47 | 85.90 a | 92.79 | 92.90 | ||
| Key | GiantSteps | Score | 43.89 | 74.62 | 72.09 b | 78.29 | 77.73 |
| Task-training audio | Beat | Downbeat | Key | Chord | Structure | Melody |
|---|---|---|---|---|---|---|
| Synthetic only | 79.52 | 76.64 | 75.66 | 76.99 | 56.76 | 54.77 |
| Real only | 85.43 | 82.06 | 75.69 | 77.65 | 74.88 | 74.68 |
| Real + synthetic | 87.60 | 85.77 | 75.46 | 79.22 | 76.46 | 74.69 |
| Improvement by synth. | +2.17 | +3.71 | -0.24 | +1.57 | +1.58 | +0.01 |
| osu2017 | Hooktheory | |||||||
|---|---|---|---|---|---|---|---|---|
| Beat This! | Prober | P-DBN | AR | Beat This! | Prober | P-DBN | AR | |
| Mixing ratio (%) | 20.74 | 2.96 | 3.70 | 1.48 | 17.30 | 0.34 | 1.36 | 0.51 |
| SheetSage1 | Prober | Prober (Pitch Marginal) | AR | |
|---|---|---|---|---|
| Mixing ratio (%) | 34.83 | 9.31 | 12.91 | 11.71 |
Appendix figures & tables24 assets
Supplementary material from the paper’s appendix.
Appendix
| Context | Original serialized tokens |
|---|---|
| Task prefix | <|sos|> <|timestamp|> <|downbeat_meter|> <|structure|> <|key|> <|chord_full|> <|melody_full|> <|out|> |
| Measure 1 0.02–1.83 s | <subbeat_shift_0> <time_0.02s> <meter_4/4> <eighth_pos_0> <structure_intro> <key_G#:minor> <chord_full_G#:min> <pitch_68_track_1> <duration_4> <subbeat_shift_4> <time_0.50s> <eighth_pos_2> <subbeat_shift_2> <pitch_68_track_1> <subbeat_shift_1> <pitch_70_track_1> <subbeat_shift_1> <time_0.94s> <eighth_pos_4> <pitch_71_track_1> <duration_2> <subbeat_shift_3> <pitch_70_track_1> <duration_2> <subbeat_shift_1> <time_1.39s> <eighth_pos_6> <subbeat_shift_2> <pitch_68_track_1> <duration_1> |
| Measure 2 1.83–3.61 s | <subbeat_shift_2> <time_1.83s> <eighth_pos_0> <chord_full_F#:maj> <pitch_68_track_1> <duration_4> <subbeat_shift_4> <time_2.27s> <eighth_pos_2> <subbeat_shift_2> <pitch_66_track_1> <duration_1> <subbeat_shift_2> <time_2.71s> <eighth_pos_4> <pitch_66_track_1> <duration_5> <subbeat_shift_4> <time_3.17s> <eighth_pos_6> |
| Measure 3 3.61–5.39 s | <subbeat_shift_4> <time_3.61s> <eighth_pos_0> <chord_full_E:maj7> <pitch_68_track_1> <duration_4> <subbeat_shift_4> <time_4.05s> <eighth_pos_2> <subbeat_shift_2> <pitch_68_track_1> <subbeat_shift_1> <pitch_70_track_1> <subbeat_shift_1> <time_4.50s> <eighth_pos_4> <pitch_71_track_1> <duration_2> <subbeat_shift_3> <pitch_70_track_1> <duration_2> <subbeat_shift_1> <time_4.94s> <eighth_pos_6> <subbeat_shift_2> <pitch_71_track_1> <duration_1> |
| Measure 4 5.39–7.17 s | <subbeat_shift_2> <time_5.39s> <eighth_pos_0> <chord_full_F#:maj> <pitch_75_track_1> <duration_4> <subbeat_shift_4> <time_5.83s> <eighth_pos_2> <subbeat_shift_2> <pitch_73_track_1> <duration_1> <subbeat_shift_2> <time_6.27s> <eighth_pos_4> <pitch_73_track_1> <duration_5> <subbeat_shift_4> <time_6.71s> <eighth_pos_6> |
| Context | Original serialized tokens |
|---|---|
| Measure 21 35.61–37.39 s | <subbeat_shift_2> <time_35.61s> <eighth_pos_0> <chord_full_E:maj> <pitch_80_track_1> <duration_1> <subbeat_shift_2> <pitch_83_track_1> <duration_1> <subbeat_shift_2> <time_36.05s> <eighth_pos_2> <pitch_82_track_1> <duration_1> <subbeat_shift_2> <pitch_83_track_1> <subbeat_shift_1> <pitch_85_track_1> <duration_3> <subbeat_shift_1> <time_36.50s> <eighth_pos_4> <chord_full_F#:maj> <subbeat_shift_4> <time_36.94s> <eighth_pos_6> <pitch_87_track_1> <duration_3> |
| Measure 22 37.39–39.17 s | <subbeat_shift_4> <time_37.39s> <eighth_pos_0> <structure_verse> <key_C:minor> <chord_full_C:min7> <pitch_70_track_1> <duration_1> <subbeat_shift_2> <pitch_70_track_0> <duration_1> <subbeat_shift_2> <time_37.83s> <eighth_pos_2> <pitch_70_track_0> <subbeat_shift_1> <pitch_70_track_0> <duration_1> <subbeat_shift_2> <pitch_67_track_0> <subbeat_shift_1> <time_38.27s> <eighth_pos_4> <pitch_70_track_0> <subbeat_shift_1> <pitch_70_track_0> <duration_1> <subbeat_shift_2> <pitch_70_track_0> <duration_1> <subbeat_shift_1> <time_38.72s> <eighth_pos_6> <subbeat_shift_1> <pitch_67_track_0> <subbeat_shift_1> <pitch_67_track_0> <subbeat_shift_1> <pitch_66_track_0> |
| Training set | Songs | Audio hours | Audio type |
|---|---|---|---|
| LA / MALD ( Lev, 2024 ; Jiang, 2025 ) | 355,095 | 19,269.7 | MIDI synthesis |
| SLMS ( Eldeeb & Malandro, 2025 ) | 6,130 | 366.4 | MIDI synthesis |
| Expanded lead-sheet corpus ( Donahue et al., 2022 ) | 32,243 | 2,349.1 | Recordings |
| HarmonixSet training set ( Nieto et al., 2019 ) | 512 | 31.5 | Recordings |
| Total | 393,980 | 22,016.7 | Mixed |
| Non-melody Prober | Melody Prober | SheetSage2-AR | |
|---|---|---|---|
| Head | Two-layer MLP, width 512 | Six RoFormer layers, width 512, 8 heads | Six-layer BART decoder, width 512, 8 heads |
| Output | 160 binary channels | 926-class softmax | 31,678-class softmax over event tokens |
| Training data | 393,980 songs (Table 9 ) | 220,341 songs | 441,094 pseudo-labeled recordings |
| Excerpts | 300 s and 30 s, 25-Hz frames | 30 s, 384 grid positions | 300 s, up to 5,120 tokens |
| Pitch augmentation | Continuous, semitones | Continuous, semitones | None |
| Global batch | 72 | 128 | 32 |
| Model | Task | Channels | Content |
|---|---|---|---|
| Non-melody | Chord | 48 | Root, chroma, extension, and bass, 12 pitch classes each |
| Key | 24 | 12 major and 12 minor keys | |
| Rhythm | 64 | Downbeat, quarter-note, and eighth-note events, four 100-Hz slots each; two meter denominators; 25 median-tempo and 25 relative-tempo bins | |
| Structure | 24 | 23 section classes and one boundary | |
| Melody | Melody | 926 | pitch–interval categories, 24 durations, one rest, and five auxiliary slots |
| Quality | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Other bass |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| maj | /2 , /3 , /5 | ||||||||||||
| min | /2 , /b3 , /5 | ||||||||||||
| dim | — | ||||||||||||
| aug | — | ||||||||||||
| maj7 | /3 , /5 , /7 | ||||||||||||
| min7 | /b3 , /5 , /b7 |
| Semitone offset | Major key | Minor key |
|---|---|---|
| 0 | Perfect unison | Perfect unison |
| 1 | Augmented unison | Minor second |
| 2 | Major second | Major second |
| 3 | Augmented second | Minor third |
| 4 | Major third | Major third |
| 5 | Perfect fourth | Perfect fourth |
| Spelling | Chord tones (1, 3, 5, 7) | Tone costs | Total |
| C :hdim7 | C , E, G, B | 1, 0, 0, 0 | 2 |
| D :hdim7 | D , F , A , C | 5, 8, 11, 7 | 36 |
| B x :hdim7 | B x , D x , F x , A x | 13, 10, 7, 11 | 54 |
| Relation | Example | Score |
|---|---|---|
| Same | C major vs. C major | 1.0 |
| Fifth | C major vs. G major | 0.5 |
| Relative | C major vs. A minor | 0.3 |
| Parallel | C major vs. C minor | 0.2 |
| Other | C major vs. D major | 0.0 |
| osu2017 | Chords1217 | JAAH | |||||||
| Metric | CF | Prober | AR | CF | Prober | AR | CF | Prober | AR |
| Root | 87.00 | 91.18 | 90.77 | 84.65 | 86.13 | 85.69 | 60.43 | 66.62 | 67.55 |
| Thirds | 85.72 | 90.21 | 89.91 | 81.79 | 83.04 | 82.55 | 57.56 | 63.02 | 64.14 |
| Maj/min | 86.55 | 90.43 | 90.08 | 83.94 | 84.29 | 83.81 | 59.45 | 62.94 | 64.50 |
| Triads | 83.96 | 88.26 | 87.99 | 77.73 | 78.80 | 78.53 | 56.65 | 60.27 | 61.81 |
| Sevenths | 76.19 | 74.64 | 75.58 | 72.39 | 71.60 | 72.07 | 46.49 | 45.15 | 47.89 |
| Benchmark | Metric | SheetSage1 | MuScriptor | YourMT3+ | Demucs+ ROSVOT | SheetSage2 | |
|---|---|---|---|---|---|---|---|
| Prober | AR | ||||||
| RWC-Pop | Vocal F1 | 62.71 | 47.04 | 49.12 | 26.09 | 83.08 | 82.51 |
| Full F1 | 64.02 | 38.71 | 42.35 | 22.30 | 75.00 | 75.29 | |
| Rock Corpus | Vocal F1 | 49.19 | 37.36 | 36.05 | 19.86 | 65.98 | 67.08 |
| Task | Benchmark | Metric | Task-training audio | ||
| Real only | Synthetic only | Real + synthetic | |||
| Beat | GTZAN | F1 | 80.08 | 73.05 | 82.93 |
| osu2017 | 90.79 | 85.98 | 92.28 | ||
| Downbeat | GTZAN | F1 | 75.51 | 67.23 | 78.74 |
| osu2017 | 88.60 | 86.05 | 92.79 | ||
| Key | GiantSteps | Score | 75.93 | 75.05 | 78.29 |
| Task | Benchmark | Metric | Prober | P-DBN | Pitch-marginal | Direct-pitch |
| Beat | GTZAN | F1 | 82.93 | 84.72 | — | — |
| osu2017 | 92.28 | 91.55 | — | — | ||
| Downbeat | GTZAN | F1 | 78.74 | 79.12 | — | — |
| osu2017 | 92.79 | 90.65 | — | — | ||
| Melody | RWC-Pop | Vocal F1 | 83.08 | — | 83.09 | 83.13 |
| Full F1 | 75.00 | — | 75.02 | 74.85 |