w3c / mnx

Music Notation CG next-generation music markup proposal.
179 stars 18 forks source link

MNX 1.0 specification omits some key definitions #253

Closed joeberkovitz closed 3 years ago

joeberkovitz commented 3 years ago

There seems to have been a number of important definitions that were included in the original Draft Spec but omitted from the 1.0 spec, which would appear to be necessary to support even those elements which were retained for 1.0.

I haven't looked exhaustively, but it seems like a number of the fundamental definitions and parts of the spec are gone, included:

That is probably not a complete list but it can serve to identify some of the potential problems.

I know that a bunch of elements were left out so as not to clutter things up, which makes sense, and it's nice to have a simple unified mechanism for the MusicXML and MNX specs, but right now it seems as though some of the foundational concepts underlying even the elements which were retained for 1.0, did not make it through. For instance, we have many direction elements but their shared attributes like location are missing from the 1.0 definitions. And we have a page for note value attributes but it says nothing about their syntax or what they mean.

I hope it goes without saying that I am not making any blanket argument about keeping the original draft intact, and I've certainly missed a lot of the discussion over the past few years. But it looks as though some of these omissions are unintended, and they're having the effect of creating non-issues like #251 that would be resolved if some of the material had been kept.

adrianholovaty commented 3 years ago

Thanks for raising an issue for this. Yes, I still need to migrate various definitions from the old spec into the new spec; their absence in the new docs does not mean the information was intentionally removed. The new docs are a work in progress.

adrianholovaty commented 3 years ago

An update — I've made the following progress today:

I'll update this issue whenever I make more progress with migrating. Thanks for the push!

joeberkovitz commented 3 years ago

Thanks @adrianholovaty. But I think we need a little more than that to sustain useful discussion while this migration continues, since its timeframe seems open-ended. We need a way to know what elements of the older draft spec remain in play, even though they are not yet included in the 1.0 spec. Otherwise they appear to be out of play, and distracting non-issues will suck up the group's time.

Let's make this as easy as possible. Here is one possible approach:

To keep it simple the content of this section could be Markdown or HTML coming from some github-maintained file, I don't see a reason to generate it in a fancy way.

adrianholovaty commented 3 years ago

I think it would take just as long for me to simply finish the migration. :)

I have a super-hacked local version of the old spec's HTML file in which I delete the markup as soon as it's been migrated to the new system — basically functioning as a to-do list. I realize this is quite opaque and not well communicated! That's on me. At any rate, I can commit to getting the rest of the bits migrated in this coming week (by Nov. 12), to prevent further confusion.

joeberkovitz commented 3 years ago

Thanks @adrianholovaty, that sounds perfect.

adrianholovaty commented 3 years ago

I've finished migrating all of the details (notably instructions for parsing microsyntaxes) from the old spec to the new spec.

I've also updated the old spec to add a list of elements and concepts that have deliberately not been migrated. Some of them are already in play, such as style properties (#263). For the others, such as richer title metadata, I'll create GitHub issues to keep track of the to-dos.