MakeMusic
SmartMusic Finale Garritan MusicXML

LilyPond/MusicXML Percussion Clef Interpretation Conflict

Moderator: Michael Good

LilyPond/MusicXML Percussion Clef Interpretation Conflict

Postby Evan Brooks » Sun Oct 12, 2014 1:36 pm

It appears that LilyPond's MusicXML exporter interprets a C4 with a Percussion Clef as being drawn on the center staff line of a 5-line staff. The MusicXML tutorial documentation (but not the XSD or DTD) states that "Percussion clef is treated like treble clef when determining the display-step and display-octave." And in fact, in Finale products, a C4 with a Percussion Clef is drawn where one would it expect it to be with a treble clef: one ledger line below the lowest staff line on a 5-line staff.

There is a very useful set of files and documentation comprising a MusicXML test suite at:

http://www.lilypond.org/doc/v2.18/input ... files.html

The documentation that goes with it indicates that in the "12a-Clefs" test file, the following MusicXML code is supposed to produce a whole note on the center line of a 5-line staff:

<measure number="5">
<attributes>
<clef>
<sign>percussion</sign>
</clef>
</attributes>
<note>
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
</measure>

This is clearly a different interpretation of the positioning of notes with a Percussion Clef than is described by the MusicXML documentation on the Finale website, or as implemented by Finale products.

If anyone has a connection with the folks that work on LilyPond, this would be a good point to bring up, so that any MusicXML files their exporter is creating will be compliant with the current MusicXML specification.

This is also a great example of why "peripherally documented" things such as Percussion Clef interpretation should really go into the DTD or XSD, where everyone will have to see it, rather than into "tutorial" documentation that may or may not ever be seen by an implementer.
Evan Brooks
 
Posts: 46
Joined: March, 2014
Reputation: 0

Re: LilyPond/MusicXML Percussion Clef Interpretation Conflic

Postby Michael Good » Fri Oct 17, 2014 6:00 pm

Hi Evan,

Sorry for the delay in replying to this. I was in Boulder earlier this week for my first visit to the new MakeMusic office, and wanted to wait to reply until I could check this at home.

I think the issue here is that the <pitch> element is being used incorrectly. Unpitched notes on a percussion staff should use the <unpitched> element, not the <pitch> element. I think the <unpitched> element's documentation in the DTD / XSD is pretty clear about how to interpret the <display-step> / <display-octave> pair and what to do if that pair is missing. In the XSD this documentation is in the display-step-octave group.

I can't find the XML for the LilyPond test suite due to a 404 error. I suspect that they might be putting the note on the center line because the <display-step> / <display-octave> pair is missing. That seems a reasonable interpretation to me given this incorrect MusicXML data.

Please let me know if I'm misunderstanding something here.
Michael Good
VP of MusicXML Technologies
MakeMusic, Inc.
User avatar
Michael Good
 
Posts: 2197
Joined: March, 2014
Reputation: 0

Re: LilyPond/MusicXML Percussion Clef Interpretation Conflic

Postby Evan Brooks » Sat Oct 18, 2014 2:23 pm

Hi Michael,

Thank you so much for your reply. What I am taking from it is that ALL notes written to a staff with percussion clef should be written using an "unpitched" element, rather than a "pitch" element. This makes great sense, but I don't think the documentation really states this clearly. Nowhere does it say that "pitch" elements cannot be represented on a staff under a percussion clef. Because it is not expressly forbidden, we need to have a definitive set of rules for how to display "pitch" elements on a percussion staff.

My posting included the MusicXML code from within the LilyPond test suite. My point was that LilyPond renders it differently than Finale does. I believe that Finale does the proper interpretation, based entirely on the comments in the MusicXML tutorial.

My goals in posting this were:

(1) To let someone at LilyPond know that their interpretation of this situation is at odds with Finale's; and

(2) To have the "official" rules regarding how to draw "pitch" elements using a percussion clef be moved from the Tutorial to the XSD/DTD and be made clear;

Your point is well taken - namely that notes on a percussion clef are generally considered unpitched, and therefore the "unpitched" element should be used to indicate them. The rules for drawing "unpitched" elements on a percussion clef are, as you said, well documented in the XSD. However, because using "pitch" elements with a percussion clef is an allowed behavior, the rules for interpretation should also be well-defined. Because they are not, we have the situation I am writing about, where LilyPond and Finale are at odds over its interpretation.

I think the following need to happen:

(1) LilyPond should be notified to change their interpretation to match that of Finale, as documented in the MusicXML tutorial.

(2) The documentation for this scenario should be moved from the tutorial, clarified, and placed in the XSD/DTD.

(3) There should be an ongoing "recommended/best practices" document of some sort, and the recommendation to use "unpitched" elements under a percussion clef rather than "pitch" elements should be made there, while noting the behavior that would be expected if one chose to the use the "pitch" element instead.

--Evan
Evan Brooks
 
Posts: 46
Joined: March, 2014
Reputation: 0

Re: LilyPond/MusicXML Percussion Clef Interpretation Conflic

Postby Michael Good » Tue Oct 21, 2014 8:45 am

Hi Evan,

I'm thinking of a different solution - to clarify that <pitch> elements should not be used on a percussion clef. There are many things that DTDs or XSDs cannot exclude that are valid MusicXML files but are not correct MusicXML. If things are incorrect MusicXML, I think it's fine that different programs interpret these error conditions differently. It would be better if those incorrect MusicXML usages weren't included in a program's publicly available regression test suite.
Michael Good
VP of MusicXML Technologies
MakeMusic, Inc.
User avatar
Michael Good
 
Posts: 2197
Joined: March, 2014
Reputation: 0

Re: LilyPond/MusicXML Percussion Clef Interpretation Conflic

Postby Evan Brooks » Wed Oct 22, 2014 5:07 pm

I agree. I hope someone can let the folks at LilyPond know about this. While you are adding the prohibition against "pitch" elements on a percussion staff, you might want to correct the last line of the Percussion page in the MusicXML tutorial online at:

http://www.musicxml.com/tutorial/percussion/

It currently says:

"Alternate notehead shapes let multiple instruments to share a single line on the staff."

It should say either

"Alternate notehead shapes let multiple instruments share a single line on the staff."

or

"Alternate notehead shapes allow multiple instruments to share a single line on the staff."
Evan Brooks
 
Posts: 46
Joined: March, 2014
Reputation: 0

Who is online

Users browsing this forum: No registered users and 1 guest

cron