MusicXML Formatting Best Practices
MusicXML import is hard
While I recognize that MusicXML is the best format to import at this time, I also acknowledge that MusicXML is an insanely complex file format. In addition, it primarily represents how Traditional Music Notation (TMN), notation is drawn on the page. And you know what I think about that.
But the file format SingAccord uses to represent music explicitly marks many features of music which musicians have traditionally intuited in or merely inferred from their sheet music.
This means that importing MusicXML files precisely is incredibly hard! In fact, more time has gone into developing the MusicXML importer than any other part of the app! So we don't support all the features yet, and probably won't ever support all the features. So here's some best practices of how we recognize certain features so you can clean up your files before importing.
editing MusicXML Files
If you need to alter your MusicXML files to make it easier for SingAccord to recognize the contents, I can recommend two tools:
Finale. Yes, it's expensive, though they give churches a discount. Their parent company invented MusicXML, and they do the best job importing/exporting to it.
MuseScore - it's free. They are strong believers in using MusicXML as an interchange format, and do a great job importing and exporting MusicXML. One of their developers also wrote a free online NoteWorthyComposer (.nwctxt) to MusicXML converter. However, that converter makes mistakes when separate voices are used for alternate rhythms in subsequent verses.
Partwise / Timewise files
Aside from the obvious compressed / uncompressed varieties of MusicXML files (SingAccord can recognize both), they also come in "part-wise" and "time-wise" versions. Most music notation apps export part-wise, while direct MIDI recorders might export time-wise. All the files I've found around the internet are part-wise, and every time I export from Finale it's part-wise, so for now, SingAccord only imports part-wise musicxml files. You should be able to convert a time-wise to part-wise by importing your file into a notation app and then exporting again.
Several songs we know and love have separate male/female parts, and obviously, if you want to use this notation to lead a choir, you're going to want to display multiple simultaneous parts. And our files formats are designed to handle that... One day... But not today.
If the MusicXML file that SingAccord imports has multiple parts with lyrics, it'll pick the part with the most lyrics. If it picks the wrong one, delete the parts you don't want imported and try again.
Pick up beats
The easiest way to detect pickup beats is for your first measure to have fewer beats than declared by the time signature. SingAccord will always recognize that as declaring pickup beats. SingAccord will understand that all section breaks will occur before their measure lines by the same number of pick-up beats.
If you ever have trouble with SingAccord detecting pickup beats, alter your MusicXML file to have the correct number of pickup beats in the first measure.
If your section-breaks are explicitly notated mid-measure by a double-barline (with the correct number of pickup beats in the subsequent measure, and trailing beats in the previous measure), SingAccord, will recognize that double-barline as an explicit section break at a pick-up beat boundary.
SingAccord will also try to detect a pickup beat when the first lyric has no rests until the next barline and the next barline is a double-barline. But right now it can only do that if there are no explicit flow-changes before the first lyric.
Chris Tomlin songs (as arranged by the big worship music content retailers), unfortunately, never intone the pick-up beats on the first verse, and always have full beat counts in the first measure, and thus SingAccord almost always fails to detect pickup beats in Chris Tomlin songs. Again, I recommend editing the file to have the correct number of pickup beats in the first measure.
The biggest problem happens when you have, say 1.5 pick up beats, but you have a dotted half note in the trailing portion at the end of a section. SingAccord will see the note as crossing section boundaries and ignore it. Now, you know you only wanted the dotted half held until the beginning of the 3rd beat, and I know that. But technically, you've made it overlap into the next section, so instead notate it as a half-note tied to an eighth-note.
By virtue of being .zip'ed, some compressed MusicXML files require a password to decrypt, SingAccord does not support password-protected or encrypted files.
Many hymnals don't use modern flow symbols, like D.S. al Coda or repeats signs. They just rely on you to intuit that if there are 5 verses, you're supposed to repeat the song until you sing all the verses. SingAccord will detect implicit repeats when there are no explicit flow changes (no repeats, codas, D.S.'s or D.C.'s, segnos, nor endings) and there are multiple measures contain more than 1 lyric number. The number of repeats will be the maximum number of different lyric numbers which appear in more than 2 measures (to work around problems with uniqueness at pick-up measure boundaries) minus 1.
Section Names & Breaks
Rehearsal directions ("rehearsal expressions" in Finale, "rehearsal marks" in MuseScore) always trigger explicit section breaks in SingAccord at the beginning of their measure, and the text is used as the name of the section.
Double barlines also trigger section breaks. And when the MusicXML file has "name"s for the lyrics, (such as from Finale's "Lyrics Window..." "Lyric" popup menu) that name is used, if not overridden by explicit rehearsal markers. When similar section names are detected, SingAccord automatically appends incremental numbers to the names.
SingAccord also recognizes most discontinuous flow changes (repeats, D.S., D.C., codas, segnos, discontinued endings, and of course fine) as marking section breaks.
SingAccord attempts to make sense of the title, composer, lyricist, arranger & copyright metadata in MusicXML files, but internally, SingAccord represents people's names as lists of names, while MusicXML uses only a single entry which concatenates all names.
Often, the metadata in Finale files from LifeWay Worship does not accurately reflect the text printed on the page, so I recommend editing the MusicXML to make the metadata correct before importing. In Finale, go to the Window menu, and select "Score Manager", then use the "File Info" tab to edit metadata. This metadata is correctly exported in MusicMXL files.
Different rhythms in different verses
Most songs have different lyrics in different verses, and often, the number of syllables isn't identical. SingAccord will recognize a separate "voice" as containing an alternate rhythm for a subsequent verse, but only if the file contains accurate lyric "number" information. Accurate lyric number information does not mean the numeral of the lyric placed in the lyrics at the beginning of the verse (SingAccord will attempt to find and delete those!), it means your MusicXML file exporter includes a "number" attribute on the "lyric" element. Finale does the best job of this, but other apps do this correctly, too.
Because we do not have multiple-part support yet, SingAccord can only import one pitch at a time. If you use chords, SingAccord will pick the top note in the chord, which is usually the melody. There are a few songs in which the alto line is temporarily above the melody. So if you experience trouble, don't use chords; include only the melody.
Sing Accord will only recognize 1 explicit tempo marking at the very beginning of the song. Finale might throw tempo markings in weird places in the MusicXML file, which is why I added a tempo-correction feature, which currently manages a uniform tempo for all sections/forms of a song.
SingAccord recognizes a summary of the MusicXML hyphenation information. If in doubt, include only 1 syllable in a note.
Compound time signatures are converted to beats, for instance, 6/8 gets 2 beats per measure, 9/8 gets 3, etc...
Melismas are when a single syllable is included in multiple notes. SingAccord attempts to use a combination of ties, slurs, explicit extensions and hyphenation to determine when multiple notes go in the same melisma. If having trouble getting a melisma, mark your lyric as having explicit extensions, tie all adjacent same-pitched-notes and place a slur over the entire sequence of notes in the melisma. This is most difficult when melisma span the start or end of endings. Good luck.
Completely Unsupported features
- Articulations - I hope to provide great support for these soon. For now, edit your rhythms if articulations are critical.
- Tempo changes - would love to support some day
- Multiple languages - I would love to support some day
- Cue notes - would like to support them one day
- Grace notes - would like to convert them to short-duration notes, one day. For now, create explicit short rhythm. Anything shorter than a sixteenth note is almost un-notatable.
- Swing beats - would like to support some day. For now, use a quarter and an eighth in a triplet. (I know, I know...)
- Spoken lyrics - I intellectually recognize that some lyrics are spoken to a rhythm, but I hate rap, so I don't have a lot of personal motivation to write code for this feature. For now, assign a pitch.
- glissando - Yes, I decided to play trombone in 5th grade because it can do glissando's, but I just don't see these getting used in worship music. For now, try just using a melisma.
- additional text markings - aside from rehearsal marking, the meanings of these text expressions are understood by context and the mind of a human. Attempting to get a computer to understand them and render them appropriately would be an extremely large challenge.
- Fermatas - It's difficult to "watch the director" when the video was exported a few days before the performance.
- Dynamics -
- Philosophically: dynamics aren't music, they are one way to make music more beautiful.
- Joke: check out what Victor Borge said about dynamic markings.
- Practically: you'll be doing extremely well if everybody sings the right notes. My survey indicates that people will "sing at the top of their lungs" if they ever figure out the rhythms & pitches. Plus, other clues are more likely to subconsciously elicit appropriate dynamics. For quiet, use dark, desaturated or cool colors in the artwork, notes near the top or bottom of singing range, and have your lead sing softly. For loud, use bright, saturated or warm colors, mid-range notes and a lead singer who can really belt it out.
- Guitar tabs / Chord names - these are for instrument performers, not untrained singers. I don't think they really belong in the video shown to the congregation. I don't currently recommend trying to migrate your band over to this notation, just what's shown to the congregation.
- Embedded logos - I don't see a lot of use for these
- Additive time signatures - I know you think you're being cute, but stop it. Nobody can count that high while trying to sing.
- SMuFL - it's a terrible idea; I hope it isn't successful in the market.
If you don't see a feature mentioned here, and it isn't just dirt-simple basic music notation, then chances are not only do I not support it, but I don't even know about it. If it's super important, and you can't represent what you need with supported features, feel free to contact me to submit a feature request.