Closed notator closed 8 months ago
I'd like to comment on your proposal of the <text>
-element.
Wouldn't it be nicer if we put the value of the "string"-attribute simply as content of the element?
<text location="0" orient="down">&forte;, 2nd time &piano;</text>
and
<text location="1/8" orient="up" >
accel.
<extender duration="7/8" class="accelDashes" />
</text >
@bhamblok Thanks for the feedback! :-). I'm in the process of moving the debate about text into its own issue, so will reply to you there when I post it. Should be ready soon.
I've now updated my original posting to this issue (Actions) to include a proposal for a new <action>
(singular) element.
The <action>
element is redundant. See https://github.com/w3c/mnx/issues/217#issuecomment-761548580
I'd like to define the way the <actions>
element works more precisely, and thereby make a small change:
This means that
<stop />
is unnecessary in https://github.com/w3c/mnx/issues/216#issue-784966091 since the action is at the end of the file<continue>
action at the bottom of the stack.Summary: I think the following actions are basic
<goto target=... />
<continue />
<pause />
<stop />
I also think that all action elements should always be enclosed in an <actions>
element, even when there is only one of them. That means that graphics-only applications can ignore them more easily, and that #221, #220 and #218 need to be changed accordingly. (Now doing that.)
After proper discussion, further actions are likely to be defined in future (for example something like <speedChange>
in the accel. example above.)
Closing an outdated issue.
This issue continues the discussion in Pull Request #190 (which I think should now be rejected and closed).
Summary of the discussion in #190:
<!ENTITY segno CDATA "𝄋" >
at the top of a file defines the&segno;
entity string to mean the segno character. In future, I'll be using such entity strings, without further comment, as if this has been done.<text>
and<textBlock>
, both of which need defining more precisely. The<text>
element would replace the<instruction>
element in the Draft Spec.<switch>
element be defined, containing an ordered list of actions to be taken when the<switch>
is encountered during a performance. Note that<switch>
elements are not rendered graphically, and can safely be ignored by non-performing applications. (I've always been looking for a better name for this element, and am going to rename it again below. Names are important.) My final comment in #190 lists the (currently proposed) possible actions asstop.
Further thoughts:
First, I'd like to rename
<switch>
(aka<jump>
) to<actions>
. This makes the element's type more obvious and precise since, in addition to having a location in the score, it contains an ordered list of action elements, each of which is a non-printing, imperative verb that has to be executed at a particular time.Begin Edit 9 Jan., 2021 I'd also like to define a new
<action>
(singular) element. The two definitions look something like this:<actions>
element contains an ordered list of two or more action elements that define a stack of actions. Each time the<actions>
element is invoked, the action on the top of the stack is executed and then popped off the stack. If the stack is empty, the<actions>
element does nothing.<action>
element contains exactly one action element that is executed each time the<action>
element is invoked.End Edit
Clearly differentiating between graphic and temporal information leads to a much simpler and considerably more powerful way to code repeats and jumps, so the current
<repeat>
and<ending>
elements, and all printed texts (such as"dal Segno"
,"&segno;"
,"Da capo als segno"
etc.) have to be considered to be purely graphical objects.Of course, it may be possible to infer a behaviour from the graphics, but the following problems arise:
As will be seen in the accel. example below, its easy to define specialised actions for purposes other than repeats and jumps. If there is consensus that I'm on the right track here, we could well be doing that over the next few weeks, but my primary objective is to create a revision of the current MNX by Example examples and the Draft Spec that can be presented as a Pull Request before the next co-chair meeting (19th January).
Examples:
The Repeat examples in MNX by Example are still okay, but should be considered to contain only graphic information. As discussed in #190, the Jump examples in MNX by Example need revising. The Jump examples in #190 are, I think, more or less okay, but the
<jump>
elements there need to be renamed<actions>
.The following examples are only supposed to demonstrate the principle behind using
<actions>
and<action>
elements. Any new actions they may use are placeholders, not precise proposals. Feedback would, of course, be very welcome!The simplest one-time repeat would be coded, using an
<actions>
element, like this:Notes:
<stop />
is compulsory because an<actions>
element must contain at least two action elements. A<continue />
would be used for a repeat that is not at the end of the score.<action>
element here would result an endless loop.A varied repeat:
An accel would be coded using an
<action>
(singular) element:This is the usual way to code actions that happen once. But note that if this example was contained in a repeat, the
<speedChange>
would be executed every time the<action>
was invoked, and the performance would continue to accelerate.Issues:
Some
<text>
elements, such as accel., don't need to be printed in every part in a score, but would be needed when extracting parts. Possibly, in a score containing many parts, the<text>
could be defined separately in each part that requires it, but the rules governing global<text>
still need to be worked out. This may also involve being more precise about our use of global and local CSS. Note the different behaviour of<repeat>
and<ending>
elements. These must be printed in all<part>
s, both in the full score and in the individual part-booklets, so they don't need<part>
-specific CSS.Each of the available action types (=elements) needs to define precisely how and where it can/should be coded. For example, a
<speedChange>
can only be global, but<part>
s should probably be allowed to have individual changes of dynamic: In a repeated measure having two parts, one part could have "&forte;, 2nd time &piano;", while the other has "&piano;, 2nd time &forte;".Comment & suggestions welcome.