When a score turns into singing audio that sounds wrong, the voice is rarely the problem. Almost every bad render traces back to something in the MusicXML: a lyric that isn't attached to its note, two voices written as chords, a repeat typed as a word.
This guide covers what a singing engine reads from your MusicXML, what works straight out of a notation app, and the handful of problems that break a render, with how to fix each one.
What a singing engine reads from MusicXML
MusicXML is a full description of the score, not just notes. For singing audio, these parts matter:
- Notes and rhythm: the pitches and durations each part sings.
- Lyrics: each syllable, and which note it belongs to.
- Part names: how you tell the engine which line to sing.
- Voices: separate melodic lines that share a staff.
- Verses: numbered lyric lines under the same notes.
- Tempo: the metronome marking.
- Repeats and navigation: repeat barlines, endings, D.C., D.S., Coda, and Fine.
- Instruments: the declared sound of each accompaniment part.
A MIDI export keeps the notes and rhythm but drops the lyrics, part names, verses, and most of the structure, which is why MusicXML is the better starting point.
What works out of the box
Scores exported cleanly from MuseScore, Finale, Sibelius, Dorico, or Logic Pro usually need no changes. SightSinger handles, without extra preparation:
- a choir score with two voices per staff (SA and TB), split into separate parts;
- several verses, with the verse to sing chosen per render;
- repeats, endings, and navigation, played in performance order or written order;
- piano and other accompaniment parts, played as instrument tracks alongside the voices.
What breaks, and how to fix it
| What you hear | Usual cause in the score | Fix in your notation app |
|---|---|---|
| Words sung on the wrong notes, or missing | Lyrics typed as text boxes or staff text instead of with the lyric tool | Re-enter them with the lyric tool so each syllable is attached to its note |
| A word runs over the wrong notes | Syllables not split with hyphens, or a held syllable without an extender line | Hyphenate multi-syllable words; extend a syllable held over several notes (a melisma) |
| A part sings the wrong line, or both lines | Two voices merged into chords on one staff | Write each line as its own voice, or on its own staff |
| The wrong verse is sung | Verses typed as one lyric line, or unnumbered | Put each verse on its own numbered lyric line |
| The song is too short, or a section plays once | Repeats or D.C./D.S. written as plain text | Use real repeat barlines, endings, and navigation markings |
| The accompaniment has the wrong sound | No instrument set for that part | Choose the instrument for the part (piano, guitar, strings) |
| Too fast or too slow | No tempo marking | Add a metronome mark at the start |
| Extra notes you didn't expect | Hidden notes, cue notes, or stray voices | Delete them, or remove the part if it isn't meant to be sung |
Two input problems come before any of these:
- A PDF is not a score yet. It needs music recognition (OMR) first, then a clean-up pass. How to convert a PDF score into a singing demo walks through it.
- A MIDI file has no lyrics. Export MusicXML from the notation app instead.
A five-minute preflight
Before you generate, open the score and check, in this order:
- Every syllable is attached to a note, with hyphens and extenders in place.
- Every part has a clear name.
- Lines that share a staff are separate voices.
- Each verse is its own numbered lyric line.
- Repeats and endings are real notation.
- Accompaniment parts have an instrument, and the score has a tempo.
The MusicXML readiness checklist has the full list, with how to fix each item. If your singers learn pitches with solfege first, the free MusicXML solfege tool adds a movable-do or fixed-do lyric line to a melody part.
Export and generate
Export the score as .xml or .mxl, upload it to SightSinger, and ask in plain language for the part
and verse you want, for example "sing the alto part, verse 2". Each part you generate joins the
multi-track player with the score's instruments, so you can hear everything together.
If a render still sounds wrong, check the table above first: the fix is almost always in the score.
Summary
MusicXML carries everything a singing engine needs, as long as the score is written the way it sounds: lyrics attached to notes, one line per voice, verses numbered, repeats as notation, and instruments set. Fix those in your notation app, and the audio follows.