[MEI-L] Music Addressability API draft

Roland, Perry D. (pdr4h) pdr4h at eservices.virginia.edu
Wed Nov 19 21:57:41 CET 2014


Hi Craig,

I won’t attempt to describe how math works in WV.  You wouldn’t understand anyway. ☺

If “4.999” is acceptable to you, then it seems we don’t need to change anything -- only clarify expected usage.  And perhaps, for Laurent and Don, extend the syntax for specifying beat locations to include fractions.

I’m not sure what you mean by asking how this interacts with barlines.  The value of @tstamp must be in the range of 0 (the measure’s left barline or the preceding barline, depending on whether a system break occurs just prior to the measure) to the number of beats in the measure *plus one* (the measure’s right barline).  The values “0” and “5” (in 4/4 for example) indicate the timestamp/location of the measure’s left and right barlines.  If you want to indicate that a hairpin is attached/positioned with reference to a barline, then use one of these values.  The offset then would be relative to the location of the barline in spite of system breaks.

> Put into a graphical illustration for people whose eyes have already glazed over, how would/should these cases be handled?:

[cid:image002.jpg at 01D00411.8C766970]
​
> * How could each of these hairpins be represented in MEI?

measure 1, top-to-bottom:

<hairpin form=”cres”  tstamp=”1” tstamp2=”4.99”/>
  (alternatively you could use: <hairpin form=”cres” tstamp=”1” tstamp2=”5”/>)
<hairpin form=”cres”  tstamp=”1” tstamp2=”1m+1”/>
<hairpin form=”cres”  tstamp=”1” tstamp2=”1m+1” ho=”1”/>

(As described already, a hairpin should end visually just prior to the beat position specified by tstamp2.)

measure 3, top-to-bottom:

<hairpin form=”dim”  tstamp=”1” tstamp2=”4.99”/>
(alternatively you could use: <hairpin form=”dim” tstamp=”1” tstamp2=”5”/>)
<hairpin form=”dim”  tstamp=”1” tstamp2=”1m+1”/>
<hairpin form=”dim”  tstamp=”1” tstamp2=”1m+1” ho=”1”/>

(timestamps exactly the same as m. 1; only the form attribute is changed. By the way, the values of @ho are for illustration only; they’re not meaningful.)

> * How can the barline and the note that follow it be disambiguated from the timestamp?

I don’t understand what you’re asking here.  I can only reiterate what I said before -- tstamp2=”5” references the barline, tstamp2=”1m+1” references the *beat*, not the note, following the barline.  If you want to attach the hairpin to particular notes, then the markup should utilize @startid and @endid --

<hairpin startid=”idOfStartNote” endid=”idOfEndNote”/>
> When a hairpin ends on a barline, it must have an offset by default to get it from actually ending on the barline (at least when the barlines
> would touch it as in the above example).

I think we agree that this should be the normal behavior of a rendering engine, although I now realize that one would never get a hairpin to actually touch a barline unless the rendering engine offered a parameter for overriding this behavior.

>
> Also imagine grace note(s) before the first note in each measure.  If the hairpin ending point is a timestamp, then which graphic object does it
> refer to:(1) the barline, (2) the grace note(s), or (3) the note?

Strictly speaking, if @tstamp and @tstamp2 are used, then *no object* is directly referred to, only a time point.  In this case, one would have to deduce/calculate what object is affected, such as notes occurring at the time point or perhaps using proximity if no notes occur at that time.  To refer to specific notes, use @startid and @endid instead.  For example, to attach the hairpin to a grace note preceding the first note:

<note grace=”unacc” pname=”a” dur=”8” xml:id=”grace1”/>
<note pname=”g” dur=”8” xml:id=”n1”/>
<hairpin startid=”#grace1” ... />

Of course, you can’t use this method to refer to barlines because they aren’t represented by an element and so can’t have an id.

Nothing says you can’t use tstamp/tstamp2 and startid/endid simultaneously or even use one kind of reference for the start and another kind of reference for the end point, as in:

<hairpin startid=”#n1” tstamp2=”1m+1.5”/>

But there’s no specification for what to do when the start and/or end points are given both ways, as in:

<hairpin startid=”#n1” tstamp=”1” endid=”#n5” tstamp2=”1m+1.5”/>

One would hope that in cases like this, the values would be complementary, not contradictory.
> Another question illustrated in the example (and relating to addressability) is how to reference positions of noteheads.  Suppose that I want to
> end hairpins on the right side of note heads?  If I use virtual units, those virtual units would be in reference to a specific notehead shape
> (font).  Germans like oval noteheads while Italians like circular ones...  It is a bit picayune (vocab builder word for ESLs), but occasionally I
> have a desire to do that in SCORE, which does not have that capability so I have to fudge it by zooming in and manually adjusting.

You lost me here.  Virtual units are measured in terms of staff inter-line space, so there’s no relationship between VUs and notehead shape.

Helpful or no?

--
p.



From: mei-l [mailto:mei-l-bounces at lists.uni-paderborn.de] On Behalf Of Craig Sapp
Sent: Wednesday, November 12, 2014 12:18 PM
To: Music Encoding Initiative
Subject: Re: [MEI-L] Music Addressability API draft

Hi Perry,

On 12 November 2014 02:49, Roland, Perry D. (pdr4h) <pdr4h at eservices.virginia.edu<mailto:pdr4h at eservices.virginia.edu>> wrote:
Point 2:
I'm not opposed to somehow allowing fractions within data.BEAT, but if we make our position on Point 1 clear, then I don't see the need for it, since "1.3" is just another way of writing "1+1/3".

Is that how math works in WV?  How would I know that, and what do 1.1, 1.2, 1.4, 1.6, 1.7, 1.8 and 1.9 mean?

I don't think we should be concerned with round-off error since the decimal part of "1.3" is intended to indicate a fractional part of the beat; that is, one can write "1.333" or "1.3" or "1+1/3", but all three mean the location of the 2nd note of a triplet beginning on beat 1, in other words, a musical value, not a visual one.  @tstamp2 *should only* refer to the "logical" endpoint. @ho should be used to move the visual endpoint.  This contradicts my own earlier thinking and Johannes' suggestion to use "4.999" to encode a hairpin stopping just before the beat.  I believe this erroneously conflates the logical and visual endpoints.

The problem is: what is the visual syntax hairpin endings?  Should it be inclusive and/or exclusive of the timestamp value?  And how does this interact with barlines?  The main issue is how a hairpin crescendo behaves at system breaks.  If an endpoint is exactly on a beat, then how can the endpoint be in reference to a barline as opposed to the next note after the barline (or grace notes before the beat, which is another matter)?  If the endpoint refers to the note, then applying a horizontal spatial offset will not solve the problem of having a little tiny piece of the crescendo after the system break, as it will be offset from that note onto the new line.  Giving an offset of "4.999" solves the ambiguity by forcing it to stop before the barline and hence the system break.  But the problem is what to do when the music changes layout and different hairpins pop up with the same problem.

By the way, "4.999" for hairpins would be acceptable to me :-) I was mostly referring to note/rest durations.  Dynamics and hairpins and such do not need to be as strictly regulated since their interpretation can be fuzzy, and they are attached to the main framework of the note durations rather than define the rhythmic framework themselves.  Adjustments to the behavior of the hairpin endpoint should probably not be controlled by this value, but by some other parameter, such as having the default mean stop at the barline before any note with this timestamp, and then have an option to specify that the endpoint refers explicitly to a note and not the barline preceding it.

Put into a graphical illustration for people whose eyes have already glazed over, how would/should these cases be handled?:

[cid:image005.jpg at 01D00411.8C766970]
​
* How could each of these hairpins be represented in MEI?
* How can the barline and the note that follow it be disambiguated from the timestamp?

When a hairpin ends on a barline, it must have an offset by default to get it from actually ending on the barline (at least when the barlines would touch it as in the above example).

Also imagine grace note(s) before the first note in each measure.  If the hairpin ending point is a timestamp, then which graphic object does it refer to:(1) the barline, (2) the grace note(s), or (3) the note?

Another question illustrated in the example (and relating to addressability) is how to reference positions of noteheads.  Suppose that I want to end hairpins on the right side of note heads?  If I use virtual units, those virtual units would be in reference to a specific notehead shape (font).  Germans like oval noteheads while Italians like circular ones...  It is a bit picayune (vocab builder word for ESLs), but occasionally I have a desire to do that in SCORE, which does not have that capability so I have to fudge it by zooming in and manually adjusting.

-=+Craig

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.uni-paderborn.de/pipermail/mei-l/attachments/20141119/e1f779c3/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 4827 bytes
Desc: image002.jpg
URL: <http://lists.uni-paderborn.de/pipermail/mei-l/attachments/20141119/e1f779c3/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.jpg
Type: image/jpeg
Size: 4834 bytes
Desc: image005.jpg
URL: <http://lists.uni-paderborn.de/pipermail/mei-l/attachments/20141119/e1f779c3/attachment-0001.jpg>


More information about the mei-l mailing list