- From: Joe Berkovitz <joe@noteflight.com>
- Date: Thu, 30 Mar 2017 13:49:44 -0400
- To: capella-software Dr. Dominik Hörnel <d.hoernel@capella-software.com>
- Cc: public-music-notation@w3.org
- Message-ID: <CA+ojG-adg2Cj9w3_V7ymqW=a-Nv2rdYMah2di_A1P-=fmOsRTg@mail.gmail.com>
Terrific topic! This thread has various "chapters", and I'll try to respond in chunks to each one. Here, I'm responding to Dominik and Adrian. Let's start with a big semantic question. > 1. I would like to draw attention to a topic that has not been mentioned > in our ongoing discussion: The concept of measures. Like MusicXML, MNX > requires notes to be grouped into measure parent elements. Measures are > undoubtedly an important element in CWMN and help orientation in the score, > but there is no "musically natural" hierarchical relationship between > measures and notes. > Within CWMN, doesn't every note occur either a) in some measure or b) in no measure (if the score has no mensuration)? I think that a) implies that there is indeed a natural hierarchical relationship, when measures are present at all: every note belongs to a measure. Which leaves b). I would suggest that for regularity of the schema, measure-free scores or passages be treated as consisting of either a single big measure or of smaller measures with hidden barlines and time signatures. I don't think MNX should force the engraver or the application to do one or the other. Neither encoding is perfect, but even if we were to get rid of <measure> in this case (because we dislike saying "measure"), we'd have to invent some other containing element to put the notes in. Might as well use <measure> and maybe add some attribute to indicate that the original music is unmeasured. > > Consider a melody that "fits" into a 4/4 measure grid. Now we shift in > time this melody by let's say a quarter note. It still represents the same > sequence of notes although it has changed the metrical positions of the > notes and we might now need additional ties to keep barlines at the same > points in time. > OK, now we're getting into some interesting territory: to what extent does MNX try to make editing operations "natural"? The definition of "natural" is going to be troublesome... > > This has practical consequences: In §5.3 (Musical timelines) you state > that parent elements should be used as containers to organize child > elements, and that it should be easy to alter content of a MNX document. > Most music notation editors perform score editing operations like note > insertion/deletion on measures: For example, inserting a note into a > measure will only affect this measure and leave following measures > unchanged. However some editors (like LilyPond, capella, and partly Dorico) > propagate changes to the following measures. Now if the score is chunked > into measures, inserting a note into the MNX document would require a lot > of restructuring by shifting notes between measures. > One could workaround this by grouping all notes into a single "dummy" > measure, but shouldn't it be possible to do note insertion/deletion in an > almost similar easy manner as you do word insertion/deletion in a text > editor? > So... it's time to more carefully qualify the goals for MNX as a mutable data structure for music. I didn't address these points in the proposal, and I could have done better. Anyway, let me try to state my position now: MNX is not intended to function as the underlying data structure for a full-blown music notation editor. No encoding scheme is going to succeed at that goal, because editors have conflicting approaches to how editing operations are structured -- these approaches are tied into the interface and experience design choices of each product. Vendors are never going to agree on this stuff. And they shouldn't have to. This business of shifting musical data in measures following edits is a perfect example of why MNX can't succeed in this realm. Not only do some editors not support such behavior, but those which do, do so in different ways and preserve or destroy different aspects of the music being shifted. For example, some attempt to preserve the original structure of tied notes, and some do not. Which leads me to formulate what I think is the practical goal: the MNX schema should make *simple*, *localized* alterations easy to accomplish. Like, for example, adding/deleting a note from a chord. Or changing the beaming on a note. Or removing a note from a measure and putting a rest in its place. But MNX should not contort itself in order to support particular ideas of how editing music should work. I know Adrian would probably prefer a harder-edge definition, but I think if we frame this as MNX supporting "easy manipulation" rather than "easy editing", we will get the right result. I would note that applications that want to do fancy note-shifting, and wish to use MNX as their underlying data for whatever reason, can still string together simple, localized modifications to achieve the desired result. In summary: supporting straightforward, localized manipulation of the document feels like a desirable medium-priority goal, provided it doesn't make some other aspect of MNX worse. Should the measure element really be a required element in the new MNX > format? > As Adrian pointed out, if we don't have it, then we will have to have an ironclad set of rules for determining where measure boundaries should be assumed. This seems like a bad idea to me for the same reason Adrian gave: different vendors will likely fail to agree on those rules, because they embody one program or another's philosophy of how mensuration is applied, following changes in musical content. Part of good spec design, is avoiding design features that will be hard for everyone to accept! Also, it makes local processing of any one chunk of the document harder: looking at a measure in isolation, a parser would have to consider where it is in relationship to some known downbeat within the score. If a score (as originally engraved) doesn't employ measures in the first place, that's a different situation, which I already mentioned: it's fine to pack everything into one measure just for containment purposes (and probably mark it somehow as having been used for that purpose). > Reading §5.3.6 (Sequences) a similar question comes up: Why should > sequences be restricted to measures? > I don't think this is fundamentally different from the other questions above, unless I've misunderstood something. > 2. Talking about measures I have a question regarding barlines: According > to § 5.1.2 (System notations) multiple instances of a notation should be > encoded singly. What is your idea to encode barlines "shared" by multiple > staves? > I'd say barlines should generally go in a <measure> that lives within the <system> element, according to my thinking. ( https://w3c.github.io/mnx/overview/#system-notations). Note that there are competing ideas about how system notations work. > > 3. Finally another tiny question regarding CSS: In §6 (Styling) there is > an example with a colored note. How to write the styling of a quarter note > with only the note head colored (stem remains black)? Would you add a new > "note-head-color" attribute or notate the note head as a separate entity > with the color attribute? > I would guess the latter: just style the <note> with a color, not the <event>. There are lots of styling micro-questions and I think one can always come up with some reason that one needs just one more style property. We'll get into that at some point :-) ...Joe
Received on Thursday, 30 March 2017 17:50:18 UTC