-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add repeats and jumps to spec #190
Conversation
Now that I'm looking at this after a break, I see the following:
|
@clnoel Thanks for giving it a read!
I was conflicted on this one. Technically a measure location is meaningless for a repeat, ending or jump; see the sentences beginning with "This element applies to the containing measure" in the diff.
Yes, great point. I discussed this with Daniel and Michael in our biweekly video chat today, and we came to the conclusion that the best solution would be to allow multiple segnos/codas in the same piece but require unique identifiers to disambiguate. I'll update this pull request with that change...
We're going to punt on this particular issue at the moment, because we need to be able to encode things like "D.S. al [CODA SYMBOL]" (i.e., with embedded graphics). The eventual solution will need to handle that, plus possibly fonts and other stylistic choices. This will likely be addressed by a larger-scale focus on presentation/style. |
Oops, sorry, I originally posted this in issue #207, but now see that it belongs here. I'm currently working on converting the Repeats examples in MNX by Example to SVG using my MNXtoSVG application. According to Gardner Read's Music Notation (1974), page 227: MusicXML repeats always seem to be barline types, which would make the above constructions impossible.
Whatever the answers, this is standard practice, so MNX needs to support it, and we need a corresponding example (or two) in MNX by Example. The obvious way to do it in MNX would be to provide an optional See also the comment in §6.8.6 The repeat element in the Draft Spec:
|
@notator The first example is one of the aspects of graphical appearance that is not notated explicitly in MusicXML 3.1, similar to the exact location of cautionary key signatures. Notation applications generally handle this situation automatically without needed guidance at the appearance level from the MusicXML representation. The information is represented semantically, so the beginning of the repeat and the new time and key signatures would all be represented at the start of the second measure. Notation applications will then automatically generate the desired display. The second example can be represented in MusicXML 3.1 using a |
@mdgood Thanks. Understood. For this PR: As explained above, I'd like to propose that the MNX Below is how I want to code the following example in MNX. Perhaps you could provide the equivalent MusicXML 3.1 code so that it can be included in MNX by Example?
|
@notator I agree it would be good to add an example for that case. For the actual markup, I'm inclined to prefer the simple approach Michael suggested: "have the repeat start a new measure, leaving the measures on either side of the repeat short of the complete duration of the time signature." So no special markup would be needed for this case. |
Both @clnoel and the co-chair have reservations about the way Jumps are currently being coded in MNX by Example, and I need some clarification before implementing them in my MNXtoSVG application.
To answer that, and drawing on @clnoel's comments above and in #174 (comment), I'd like to make the following proposal: There should be two basic elements:
The The simple dal Segno example from MNX by Example:
Remarks:
The D.S. al Fine example:
And a D.S. al Coda (not yet in MNX by Example) would be coded like this:
(This example is like the one in the Finale documentation. Note that Measure 6 never gets played.) Questions:
|
I approve of the general outline of these jumps and targets. I would prefer to allow mid-measure jumps and targets, even if they are rare. I think that we don't need the # in the targets, but I'll defer that to someone who is more familiar with general XML/CSS styles. We should allow newlines. Sometimes space gets crunched and you need to put things on two lines. Although rare, there's no reason to exclude the possibility. As a side note, I really like the idea of using "fake" HTML special-symbol notation for common musical symbols that end up in text directions, like segno and coda. It solves so many issues that we have to scramble around. And lets different reading applications apply whatever algorithm they need, like changing to their special music font, in order to properly display it. --Christina |
The hash fragment format (identifiers starting with a In MEI we recommend using hash fragments for identifying IDs, since there is the idea that you can reference elements in other documents (for example, you can talk about a specific note or measure in some other URI-referenceable notation encoding.) It also ties in with current research on Linked-Data friendly approaches to music notation encoding, and transformations to LD-friendly formats like RDF and Turtle. It also helps if you want to tie IDs of musical elements to SVG renderings, and then to CSS styling of the SVG; a consistent ID method means you can carry the ID through the transformations, and then target specific musical encoding elements with standard CSS selectors. Basically, using the hash fragment method for IDs is not an XML requirement, but it helps tie in to lots of other standards and formats out there. |
You can put newlines in attributes, but most standard XML parsers will remove them and normalize to a single space, since the newline character is not part of the XML spec. (
It will render in one line, with a space between "text" and "that", and the |
@ahankinson Many thanks! :-) '#' characters: '\n' characters:
Other things:
|
I now think the Also worth mentioning explicitly here: Implicit in @ahankinson's reply about '#' characters is that I'd like to replace the current |
BTW, Entity entries can be used to map custom HTML entities to Unicode codepoints:
With these types of entries in the top of your XML file, you can use custom Unicode code points for any symbol. This means you could also map them to SMuFL code points for some files, and standard Unicode points for others. https://www.w3.org/TR/html4/sgml/entities.html You could also adopt the MEI method of setting custom glyphs, which is to specify the code point along with some form of authority for mapping that to a set of points. This can be seen with the |
It occurred to me that we could also add a
This would complete the access to the standard set of controls used by a performing application. There may be other performance actions that could be programmed in this way. Changes of speed or loudness, for example.... |
Closing this because it's not relevant anymore:
We haven't yet implemented the following:
I'll open separate issues for these two matters so we don't lose track of them. |
This pull request adds the following definitions to the MNX-Common spec:
<ending>
<repeat>
<coda>
<segno>
<jump>
Preview | Diff