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
note without stem? #375
Comments
|
I'm curious about why you want to do this. |
|
Specifically it is for a student doing an independent study project with me where he is loading MIDI data and displaying it as notation. Since MIDI does not always use a quantized score-based organization, he only wants to display the pitches and not the rhythms. So he would like to display as a headless black note, which does not otherwise imply a duration. A secondary application would be to notate a music examples such as this: This is a Schoenberg piece sample, showing the tonerow underneath. This example is similar to the first case in that the noteheads are black stemless notes, implying that they have no rhythm (From SCORE notation homework for Music 253 at Stanford: http://wiki.ccarh.org/wiki/SCORE_parameter_exercises#Example_9) Related to this, @lpugin: why are note elements with no Also, dropping the <?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="3.0.0">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt>
<date>2016-12-01 19:07:08</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>Transcoded from Humdrum with Verovio version 0.9.13-dev-bf3f7d9</p>
</projectDesc>
</encodingDesc>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef xml:id="scoredef-0000000741884229">
<staffGrp xml:id="m-0000000757845173">
<staffDef xml:id="staffdef-0000000541800855" clef.shape="G" clef.line="2" meter.count="3" meter.unit="4" n="1" lines="5" />
</staffGrp>
</scoreDef>
<section xml:id="section-0000001050666048">
<measure xml:id="measure-L4" n="1" right="end">
<staff xml:id="staff-L4F1" n="1">
<layer xml:id="layer-L4F1" n="1">
<note xml:id="note-L5F1" oct="4" pname="c" accid.ges="n" />
<note xml:id="note-L6F1" dur="4" pname="c" accid.ges="n" />
<note xml:id="note-L7F1" dur="4" oct="4" accid.ges="n" />
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei> |
|
Also, for a real composition exemplar, here is a composition by Don Knuth: http://www-cs-faculty.stanford.edu/~knuth/fant.html In Chapter 16, mm 107-108, he writes stemless black notes as a form of glissando (again the black noteheads imply a non-specific duration): http://www-cs-faculty.stanford.edu/~knuth/ch16%20-%202016-11-19.pdf And in the following two measures with a similar variant: |
|
Verovio supports |
|
Great! I will have to update my version (I presume this is in the develop branch?). |
|
Yes. You can also use |
|
Nightingale allows specifying a note's logical duration as "unknown", in which case it displays a solid notehead without a stem. Doesn't MEI have something like that? It strikes me that this is what's really needed; saying a note is a quarter note with stem length = 0 doesn't capture Knuth's intent, or the meaning of the tone row. |
|
Yes! I think in a few cases the MEI Guidelines will have to state definitely what to expect to see when rendered. So when a |
|
What about encoding it like this? |
|
This means that a note with a |
|
Well, MEI lacks a way to explicitly state that there is no stem (afaik). My interpretation of this situation always was that if I don't have a duration to decide what I need (which head, a stem, how many flags…), I have to rely on |
|
Yes, this was the problem when I decide to implement this. @donbyrd : how do you align notes with unknown durations in Nightingale? (e.g., the Schoenberg example) |
Not exactly.
Also, not exactly. MEI has a way to explicitly state that the stem length is 0, which is nearly the same thing. :-) But, Jo and Don are right to say that when a note cannot be said to be a "real" quarter note, then marking it as But it's not completely accurate to say that a note with |
|
This makes sense. Then I think I would expect |
That's what I failed to say with "if I don't have a duration". Of course, when |
I assume we agree we need a value for aligning them when displaying / playing. And since we do not want to have default values, then we leave this up to the tools. We can do this in Verovio but I think I would prefer it not to be able to render this because something is missing. |
|
I totally agree. I only wanted to point out that there's a difference between a tone row (which has no alignment, but is just a row of tones) and the Knuth examples above… But I'm flexible ;-) |
|
To answer your question, @lpugin, I don't remember how Nightingale aligns unknown durations, and a quick look at the code didn't help. |
|
So mes 107 of Knuth's example would be something like this? <measure n="107">
<staff n="1">
<layer n="1">
<tuplet numbase="1" num="3" bracket.visible="false" num.visible="false">
<note dur.ges="4" oct="4" pname="c" head.shape="quarter"/>
<note dur.ges="4" oct="4" pname="d" head.shape="quarter"/>
<note dur.ges="4" oct="4" pname="e" head.shape="quarter"/>
<note dur.ges="4" oct="4" pname="f" head.shape="quarter"/>
<note dur.ges="4" oct="4" pname="g" head.shape="quarter"/>
<note dur.ges="4" oct="4" pname="a" head.shape="quarter"/>
<note dur.ges="4" oct="4" pname="b" head.shape="quarter"/>
<note dur.ges="4" oct="5" pname="c" head.shape="quarter"/>
<note dur.ges="4" oct="5" pname="d" head.shape="quarter"/>
<note dur.ges="4" oct="5" pname="e" head.shape="quarter"/>
<note dur.ges="4" oct="5" pname="f" head.shape="quarter"/>
<note dur.ges="4" oct="5" pname="g" head.shape="quarter"/>
</tuplet>
</layer>
</staff>
<staff n="2">
<layer n="1">
<rest dur="4"/>
<chord dur="4" tie="i">
<note oct="3" pname="c"/>
<note oct="2" pname="c"/>
</chord>
<chord dur="2" tie="t">
<note oct="3" pname="c"/>
<note oct="2" pname="c"/>
</chord>
</layer>
</staff>
</measure> |
|
We have yet to add a method of specifying offsets from some other object. |
That is what I was thinking, although |
|
@craigsapp : the Schoenberg example mixes two different issues. That is aligning stem/duration less notes within a measure and aligning measured and un-measured staves. We should look at the later one separately. Using I see your point with the problem of using Another idea which is maybe a good way to avoid many issues is to use |
|
Something like this <measure n="107">
<staff n="1">
<layer n="1">
<note tstamp="1.0" stemless="true" oct="4" pname="c" head.shape="quarter"/>
<note tstamp="1.33" stemless="true" oct="4" pname="d" head.shape="quarter"/>
<note tstamp="1.67" stemless="true" oct="4" pname="e" head.shape="quarter"/>
<note tstamp="2.0" stemless="true" oct="4" pname="f" head.shape="quarter"/>
<note tstamp="2.33" stemless="true" oct="4" pname="g" head.shape="quarter"/>
<note tstamp="2.67" stemless="true" oct="4" pname="a" head.shape="quarter"/>
<note tstamp="3.0" stemless="true" oct="4" pname="b" head.shape="quarter"/>
<note tstamp="3.33" stemless="true" oct="5" pname="c" head.shape="quarter"/>
<note tstamp="3.67" stemless="true" oct="5" pname="d" head.shape="quarter"/>
<note tstamp="4.0" stemless="true" oct="5" pname="e" head.shape="quarter"/>
<note tstamp="4.33" stemless="true" oct="5" pname="f" head.shape="quarter"/>
<note tstamp="4.67" stemless="true" oct="5" pname="g" head.shape="quarter"/>
</layer>
</staff>
<staff n="2">
<layer n="1">
<rest dur="4"/>
<chord dur="4" tie="i">
<note oct="3" pname="c"/>
<note oct="2" pname="c"/>
</chord>
<chord dur="2" tie="t">
<note oct="3" pname="c"/>
<note oct="2" pname="c"/>
</chord>
</layer>
</staff>
</measure> |
|
@lpugin: Isn't I like the idea of |
|
Since it has the same meaning, adding |
|
OK. What about the |
|
@craigsapp: I assume the same process could be applied by Verovio to notes with the |
|
Good point, Craig, about the difficulty of getting ledgerlines. And, as I said, some of these have 8va's over them. I think directives are out of the running. |
|
A-ha, the next measures have an ottava on the realized harmonic note: Typeset in SCORE: Here are thoughts about the semantical aspects of harmonics (at least for stringed instruments): A harmonic articulation contains two necessary pieces of information: These two pieces of information will fully determine the resulting sounding pitch according to the interval between these two notes: octave == sounding one octave below the bottom note. Note that the lower pitch is a regular shaped note, and the upper one is a diamond shape. Note the special case of the octave harmonic: the diamond-shaped note for the second note is never specified, since that is the default interval for a harmonic. Strictly speaking, the sounding note is not written. Schoenberg writes since he has a lot of them and does not want the violinist to make a mistake (and the violinist would probably write them in if he did not). So there is no definitive way to display them. How he does them is good, since they will decrease readability of the music if they are placed vertically above the other notes of the harmonic. Notice in measure 222 that he does not repeat the sounding note when it is repeated. So the sounding note is functioning as a courtesy accidental does. Alternatively, you could describe the harmonic by: Or even: This (quasi-)MEI encoding: <note pname="c" oct="4" artic="harm">would mean that the bottom pitch is C4, and the top pitch is C5, with the sounding harmonic being C5. The Cases 2 and 3 would be for displaying the sounding note. Maybe there would be an attribute to vertically align with the fingered note or offset to the right (never offset to the left). The default would probably be offset to the right rather than centered. Case 3 might be encoded as: <note pname="c" oct="4" artic="harm">
<harmonic interval="p8">
</note>And case 2: <note pname="c" oct="4" artic="harm">
<harmonic interval="p8" position="centered">
</note>(these are quasi-MEI encodings, not literal element/attribute name suggestions) Case 4 shows the position of the second note. This could also be described as an interval above the bottom note, or as the pitch above the the bottom note. Using an interval would simplify changing the pitch of the harmonic as only the outer <note pname="c" oct="4" artic="harm">
<touch interval="p8">
</note>Case 5 would include the sounding note: <note pname="c" oct="4" artic="harm">
<touch interval="p8">
<harmonic interval="p8">
</note>Since the interval can be determined by the <note pname="c" oct="4" artic="harm">
<touch interval="p8">
<harmonic>
</note>Since Case 6 shows what the harmonic would look like without the circle articulation. Since a diamond note is visible, the ring articulation is redundant, so dropping it could be: <note pname="c" oct="4">
<touch interval="p8">
</note>Case 7: <note pname="c" oct="4">
<touch interval="p8">
<harmonic>
</note>The above 7 cases would cover most harmonic note syntax. An addendum for the ottava marking is that it should be an attribute of the <note pname="c" oct="4">
<touch interval="p8">
<harmonic ottava="true">
</note>Again these are not literal suggestions, as you can normalize the names to other pieces of MEI. Of course in this case that would display a non-sensical sounding note on the same staff line as the bottom note (since it would be sounding an octave higher), but this would mostly be for 2nd, 3rd, 4th harmonics than for octave harmonics. There might be other attributes on the sounding note element such as to display parentheses or not, to change the shape/size of the notehead, etc. ======================= One special case occurs when playing a harmonic on an open string. These are called natural harmonics. In this case you don't press the lower pitch position with a finger, just lightly on the second pitch position. The case where you have to press the bottom pitch position are called "artificial harmonics". The first note in measure 221 is an open-string harmonic: This falls outside of the above harmonic syntax, so how to express this would have to be considered. The violinist would play this on the top open string, partially touching one octave higher. The black parenthesised note is the sounding note which should be heard. In this case it is implied to touch the string lightly an octave higher (not on the E5, but on the E6). Using a diamond shaped note on the bottom note of the octave is implying an open-string harmonic, and since you never notate the touch point for an octave harmonic, the touch symbol was put on the bottom note. Compare this to the first note on the line in the previous example, which is contextually implied to be an artificial harmonic: In this case, the harmonic requires two fingers: one to hold down the E5 pitch (on the A4 string), and the other the press lightly on the E6 point on the A5 string. This interpretation is implied by the fact that the E5 note is a regular shape, as well as the following F# needing not able to be played on the A4 string. Since there is no diamond notehead, it is also implied that the other finger should touch an octave higher. I don't understand the notation for the first three notes in measure 223. There are diamond notes on B4 and a sounding note in F#6. So this must mean that the fingered note is B4, and the touching note is F#5. This also happens on the third note of measure 219 and the third beat of measure 220. |
|
Whew! Harmonics are a complex subject; thanks for the very detailed commentary, Craig. This subject is germane to my own interests at the moment because I'm finishing a violin concerto and trying to decide how to notate artificial harmonics! (Premiere is scheduled for Feb. 12 at 2 PM, here in Bloomington. All are invited.) I wish I had time to comment at length, but a few random observations:
|
That is true. But I was saying "special case" in that the notation Schoenberg used for the natural harmonic did not quite fit the graphical system I was defining, so more thought would be needed on how to map the semantics to the graphical symbols in the notation. "natural harmonic" means that the performer only has to press lightly on the top pitch position in order to generate the sounding harmonic. "artificial harmonic" means that the perform has to press firmly on the bottom note position, and also press lightly on the top note position. In terms of semantics, there is not a great difference between the two, just that natural harmonics only requires one finger and artificial harmonics require two. |
As a pianist, I usually do not have to worry about harmonics (but I have played some John Cage and Henry Cowell pieces which require performing harmonics). I will have to look at the Piston description. This looks like he is notating the sounding pitch of the harmonic as a regular note, and then putting a circle articulation above it to indicate that it is a harmonic. And the realization of that harmonic is left up to the performer. There are multiple ways to realize the harmonic, and in that case the composer does not care how the performer does it, as long as they produce the correctly notated pitch as a harmonic. Schoenberg is being more explicit and telling the performer how to realize the harmonic. Here is an illustration of what I am saying (using Schoenberg's system), but regularizing the first case: And here is Piston's system for the same music: All harmonics look the same, since it is up to the performer to decide how to generate the sounding harmonic. In Schoenberg's system, the circle articulation is redundant since the diamond noteheads indicate the presence of a harmonic. A good semantic system would allow for conversion between these two graphical systems... |
What is a flute harmonic? (meaning what does it look like on paper, and how it is realized?). I presume this means to overblow a note (to excite the pitch an octave higher). This starts to get close to multiphonics, which are related to string harmonics but more a woodwind context. Woodwind registers above the bottom one can be thought of as harmonics: the second register of a flute (C5 to C6) is played on the second harmonic of the bottom register notes by overblowing and adjusting some keys to suppress the fundamental, so technically most notes a flautist plays are harmonics. Artificial vs Natural harmonic don't make sense in a woodwind context. Technically they are all natural harmonics, and the performer is controlling the length of the "string" by opening and closing holes, as well as massaging the nodes on that string to control which harmonic is being played as well as overblowing to select a particular harmonic. Guitars would behave similarly to violins. A natural harmonic would be where the open string is used, and the artificial harmonic would be where the string is pressed firmly at one fret, and touched lightly at another fret. Brass instrument pitches are almost entirely played as harmonics (but written as regular pitches). Is there a case where brass instruments have notated harmonics? Circle articulations in French Horn music does not count as this means "open" rather than "harmonic". For the Rite of Spring example, is the harmonic notated at the sounding pitch or an octave below the sounding pitch (which is different from my interpretation of the Piston system)? Maybe Stravinsky did not have piccolo players, which are supposed to be used for such situations... He also obviously did not have a piccolo bassoonist :-) https://jasontaurins.files.wordpress.com/2015/05/irlpiccassoon.png |
|
Summarizing -- There are 2 kinds of stemless notes:
There are also 2 kinds of harmonics:
The first kind of stemless note can be indicated using -- although I'm leaning toward adding allows for the positioning of beams even when the stem is invisible. We should also consider adding a Schematron rule that requires For visual alignment purposes, it's possible to place stemless notes inside a so-called "duration container". For example, in the illustration of Schoenberg's tone-row usage the headless notes can be wrapped with a I don't think that this use of Turning to harmonics, following the so-called Piston system (although he was certainly describing an already-existing practice), all harmonics can be indicated by -- that is, the sounding pitch (which is also the notated pitch) is encoded and the articulation indication added. It's left up to the performer to figure out exactly how to achieve the notated result. Using the so-called Schoenberg system (again, he was probably describing existing practice), a distinction is (sometimes) made between natural and artificial harmonics. Natural harmonics are similar to the Piston system -- the difference being that what's encoded is the written pitch, not the sounded one. So, in order to capture the sounding pitch we can add an attribute or two -- or The Schoenberg approach treats artificial harmonics differently. In this case the stopped pitch is notated with an oval notehead, while the harmonic node is written with a diamond-shaped notehead. In MEI this is captured as a chord -- Note the use of We haven't addressed this before, but such examples suggest that adding These elements can be thought of as syntactic sugar for |
|
It happens I'm an ex-flutist. What @craigsapp says about flute harmonics is pretty much correct, though I'm not sure the adjusting of keys while overblowing for normal (non-harmonic) notes is solely or even primarily to suppress the fundamental. Anyway, to produce harmonics, you simply don't adjust the keys! The difference in timbre is quite minor, IMHO, and they're very rarely used; in fact offhand I can't think of any examples other than in The Rite of Spring. The notation there is the same as the standard notation for natural harmonics on strings, viz., the sounding pitch is notated with a little circle over it. Of course @craigsapp is right about guitar harmonics, my oversight; and Gould, in Behind Bars, discusses guitar harmonics at length. She also discusses harmonics for strings (of course), harp, and piano -- but no other instruments, including flute (more evidence of how unimportant flute harmonics are). |
|
An interesting note from Behind Bars, page 413-414:
So Elaine advocates the Schoenberg system rather than the Piston system. But she says what I was thinking about the circle articulating being redundant in the Schoenberg system, Page 419:
And she also recommends the notation of the sounding pitch in the Schoenberg system (ibid.):
Discussion about sounding pitch notation in harmonics on p. 421:
And a discussion about ottava lines on page 422:
|
|
@pe-ro, just to make sure we are on the same line
add below
I agree with this, but I don't think this fulfil the what is required with the Schoenberg. That is not aligned notes but instead just evenly spaced notes. For me a |
|
Here is an ossia example which is probably related to the Schoenberg example: In MEI this could be encoded as a reading, and it seems that it is up to the renderer to identify that the durations of the ossia do not match the primary reading. When this happens, the renderer calculates the ossia layout indepent of the rhythms in the the primary layout, but with a constraint placed on its width (or if needed to be typeset wider, it would be able to control the width of the primary reading's layout in those two measures). For the Schoenberg example, the tonerow line could be encoded as a reading, and an ossia renderer should be able to handle the placement of the notes by noting that they have no rhythm, and therefore cannot be aligned rhythmically with the primary reading. |
|
By the way, my student has given up on us, and he will use jQuery to remove the unwanted stems in the SVG output from verovio :-) |
|
Stem.len=0 is implemented already.
…On Dec 8, 2016 5:48 PM, "Craig Stuart Sapp" ***@***.***> wrote:
By the way, my student has given up on us, and he will use jQuery to
remove the unwanted stems in the SVG output from verovio :-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#375 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAqFBHOClyttKwi5kKiqb-ICOPGOidoGks5rGDTUgaJpZM4LCD4P>
.
|
|
@lpugin: The equal spacing of the stemless notes is an "accident" (in the same way line breaks are an "accident" of typesetting). In other words, it's not very important. It seems to me that they can be spaced the way notes of a tuplet would normally be handled. If some other spacing is desired, then |
|
Was that added in the last few weeks? I saw @rettinghaus message above, but I wasn't sure that it was going all of the way to the SVG. I'll update my version of verovio. |
|
On the topic of horizontal spacing -- MEI currently has a couple of attributes ( Right now, only I'm aware that there are various algorithms for computing "optimal" note spacing. But, is there a generic way of describing note spacing, say with an attribute with a list of values (closed or semi-open), such as "linear", "logarithmic", "proportional", etc. that could replace |
|
Someone want to create an MEI issue for adding |
|
Looking at Craig's latest examples of harmonics, another encoding possibility comes to mind -- The sounded pitches could be encoded in a separate The second example is the same as the first with an additional In the third example, the basic idea is the same, but the parentheses and the position indicators have to be treated as What's gained is the independent treatment of written vs sounded notes. What's lost is the connection between them. This approach requires some kind of indication on the "touch" note not to include it in a MIDI rendering. Luckily, we have such a mechanism, two in fact -- |
|
@craigsapp: You seem to draw on them frequently -- have you scanned/re-set all the examples from Gould? |
|
@pe-ro: of course :-). Actually I just typeset them in SCORE which looks prettier than scanning (and less effort finding a scanner :-) |
|
I updated to the most recent develop version: With stems: With Interestingly the beams stay where they were, but the triplet signs collapse to the notes. (but I won't need anything except stemless quarter notes, so it doesn't matter to me). MEI test data: <?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="3.0.0">
<meiHead>
<fileDesc>
<titleStmt>
<title>Prelude in E Minor, Op. 28, No. 4</title>
<respStmt>
<persName role="Composer">Chopin, Frederic</persName>
</respStmt>
</titleStmt>
<pubStmt>
<date>2016-12-08 20:08:37</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>Transcoded from Humdrum with Verovio version 0.9.13-dev-1745ac2-dirty</p>
<p>Encoded by: Craig Stuart Sapp</p>
</projectDesc>
</encodingDesc>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef xml:id="scoredef-000000013010827" midi.bpm="72">
<staffGrp xml:id="m-000000015065475">
<staffDef xml:id="staffdef-000000120732808" clef.shape="G" clef.line="2" key.sig="1s" meter.count="2" meter.unit="2" meter.sym="cut" n="1" lines="5" />
</staffGrp>
</scoreDef>
<section xml:id="section-000000005029267">
<measure xml:id="measure-L14" n="0">
<staff xml:id="staff-000000096945086" n="1">
<layer xml:id="layer-L14F1" n="1">
<beam xml:id="beam-000000039743411">
<note xml:id="note-L23F1" dots="1" dur="8" oct="3" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L24F1" dur="16" oct="4" pname="b" accid.ges="n" stem.len="0" />
</beam>
</layer>
</staff>
<tempo xml:id="tempo-000000147537131" staff="1" tstamp="1.000000">Largo</tempo>
</measure>
<measure xml:id="measure-L25" n="1">
<staff xml:id="staff-L25F1" n="1">
<layer xml:id="layer-L25F1" n="1">
<note xml:id="note-L26F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L27F1" dur="4" oct="5" pname="c" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L28" n="2">
<staff xml:id="staff-L28F1" n="1">
<layer xml:id="layer-L28F1" n="1">
<note xml:id="note-L29F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L30F1" dur="4" oct="5" pname="c" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L31" n="3">
<staff xml:id="staff-L31F1" n="1">
<layer xml:id="layer-L31F1" n="1">
<note xml:id="note-L32F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L33F1" dur="4" oct="5" pname="c" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L34" n="4">
<staff xml:id="staff-L34F1" n="1">
<layer xml:id="layer-L34F1" n="1">
<note xml:id="note-L35F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L36F1" dur="4" accid="f" oct="4" pname="b" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L37" n="5">
<staff xml:id="staff-L37F1" n="1">
<layer xml:id="layer-L37F1" n="1">
<note xml:id="note-L38F1" dots="1" dur="2" oct="4" pname="a" accid.ges="n" stem.len="0" />
<note xml:id="note-L39F1" dur="4" oct="4" pname="b" accid.ges="n" stem.len="0">
<accid xml:id="accid-000000199502089" accid="n" func="caution" />
</note>
</layer>
</staff>
</measure>
<measure xml:id="measure-L40" n="6">
<staff xml:id="staff-L40F1" n="1">
<layer xml:id="layer-L40F1" n="1">
<note xml:id="note-L41F1" dots="1" dur="2" oct="4" pname="a" accid.ges="n" stem.len="0" />
<note xml:id="note-L42F1" dur="4" oct="4" pname="b" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L43" n="7">
<staff xml:id="staff-L43F1" n="1">
<layer xml:id="layer-L43F1" n="1">
<note xml:id="note-L44F1" dots="1" dur="2" oct="4" pname="a" accid.ges="n" stem.len="0" />
<beam xml:id="beam-000000188707782">
<note xml:id="note-L45F1" dots="1" dur="8" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L46F1" dur="16" oct="4" pname="a" accid.ges="n" stem.len="0" />
</beam>
</layer>
</staff>
</measure>
<measure xml:id="measure-L47" n="8">
<staff xml:id="staff-L47F1" n="1">
<layer xml:id="layer-L47F1" n="1">
<note xml:id="note-L48F1" dots="1" dur="2" oct="4" pname="a" accid.ges="n" stem.len="0" />
<note xml:id="note-L49F1" dur="4" accid="s" oct="4" pname="g" stem.len="0" />
</layer>
</staff>
<tie xml:id="tie-000000050301625" startid="#note-L49F1" endid="#note-L51F1" />
</measure>
<measure xml:id="measure-L50" n="9">
<staff xml:id="staff-L50F1" n="1">
<layer xml:id="layer-L50F1" n="1">
<note xml:id="note-L51F1" dur="4" oct="4" pname="g" accid.ges="s" stem.len="0" />
<beam xml:id="beam-000000189381201">
<note xml:id="note-L52F1" dur="8" oct="4" pname="a" accid.ges="n" stem.len="0" />
<note xml:id="note-L53F1" dur="8" oct="4" pname="b" accid.ges="n" stem.len="0" />
</beam>
<beam xml:id="beam-000000006066219">
<note xml:id="note-L54F1" dur="8" oct="5" pname="d" accid.ges="n" stem.len="0" />
<note xml:id="note-L55F1" dur="8" oct="5" pname="c" accid.ges="n" stem.len="0" />
<note xml:id="note-L56F1" dur="8" oct="4" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L57F1" dur="8" oct="4" pname="a" accid.ges="n" stem.len="0" />
</beam>
</layer>
</staff>
</measure>
<measure xml:id="measure-L58" n="10">
<staff xml:id="staff-L58F1" n="1">
<layer xml:id="layer-L58F1" n="1">
<note xml:id="note-L59F1" dots="1" dur="2" oct="4" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L60F1" dur="4" oct="4" pname="a" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L61" n="11">
<staff xml:id="staff-L61F1" n="1">
<layer xml:id="layer-L61F1" n="1">
<note xml:id="note-L62F1" dots="1" dur="2" oct="4" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L63F1" dur="8" oct="4" pname="b" accid.ges="n" grace="acc" stem.len="0" />
<note xml:id="note-L64F1" dur="4" oct="4" pname="a" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L65" n="12">
<staff xml:id="staff-L65F1" n="1">
<layer xml:id="layer-L65F1" n="1">
<beam xml:id="beam-000000000676275">
<note xml:id="note-L66F1" dur="8" oct="4" pname="g" accid.ges="n" stem.len="0" />
<note xml:id="note-L67F1" dur="8" oct="4" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L68F1" dur="8" oct="4" pname="c" accid.ges="n" stem.len="0" />
<note xml:id="note-L69F1" dur="8" oct="3" pname="b" accid.ges="n" stem.len="0" />
</beam>
<beam xml:id="beam-000000110483176">
<note xml:id="note-L70F1" dur="8" accid="s" oct="4" pname="d" stem.len="0" />
<note xml:id="note-L71F1" dur="8" oct="4" pname="f" accid.ges="s" stem.len="0" />
</beam>
<beam xml:id="beam-000000131149402">
<tuplet xml:id="tuplet-000000176757316" num="3" numbase="2" bracket.visible="false" num.format="count">
<note xml:id="note-L72F1" dur="8" oct="5" pname="d" accid.ges="n" stem.len="0">
<accid xml:id="accid-000000049013266" accid="n" func="caution" />
</note>
<note xml:id="note-L73F1" dur="8" oct="5" pname="c" accid.ges="n" stem.len="0" />
<note xml:id="note-L74F1" dur="8" oct="4" pname="b" accid.ges="n" stem.len="0" />
</tuplet>
</beam>
</layer>
</staff>
</measure>
<measure xml:id="measure-L75" n="13">
<staff xml:id="staff-L75F1" n="1">
<layer xml:id="layer-L75F1" n="1">
<note xml:id="note-L76F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L77F1" dur="4" oct="5" pname="c" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L78" n="14">
<staff xml:id="staff-L78F1" n="1">
<layer xml:id="layer-L78F1" n="1">
<note xml:id="note-L79F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L80F1" dur="4" oct="5" pname="c" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L81" n="15">
<staff xml:id="staff-L81F1" n="1">
<layer xml:id="layer-L81F1" n="1">
<note xml:id="note-L82F1" dots="1" dur="2" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L83F1" dur="4" oct="5" pname="c" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L84" n="16">
<staff xml:id="staff-L84F1" n="1">
<layer xml:id="layer-L84F1" n="1">
<beam xml:id="beam-000000177274093">
<note xml:id="note-L85F1" dots="1" dur="8" oct="4" pname="b" accid.ges="n" stem.len="0" />
<note xml:id="note-L86F1" dur="16" accid="s" oct="4" pname="a" stem.len="0" />
</beam>
<note xml:id="note-L87F1" dur="4" oct="4" pname="a" accid.ges="s" stem.len="0" />
<note xml:id="note-L88F1" dur="4" oct="5" pname="g" accid.ges="n" stem.len="0" />
<beam xml:id="beam-000000041388906">
<note xml:id="note-L89F1" dots="1" dur="8" oct="5" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L90F1" dur="16" oct="5" pname="e" accid.ges="n" stem.len="0" />
</beam>
</layer>
</staff>
<dir xml:id="dir-000000077422276" place="above" staff="1" tstamp="1.500000">*</dir>
</measure>
<measure xml:id="measure-L91" n="17">
<staff xml:id="staff-L91F1" n="1">
<layer xml:id="layer-L91F1" n="1">
<beam xml:id="beam-000000187398835">
<note xml:id="note-L92F1" dur="8" oct="5" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L93F1" dur="8" accid="s" oct="5" pname="d" stem.len="0" />
<note xml:id="note-L94F1" dur="8" oct="6" pname="c" accid.ges="n" stem.len="0" />
<note xml:id="note-L95F1" dur="8" oct="5" pname="d" accid.ges="s" stem.len="0" />
</beam>
<beam xml:id="beam-000000191043905">
<note xml:id="note-L96F1" dur="8" oct="5" pname="d" accid.ges="s" stem.len="0" />
<note xml:id="note-L97F1" dur="8" oct="5" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L98F1" dur="8" oct="5" pname="g" accid.ges="n" stem.len="0" />
<note xml:id="note-L99F1" dur="8" oct="4" pname="b" accid.ges="n" stem.len="0" />
</beam>
</layer>
</staff>
</measure>
<measure xml:id="measure-L100" n="18">
<staff xml:id="staff-L100F1" n="1">
<layer xml:id="layer-L100F1" n="1">
<beam xml:id="beam-000000211813288">
<note xml:id="note-L101F1" dur="8" oct="5" pname="d" accid.ges="n" stem.len="0">
<accid xml:id="accid-000000206098750" accid="n" func="caution" />
</note>
<note xml:id="note-L102F1" dur="8" oct="5" pname="c" accid.ges="n" stem.len="0" />
</beam>
<beam xml:id="beam-000000009842162">
<tuplet xml:id="tuplet-000000161523331" num="3" numbase="2" bracket.visible="false" num.format="count">
<note xml:id="note-L103F1" dur="8" oct="5" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L104F1" dur="8" oct="4" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L105F1" dur="8" oct="4" pname="a" accid.ges="n" stem.len="0" />
</tuplet>
</beam>
<note xml:id="note-L106F1" dots="1" dur="4" oct="4" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L107F1" dur="8" oct="4" pname="a" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L108" n="19">
<staff xml:id="staff-L108F1" n="1">
<layer xml:id="layer-L108F1" n="1">
<note xml:id="note-L109F1" dots="1" dur="2" oct="4" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L110F1" dur="8" oct="4" pname="b" accid.ges="n" grace="acc" stem.len="0" />
<note xml:id="note-L111F1" dur="4" oct="4" pname="a" accid.ges="n" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L112" n="20">
<staff xml:id="staff-L112F1" n="1">
<layer xml:id="layer-L112F1" n="1">
<note xml:id="note-L113F1" dots="1" dur="2" oct="4" pname="f" accid.ges="s" stem.len="0" />
<beam xml:id="beam-000000154598754">
<note xml:id="note-L114F1" dots="1" dur="8" oct="4" pname="f" accid.ges="s" stem.len="0" />
<note xml:id="note-L115F1" dur="16" oct="4" pname="e" accid.ges="n" stem.len="0" />
</beam>
</layer>
</staff>
<tie xml:id="tie-000000123776037" startid="#note-L113F1" endid="#note-L114F1" />
</measure>
<measure xml:id="measure-L116" n="21">
<staff xml:id="staff-L116F1" n="1">
<layer xml:id="layer-L116F1" n="1">
<note xml:id="note-L117F1" dots="1" dur="2" oct="4" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L118F1" dur="4" oct="4" pname="f" accid.ges="s" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L119" n="22">
<staff xml:id="staff-L119F1" n="1">
<layer xml:id="layer-L119F1" n="1">
<note xml:id="note-L120F1" dots="1" dur="2" oct="4" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L121F1" dur="4" oct="4" pname="f" accid.ges="s" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L122" n="23">
<staff xml:id="staff-L122F1" n="1">
<layer xml:id="layer-L122F1" n="1">
<note xml:id="note-L123F1" dur="2" oct="4" pname="e" accid.ges="n" stem.len="0" />
<rest xml:id="rest-L124F1" dur="2" fermata="above" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L125" n="24">
<staff xml:id="staff-L125F1" n="1">
<layer xml:id="layer-L125F1" n="1">
<note xml:id="note-L126F1" dur="2" oct="4" pname="e" accid.ges="n" stem.len="0" />
<note xml:id="note-L127F1" dur="2" accid="s" oct="4" pname="d" stem.len="0" />
</layer>
</staff>
</measure>
<measure xml:id="measure-L128" n="25" right="end">
<staff xml:id="staff-L128F1" n="1">
<layer xml:id="layer-L128F1" n="1">
<note xml:id="note-L129F1" dur="1" oct="4" pname="e" accid.ges="n" />
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei>How I did it in Humdrum: |
|
OK, so this issue is closed at last (gasp!), but Perry's question about horizontal spacing hasn't been answered, and it's an important question. I have zero time to respond at the moment, but does somebody (Perry?) want to open a new issue with it? |
|
It should be open on music-encoding |
|
Just created new issue regarding clarification of horizontal spacing at music-encoding: music-encoding/music-encoding#363. |


















Is there a way to draw a note without a stem, such as a quarter note?
I don't see how to do this in the MEI guidlines. The only values for
@stem.dirareupanddown, so maybe the information can be put there. There is also a@stem.len. And verovio does not process that attribute yet anyway.Another idea is: there is a
@head.visible, so a@stem.visiblewould be a nice parallel to add to the MEI spec to hide stems for note elements.The text was updated successfully, but these errors were encountered: