Replies: 2 comments 5 replies
|
It's a confusing topic...
|
|
Any time you wonder if something should be made more restrictive in the MusicXML schema, the answer is probably no. In part that's because it's too late, as Werner says. But it's also because MusicXML is representing sheet music as it appears on the page, whether or not that is convenient for software applications. Voices for instance are an interpretive concept that people and apps layer onto the music in a score. It's reasonable for a MIDI-type application to not use them at all. It's reasonable for an analysis application to use them only on notes where there are multiple voices, such as when a single line splits in two. The forward element has a voice element because it's pretty much an invisible rest. The backup element does not have it because it is usually marking a change between voices, for apps that use voices. Schematron and similar technologies can catch things that are incorrect that XSD validation cannot, and that can be very helpful. But it's important not to be overly restrictive here either, even if it's tempting to possibly make things more convenient for some apps. |
Uh oh!
There was an error while loading. Please reload this page.
AFAICS, the
<voice>child of<forward>is completely redundant, since for<note>it is always necessary to specify<voice>explicitly – MusicXML doesn't have a feature to automatically assign something to a given voice based on previous elements. Please correct me if I'm wrong.So: why does this child exist besides being informative, and is there an example where it is really needed?
All reactions