Skip to content
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

Slurs don't seem to be working with tstamp. #92

Closed
minamouse opened this issue May 20, 2015 · 13 comments
Closed

Slurs don't seem to be working with tstamp. #92

minamouse opened this issue May 20, 2015 · 13 comments

Comments

@minamouse
Copy link

Slurs seem to only accept the startid and endid attributes but not the tstamp attribute.

@minamouse minamouse changed the title slurs Slurs don't seem to be working with tstamp. May 20, 2015
@lpugin
Copy link
Contributor

lpugin commented Feb 16, 2016

Implemented in cfc4059

@lpugin lpugin closed this as completed Feb 16, 2016
@sonovice
Copy link
Contributor

sonovice commented Sep 25, 2018

tstamp can also be provided in the form of beats and bars offset, e.g. tstamp1="1" tstamp2="0m+3". This is the usual output of sibmei, see music-encoding/sibmei#93 . It might be worth to support this as well.

@craigsapp
Copy link
Contributor

craigsapp commented Feb 8, 2019

In the current version of verovio, slurs will not be drawn if they use @tstamp and @tstamp2. A regression occurred in this feature between versions 0.9.13 and 1.0.0.

Here is the rendering of the test data below in vervio 1.0.0:

screen shot 2019-02-08 at 5 21 37 am

And here is the rendering of the same data in verovio 0.9.13:

screen shot 2019-02-08 at 5 18 17 am

Using @startid and @endid work in the current version, and the visual output should be the same as when @tstamp and @tstamp2 are used:

screen shot 2019-02-08 at 4 52 58 am

MEI test data, using time stamps for slur placement:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.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="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title />
            </titleStmt>
            <pubStmt />
        </fileDesc>
        <encodingDesc>
            <appInfo>
                <application isodate="2019-02-08T04:55:27" version="2.1.0-dev-56b5535-dirty">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
        </encodingDesc>
        <workList>
            <work>
                <title />
            </work>
        </workList>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000002132858970">
                <score xml:id="score-0000001163673066">
                    <scoreDef xml:id="scoredef-0000000471865442">
                        <staffGrp xml:id="staffgrp-0000000649980561">
                            <staffDef xml:id="staffdef-0000000479783727" clef.shape="G" clef.line="2" n="1" lines="5">
                                <label xml:id="label-0000001694588760" />
                            </staffDef>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-L1F1">
                        <measure xml:id="measure-L3" right="end">
                            <staff xml:id="staff-L3F1N1" n="1">
                                <layer xml:id="layer-L3F1N1" n="1">
                                    <note xml:id="note-L4F1" dur="4" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L5F1" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L6F1" dur="4" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L7F1" dur="4" oct="4" pname="f" accid.ges="n" />
                                </layer>
                            </staff>
                            <slur xml:id="slur-L4F1-L7F1" staff="1" tstamp="1" tstamp2="4" />
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

Here is the related encoding using @startid and @endid to specify the endpoints of the slurs:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.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="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title />
            </titleStmt>
            <pubStmt />
        </fileDesc>
        <encodingDesc>
            <appInfo>
                <application isodate="2019-02-08T05:31:27" version="2.1.0-dev-56b5535-dirty">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
        </encodingDesc>
        <workList>
            <work>
                <title />
            </work>
        </workList>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000001654470073">
                <score xml:id="score-0000001060255555">
                    <scoreDef xml:id="scoredef-0000001941356192">
                        <staffGrp xml:id="staffgrp-0000001674613076">
                            <staffDef xml:id="staffdef-0000001226653705" clef.shape="G" clef.line="2" n="1" lines="5">
                                <label xml:id="label-0000001447945115" />
                            </staffDef>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-L1F1">
                        <measure xml:id="measure-L3" right="end">
                            <staff xml:id="staff-L3F1N1" n="1">
                                <layer xml:id="layer-L3F1N1" n="1">
                                    <note xml:id="note-L4F1" dur="4" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L5F1" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L6F1" dur="4" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L7F1" dur="4" oct="4" pname="f" accid.ges="n" />
                                </layer>
                            </staff>
                            <slur xml:id="slur-L4F1-L7F1" staff="1" startid="#note-L4F1" endid="#note-L7F1" />
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

@craigsapp craigsapp reopened this Feb 8, 2019
@rettinghaus
Copy link
Contributor

rettinghaus commented Feb 8, 2019 via email

@craigsapp
Copy link
Contributor

I aways use @startid and @endid, so I didn't notice the change (but I vaguely remember something about it). However, @lpugin just mentioned using @tstamp for slurs in the MEI-L mailing list related to a question from @wergo:

https://lists.uni-paderborn.de/pipermail/mei-l/2019/002265.html

I also believe this is the right direction. However, I would replace @startid="#barline" to @tstamp="0.0"

This is for cases like this:

screen shot 2019-02-08 at 8 03 10 am

So should @tstamp be allowed in such cases, or would using the ID of the barline with @startid be better, or something else?

There would also be a complication of slur orientation. In this case the slur should be below the staff due to information from the note attached to the end of the slur.

@craigsapp
Copy link
Contributor

There is also "laissez vibrer" which is similar. They might involve timestamps, although mostly these would probably be better as fonts (fixed-width slurs not dependent on musical spacing).

https://musescore.org/en/node/14437

Here is an l.v. that should be attached to the end of a measure using @tstamp2:

http://www.rpmseattle.com/of_note/l-v-symbols-in-sibelius-laissez-vibrer-several-solutions/

screen shot 2019-02-08 at 8 25 32 am

@lpugin
Copy link
Contributor

lpugin commented Feb 8, 2019

The latest version (c1ed96f) supports slurs starting or ending with timestamps. Do not reopen the issue for slurs both starting and ending with a timestamp ;-)
image

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://www.music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://www.music-encoding.org/schema/4.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="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title>Slurs starting or ending with timestamps</title>
            </titleStmt>
            <pubStmt>
            </pubStmt>
        </fileDesc>
    </meiHead>
    <music>
        <body>
            <mdiv>
                <score>
                    <scoreDef>
                        <staffGrp>
                            <staffDef n="1" clef.shape="G" lines="5" clef.line="2"/>
                        </staffGrp>
                    </scoreDef>
                    <section>
                        <measure n="1">
                            <staff n="1">
                                <layer n="1">
                                    <note xml:id="n1" dur="2" oct="4" pname="c"/>
                                    <note xml:id="n2" dur="2" oct="4" pname="c"/>
                                </layer>
                            </staff>
                            <slur tstamp="0.0" endid="#n2" curvedir="above" staff="1"/>
                            <slur startid="#n1" tstamp2="1m+5" staff="1"/>
                        </measure>
                        <measure n="2">
                            <staff n="1">
                                <layer n="1">
                                    <note dur="1" oct="4" pname="c"/>
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

@lpugin lpugin closed this as completed Feb 8, 2019
@craigsapp
Copy link
Contributor

craigsapp commented Feb 8, 2019

At some point it would be useful to have ties also attach to timestamps (at least one side) related to the laissez vibrer given above:

screen shot 2019-02-08 at 8 25 32 am

Here is the current rendering in verovio:

screen shot 2019-02-08 at 1 48 44 pm

[I made a typo in the original MEI data posed here, so the image and MEI data below are updated]

Test MEI data:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.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="4.0.0">
 <meiHead>
  <fileDesc>
   <titleStmt>
    <title />
   </titleStmt>
   <pubStmt />
  </fileDesc>
  <encodingDesc>
   <appInfo>
    <application isodate="2019-02-08T13:34:18" version="2.1.0-dev-11a75bb">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
  <workList>
   <work>
    <title />
   </work>
  </workList>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000001224189658">
    <score xml:id="score-0000002062243746">
     <scoreDef xml:id="scoredef-0000000981370774" midi.bpm="400">
      <staffGrp xml:id="staffgrp-0000001548932986" symbol="brace" bar.thru="true">
       <label xml:id="label-0000001600942656" />
       <staffDef xml:id="staffdef-0000002063554694" clef.shape="G" clef.line="2" meter.count="4" meter.unit="4" n="1" lines="5" />
       <staffDef xml:id="staffdef-0000001324635250" clef.shape="F" clef.line="4" meter.count="4" meter.unit="4" n="2" lines="5" />
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1" n="0">
       <staff xml:id="staff-0000000649857348" n="1">
        <layer xml:id="layer-L1F2N1" n="1">
         <rest xml:id="rest-L4F2" dur="8" />
         <chord xml:id="chord-L5F2" dur="8">
          <note xml:id="note-L5F2S1" oct="5" pname="f" accid.ges="n" />
          <note xml:id="note-L5F2S2" oct="6" pname="g" accid="f" />
         </chord>
         <chord xml:id="chord-L6F2" dur="2">
          <note xml:id="note-L6F2S1" oct="5" pname="f" accid.ges="n" />
          <note xml:id="note-L6F2S2" oct="6" pname="g" accid.ges="f" />
         </chord>
        </layer>
       </staff>
       <staff xml:id="staff-0000000050619194" n="2">
        <layer xml:id="layer-L1F1N1" n="1">
         <rest xml:id="rest-L4F1" dur="8" />
         <chord xml:id="chord-L5F1" dur="8">
          <note xml:id="note-L5F1S1" oct="2" pname="d" accid="s" />
          <note xml:id="note-L5F1S2" oct="3" pname="e" accid.ges="n" />
         </chord>
         <chord xml:id="chord-L6F1" dur="2">
          <note xml:id="note-L6F1S1" oct="2" pname="d" accid.ges="s" />
          <note xml:id="note-L6F1S2" oct="3" pname="e" accid.ges="n" />
         </chord>
        </layer>
       </staff>
       <tie xml:id="tie-L5F2S1-L6F2S1" startid="#note-L5F2S1" endid="#note-L6F2S1" />
       <tie xml:id="tie-L5F2S2-L6F2S2" startid="#note-L5F2S2" endid="#note-L6F2S2" />
       <tie xml:id="tie-L5F1S1-L6F1S1" startid="#note-L5F1S1" endid="#note-L6F1S1" />
       <tie xml:id="tie-L5F1S2-L6F1S2" startid="#note-L5F1S2" endid="#note-L6F1S2" />
       <tie xml:id="tie-L6F2S1-L9F2S1" startid="#note-L6F2S1" tstamp2="5" />
       <tie xml:id="tie-L6F2S2-L9F2S2" startid="#note-L6F2S2" tstamp2="5" />
       <tie xml:id="tie-L6F1S1-L9F1S1" startid="#note-L6F1S1" tstamp2="5" />
       <tie xml:id="tie-L6F1S2-L9F1S2" startid="#note-L6F1S2" tstamp2="5" />
      </measure>
      <measure xml:id="measure-L7" right="invis">
       <staff xml:id="staff-L7F2N1" n="1">
        <layer xml:id="layer-L7F2N1" n="1">
         <rest xml:id="rest-L10F2" dur="2" />
        </layer>
       </staff>
       <staff xml:id="staff-L7F1N1" n="2">
        <layer xml:id="layer-L7F1N1" n="1">
         <rest xml:id="rest-L10F1" dur="2" />
        </layer>
       </staff>
       <dir xml:id="dir-L9F2" place="above" staff="1" tstamp="1.000000">l.v.</dir>
       <dir xml:id="dir-L9F1" place="below" staff="2" tstamp="1.000000">l.v.</dir>
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

@rettinghaus
Copy link
Contributor

rettinghaus commented Feb 8, 2019 via email

@craigsapp
Copy link
Contributor

craigsapp commented Feb 8, 2019

I think an <lv> would potentially be useful, but it would probably take a while to adequately define it (much less implement it 😝 ).

Using a tie in such situations is not very grammatical , so it might be mixed up with some sort of data error. Conceptually the L.v. is halfway between a tie and a sustain pedal, for example (sometimes it functions as a tie and sometimes as a sustain pedal). On stringed instruments it would be a form of articulation that means to not dampen the string. There are probably several types of graphical grammars for l.v.. The example above follows closely the visual syntax of a tie, but the first link I gave to the MuseScore website had examples of l.v. which behave less like standard ties:

screen shot 2019-02-08 at 3 28 30 pm

(from Debussy preludes book II: http://conquest.imslp.info/files/imglnks/usimg/d/dd/IMSLP00510-Debussy_-_Preludes,_Book_2.pdf)

These l.v. are behaving more like articulations. The first set are similar to ties, but the endpoints would not be to a specific timestamp. In other words, notice that they are the same length as the ones on the barline. And they should keep the same width regardless of the musical spacing.

But there is a temporal component to the l.v. in this example, since the ones attached to whole notes are longer:

screen shot 2019-02-08 at 3 34 16 pm

(Page 55, bottom system)

Page 11, top system:

screen shot 2019-02-08 at 3 39 09 pm

These should be attached to the same timestamp as the low A2, but the l.v. should be centered at that timestamp.

Similarly on page 15:

screen shot 2019-02-08 at 3 41 46 pm

These l.v. should be centered on the second triplet eighth notes (although they could be attached to the last grace note, but an extra space before the start of the l.v. would be needed).

There is also a textual l.v. on page 73, 3rd system:

screen shot 2019-02-08 at 3 47 44 pm

@craigsapp
Copy link
Contributor

Here is a case where the @tstamp on one side of the slur will be useful:

screen shot 2019-02-08 at 3 20 38 pm

This is the transcription of a manuscript, where the intended endpoint of the slur is ambiguous (The slur could be attached to the last half note of the top staff, the first note of the next staff, or even the last quarter note of the bass staff).

Here is the new rendering capability in verovio:

screen shot 2019-02-08 at 3 24 42 pm

Note that the attachement to a tstamp (at least one without any notes at it), is adding extra width to the music:

screen shot 2019-02-08 at 4 30 39 pm

this will probably be an undesirable feature to remove at some point.

MEI test data:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.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="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title />
            </titleStmt>
            <pubStmt />
        </fileDesc>
        <encodingDesc>
            <appInfo>
                <application isodate="2019-02-08T15:23:31" version="2.1.0-dev-56b5535-dirty">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
        </encodingDesc>
        <workList>
            <work>
                <title />
            </work>
        </workList>
        <extMeta>
            <frames xmlns="http://www.humdrum.org/ns/humxml">
                <metaFrame n="10" token="!!!RDF**kern: &gt; = above" xml:id="L11">
                    <frameInfo>
                        <startTime float="8" />
                        <frameType>reference</frameType>
                        <referenceKey>RDF**kern</referenceKey>
                        <referenceValue>&gt; = above</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="11" token="!!!RDF**kern: &lt; = below" xml:id="L12">
                    <frameInfo>
                        <startTime float="8" />
                        <frameType>reference</frameType>
                        <referenceKey>RDF**kern</referenceKey>
                        <referenceValue>&lt; = below</referenceValue>
                    </frameInfo>
                </metaFrame>
            </frames>
        </extMeta>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000000523700328">
                <score xml:id="score-0000000513515331">
                    <scoreDef xml:id="scoredef-0000000079629051" midi.bpm="400">
                        <staffGrp xml:id="staffgrp-0000000966969626">
                            <staffDef xml:id="staffdef-0000000501298518" clef.shape="G" clef.line="2" meter.count="3" meter.unit="2" n="1" lines="5">
                                <label xml:id="label-0000000163522081" />
                            </staffDef>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-L1F1">
                        <measure xml:id="measure-L3" n="1">
                            <staff xml:id="staff-L3F1N1" n="1">
                                <layer xml:id="layer-L3F1N1" n="1">
                                    <note xml:id="note-L4F1" dur="2" oct="5" pname="f" stem.dir="up" accid="s" />
                                    <note xml:id="note-L5F1" dur="2" oct="5" pname="e" stem.dir="up" accid.ges="n" />
                                    <note xml:id="note-L6F1" dur="2" oct="5" pname="d" stem.dir="up" accid="s" />
                                </layer>
                            </staff>
                            <slur xml:id="slur-L4F1-L6F1" staff="1" startid="#note-L4F1" tstamp2="3.5" curvedir="above" />
                        </measure>
                        <measure xml:id="measure-L7" right="invis">
                            <staff xml:id="staff-L7F1N1" n="1">
                                <layer xml:id="layer-L7F1N1" n="1">
                                    <note xml:id="note-L8F1" dur="2" oct="5" pname="c" stem.dir="up" accid="s" />
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

@wergo
Copy link
Contributor

wergo commented Feb 8, 2019

This solves the problem of ties/slurs across endings or repetitions (https://lists.uni-paderborn.de/pipermail/mei-l/2019/002266.html). Thanks!

Here is my example from Beethoven Op. 57 2nd mvt (see slurs in both endings):
bildschirmfoto 2019-02-08 um 23 38 57

This is the MEI encoding:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.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="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title>Sonate</title>
                <title type="subordinate" n="1">Dem Grafen Franz von Brunsvik gewidmet</title>
                <title type="subordinate" n="2">Komponiert 1804/05</title>
                <title type="subordinate" n="3" label="Opus number">Op. 57</title>
                <respStmt>
                    <persName role="composer">Ludwig van Beethoven</persName>
                    <persName role="encoder" enddate="2014-07-13T21:16:10">Craig Stuart Sapp</persName>
                    <persName role="encoder" enddate="2019-01-31T21:16:10">Werner Goebl</persName>
                </respStmt>
            </titleStmt>
            <pubStmt/>
        </fileDesc>
        <encodingDesc>
            <appInfo>
                <application isodate="2018-12-04T12:55:49" version="2.0.0-dev-73f81c8">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
            <projectDesc>
                <p>Encoded by: Craig Stuart Sapp</p>
                <p>Version: 2014/07/13/ (added ottavas)</p>
            </projectDesc>
        </encodingDesc>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="Movement-2" n="2" type="movement">
                <score xml:id="score-0000001376003784">
                    <scoreDef xml:id="scoredef-0000001811114701" midi.bpm="60" key.sig="5f" meter.count="2" meter.unit="4">
                        <staffGrp xml:id="staffgrp-0000001636146698" symbol="brace" bar.thru="true">
                            <label xml:id="label-0000000443830441"/>
                            <staffDef xml:id="staffdef-0000001833860590" clef.shape="F" clef.line="4" n="1" lines="5">
                                <instrDef xml:id="instrdef-0000001368844698" midi.channel="0" midi.instrnum="0" midi.volume="79.00%"/>
                            </staffDef>
                            <staffDef xml:id="staffdef-0000000404605647" clef.shape="F" clef.line="4" n="2" lines="5">
                                <instrDef xml:id="instrdef-0000001949713648" midi.channel="1" midi.instrnum="0" midi.volume="74.00%"/>
                            </staffDef>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-L10F1">


                        <section xml:id="C">
                            <measure xml:id="measure-L104" n="17">
                                <staff xml:id="staff-L104F2N1" n="1">
                                    <layer xml:id="layer-L104F2N1" n="1">
                                        <chord xml:id="chord-L106F2" dur="8">
                                            <note xml:id="note-L106F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L106F2S2" oct="3" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L106F2S3" oct="3" pname="a" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L107F2" dur="8"/>
                                        <chord xml:id="chord-L108F2" dur="8">
                                            <note xml:id="note-L108F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L108F2S2" oct="3" pname="g" accid.ges="f"/>
                                            <note xml:id="note-L108F2S3" oct="3" pname="b" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L109F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L104F1N1" n="2">
                                    <layer xml:id="layer-L104F1N1" n="1">
                                        <rest xml:id="rest-L106F1" dur="8"/>
                                        <note xml:id="note-L107F1" dur="4" oct="2" pname="d" accid.ges="f"/>
                                        <note xml:id="note-L109F1" dur="8" oct="1" pname="g" accid.ges="f" tie="i"/>
                                    </layer>
                                </staff>
                                <dynam xml:id="dynam-L106F3" staff="1" tstamp="1.000000" vgrp="170">p</dynam>
                                <!--  <tie xml:id="tie-L109F1-L112F1" startid="#note-L109F1" endid="#note-L112F1"/>-->
                            </measure>
                        </section>
                        <section xml:id="D">
                            <measure xml:id="measure-L110" left="rptstart" n="18">
                                <staff xml:id="staff-L110F2N1" n="1">
                                    <layer xml:id="layer-L110F2N1" n="1">
                                        <chord xml:id="chord-L112F2" dur="8">
                                            <note xml:id="note-L112F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L112F2S2" oct="3" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L112F2S3" oct="3" pname="a" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L113F2" dur="8"/>
                                        <chord xml:id="chord-L114F2" dur="8">
                                            <note xml:id="note-L114F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L114F2S2" oct="3" pname="e" accid.ges="f"/>
                                            <note xml:id="note-L114F2S3" oct="3" pname="b" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L115F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L110F1N1" n="2">
                                    <layer xml:id="layer-L110F1N1" n="1">
                                        <note xml:id="note-L112F1" dur="8" oct="1" pname="g" accid.ges="f" tie="t"/>
                                        <note xml:id="note-L113F1" dur="4" oct="1" pname="a" accid.ges="f"/>
                                        <note xml:id="note-L115F1" dur="8" oct="1" pname="g" accid="n"/>
                                    </layer>
                                </staff>
                                <tie xml:id="tie-L115F1-L117F1" startid="#note-L115F1" endid="#note-L117F1"/>
                            </measure>
                            <measure xml:id="measure-L116" n="19">
                                <staff xml:id="staff-L116F2N1" n="1">
                                    <layer xml:id="layer-L116F2N1" n="1">
                                        <chord xml:id="chord-L117F2" dur="8">
                                            <note xml:id="note-L117F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L117F2S2" oct="3" pname="e" accid.ges="f"/>
                                            <note xml:id="note-L117F2S3" oct="3" pname="a" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L118F2" dur="8"/>
                                        <chord xml:id="chord-L119F2" dur="8">
                                            <note xml:id="note-L119F2S1" oct="3" pname="c" accid.ges="n"/>
                                            <note xml:id="note-L119F2S2" oct="3" pname="e" accid.ges="f"/>
                                            <note xml:id="note-L119F2S3" oct="3" pname="a" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L120F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L116F1N1" n="2">
                                    <layer xml:id="layer-L116F1N1" n="1">
                                        <note xml:id="note-L117F1" dur="8" oct="1" pname="g" accid.ges="n"/>
                                        <note xml:id="note-L118F1" dur="4" oct="1" pname="a" accid.ges="f"/>
                                        <note xml:id="note-L120F1" dur="8" oct="2" pname="g" accid.ges="f"/>
                                    </layer>
                                </staff>
                                <tie xml:id="tie-L120F1-L122F1" startid="#note-L120F1" endid="#note-L122F1"/>
                            </measure>
                            <measure xml:id="measure-L121" n="20">
                                <staff xml:id="staff-L121F2N1" n="1">
                                    <layer xml:id="layer-L121F2N1" n="1">
                                        <beam xml:id="beam-L122F2-L128F2">
                                            <note xml:id="note-L122F2" dur="16" oct="3" pname="g" accid.ges="f"/>
                                            <rest xml:id="rest-L123F2" dur="16"/>
                                            <note xml:id="note-L124F2" dur="16" oct="3" pname="f" accid.ges="n"/>
                                            <rest xml:id="rest-L125F2" dur="16"/>
                                            <note xml:id="note-L126F2" dur="16" oct="3" pname="e" accid.ges="f"/>
                                            <rest xml:id="rest-L127F2" dur="16"/>
                                            <note xml:id="note-L128F2" dur="16" oct="3" pname="d" accid.ges="f"/>
                                        </beam>
                                        <rest xml:id="rest-L129F2" dur="16"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L121F1N1" n="2">
                                    <layer xml:id="layer-L121F1N1" n="1">
                                        <beam xml:id="beam-L122F1-L129F1">
                                            <note xml:id="note-L122F1" dur="16" oct="2" pname="g" accid.ges="f"/>
                                            <note xml:id="note-L123F1" dur="8" oct="2" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L125F1" dur="8" oct="2" pname="e" accid.ges="f"/>
                                            <note xml:id="note-L127F1" dur="8" oct="2" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L129F1" dur="16" oct="2" pname="c" accid.ges="n"/>
                                        </beam>
                                    </layer>
                                </staff>
                                <tie xml:id="tie-L129F1-L131F1" startid="#note-L129F1" endid="#note-L131F1"/>
                            </measure>
                            <measure xml:id="measure-L130" n="21">
                                <staff xml:id="staff-L130F2N1" n="1">
                                    <layer xml:id="layer-L130F2N1" n="1">
                                        <chord xml:id="chord-L131F2" dur="8">
                                            <note xml:id="note-L131F2S1" oct="3" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L131F2S2" oct="3" pname="a" accid.ges="f"/>
                                            <note xml:id="note-L131F2S3" oct="4" pname="d" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L132F2" dur="8"/>
                                        <chord xml:id="chord-L133F2" dur="8">
                                            <note xml:id="note-L133F2S1" oct="3" pname="g" accid.ges="f"/>
                                            <note xml:id="note-L133F2S2" oct="3" pname="b" accid.ges="f"/>
                                            <note xml:id="note-L133F2S3" oct="4" pname="d" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L134F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L130F1N1" n="2">
                                    <layer xml:id="layer-L130F1N1" n="1">
                                        <note xml:id="note-L131F1" dur="8" oct="2" pname="c" accid.ges="n"/>
                                        <note xml:id="note-L132F1" dur="4" oct="2" pname="d" accid.ges="f"/>
                                        <note xml:id="note-L134F1" dur="8" oct="2" pname="g" accid.ges="f"/>
                                    </layer>
                                </staff>
                                <tie xml:id="tie-L134F1-L136F1" startid="#note-L134F1" endid="#note-L136F1"/>
                            </measure>
                            <measure xml:id="measure-L135" n="22">
                                <staff xml:id="staff-L135F2N1" n="1">
                                    <layer xml:id="layer-L135F2N1" n="1">
                                        <chord xml:id="chord-L136F2" dur="8">
                                            <note xml:id="note-L136F2S1" oct="3" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L136F2S2" oct="3" pname="a" accid.ges="f"/>
                                            <note xml:id="note-L136F2S3" oct="4" pname="d" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L137F2" dur="8"/>
                                        <chord xml:id="chord-L138F2" dur="8">
                                            <note xml:id="note-L138F2S1" oct="3" pname="e" accid="n"/>
                                            <note xml:id="note-L138F2S2" oct="3" pname="g" accid="n"/>
                                            <note xml:id="note-L138F2S3" oct="4" pname="d" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L139F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L135F1N1" n="2">
                                    <layer xml:id="layer-L135F1N1" n="1">
                                        <note xml:id="note-L136F1" dur="8" oct="2" pname="g" accid.ges="f"/>
                                        <note xml:id="note-L137F1" dur="4" oct="2" pname="a" accid.ges="f"/>
                                        <note xml:id="note-L139F1" dur="8" oct="2" pname="a" accid="n"/>
                                    </layer>
                                </staff>
                                <hairpin xml:id="dir-L136F3" staff="1" tstamp="1.0" tstamp2="2.95" form="cres" vgrp="170"/>
                                <tie xml:id="tie-L139F1-L141F1" startid="#note-L139F1" endid="#note-L141F1"/>
                            </measure>
                            <measure xml:id="measure-L140" n="23">
                                <staff xml:id="staff-L140F2N1" n="1">
                                    <layer xml:id="layer-L140F2N1" n="1">
                                        <chord xml:id="chord-L141F2" dur="8">
                                            <note xml:id="note-L141F2S1" oct="3" pname="e" accid.ges="f"/>
                                            <note xml:id="note-L141F2S2" oct="3" pname="g" accid.ges="f"/>
                                            <note xml:id="note-L141F2S3" oct="4" pname="d" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L142F2" dur="8"/>
                                        <chord xml:id="chord-L143F2" dur="8">
                                            <note xml:id="note-L143F2S1" oct="3" pname="e" accid.ges="f"/>
                                            <note xml:id="note-L143F2S2" oct="3" pname="g" accid.ges="f"/>
                                            <note xml:id="note-L143F2S3" oct="4" pname="c" accid.ges="n"/>
                                        </chord>
                                        <rest xml:id="rest-L144F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L140F1N1" n="2">
                                    <layer xml:id="layer-L140F1N1" n="1">
                                        <note xml:id="note-L141F1" dur="8" oct="2" pname="a" accid.ges="n"/>
                                        <note xml:id="note-L142F1" dur="4" oct="2" pname="a">
                                            <accid xml:id="accid-L142F1" accid="f" func="caution"/>
                                        </note>
                                        <note xml:id="note-L144F1" dur="8" oct="1" pname="a" accid.ges="f"/>
                                    </layer>
                                </staff>
                                <hairpin xml:id="dir-L141F3" staff="1" tstamp="1.000000" tstamp2="2.95" form="dim" vgrp="170"/>
                                <tie xml:id="tie-L144F1-L147F1" startid="#note-L144F1" endid="#note-L147F1"/>
                            </measure>
                        </section>
                        <ending xml:id="D1" n="1">
                            <measure xml:id="measure-L145" n="24">
                                <staff xml:id="staff-L145F2N1" n="1">
                                    <layer xml:id="layer-L145F2N1" n="1">
                                        <beam xml:id="beam-L147F2-L153F2">
                                            <chord xml:id="chord-L147F2" dur="16">
                                                <note xml:id="note-L147F2S1" oct="3" pname="d" accid.ges="f"/>
                                                <note xml:id="note-L147F2S2" oct="3" pname="f" accid.ges="n"/>
                                                <note xml:id="note-L147F2S3" oct="4" pname="d" accid.ges="f"/>
                                            </chord>
                                            <rest xml:id="rest-L148F2" dur="16"/>
                                            <note xml:id="note-L149F2" dur="16" oct="3" pname="a" accid.ges="f"/>
                                            <rest xml:id="rest-L150F2" dur="16"/>
                                            <note xml:id="note-L151F2" dur="16" oct="3" pname="f" accid.ges="n"/>
                                            <rest xml:id="rest-L152F2" dur="16"/>
                                            <note xml:id="note-L153F2" dur="16" oct="3" pname="e" accid.ges="f"/>
                                        </beam>
                                        <rest xml:id="rest-L154F2" dur="16"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L145F1N1" n="2">
                                    <layer xml:id="layer-L145F1N1" n="1">
                                        <beam xml:id="beam-L147F1-L154F1">
                                            <note xml:id="note-L147F1" dur="16" oct="1" pname="a" accid.ges="f"/>
                                            <note xml:id="note-L148F1" dur="8" oct="2" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L150F1" dur="8" oct="2" pname="a" accid.ges="f"/>
                                            <note xml:id="note-L152F1" dur="8" oct="2" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L154F1" dur="16" oct="2" pname="e" accid.ges="f"/>
                                        </beam>
                                    </layer>
                                </staff>
                                <tie xml:id="tie-L154F1-L156F1" startid="#note-L154F1" endid="#note-L156F1"/>
                            </measure>
                            <measure xml:id="measure-L155" right="rptend" n="25">
                                <staff xml:id="staff-L155F2N1" n="1">
                                    <layer xml:id="layer-L155F2N1" n="1">
                                        <chord xml:id="chord-L156F2" dur="8">
                                            <note xml:id="note-L156F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L156F2S2" oct="3" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L156F2S3" oct="3" pname="a" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L157F2" dur="8"/>
                                        <chord xml:id="chord-L158F2" dur="8">
                                            <note xml:id="note-L158F2S1" oct="3" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L158F2S2" oct="3" pname="g" accid.ges="f"/>
                                            <note xml:id="note-L158F2S3" oct="3" pname="b" accid.ges="f"/>
                                        </chord>
                                        <rest xml:id="rest-L159F2" dur="8"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L155F1N1" n="2">
                                    <layer xml:id="layer-L155F1N1" n="1">
                                        <note xml:id="note-L156F1" dur="8" oct="2" pname="e" accid.ges="f"/>
                                        <note xml:id="note-L157F1" dur="4" oct="2" pname="d" accid.ges="f"/>
                                        <note xml:id="note-L159F1" dur="8" oct="1" pname="g" accid.ges="f"/>
                                    </layer>
                                </staff>
                                <slur xml:id="slur-L159F1-L162F1" staff="2" curvedir="below" startid="#note-L159F1" tstamp2="3.0"/>
                            </measure>
                        </ending>
                        <ending xml:id="D2" n="2">
                            <measure xml:id="measure-L160" n="26">
                                <staff xml:id="staff-L160F2N1" n="1">
                                    <layer xml:id="layer-L160F2N1" n="1">
                                        <beam xml:id="beam-L162F2-L168F2">
                                            <chord xml:id="chord-L162F2" dur="16">
                                                <note xml:id="note-L162F2S1" oct="3" pname="d" accid.ges="f"/>
                                                <note xml:id="note-L162F2S2" oct="3" pname="f" accid.ges="n"/>
                                                <note xml:id="note-L162F2S3" oct="4" pname="d" accid.ges="f"/>
                                            </chord>
                                            <rest xml:id="rest-L163F2" dur="16"/>
                                            <note xml:id="note-L164F2" dur="16" oct="3" pname="a" accid.ges="f"/>
                                            <rest xml:id="rest-L165F2" dur="16"/>
                                            <note xml:id="note-L166F2" dur="16" oct="3" pname="f" accid.ges="n"/>
                                            <rest xml:id="rest-L167F2" dur="16"/>
                                            <note xml:id="note-L168F2" dur="16" oct="3" pname="d" accid.ges="f"/>
                                        </beam>
                                        <rest xml:id="rest-L169F2" dur="16"/>
                                    </layer>
                                </staff>
                                <staff xml:id="staff-L160F1N1" n="2">
                                    <layer xml:id="layer-L160F1N1" n="1">
                                        <beam xml:id="beam-L162F1-L169F1">
                                            <note xml:id="note-L162F1" dur="16" oct="1" pname="a" accid.ges="f"/>
                                            <note xml:id="note-L163F1" dur="8" oct="2" pname="d" accid.ges="f"/>
                                            <note xml:id="note-L165F1" dur="8" oct="2" pname="a" accid.ges="f"/>
                                            <note xml:id="note-L167F1" dur="8" oct="2" pname="f" accid.ges="n"/>
                                            <note xml:id="note-L169F1" dur="16" oct="2" pname="d" accid.ges="f"/>
                                        </beam>
                                    </layer>
                                </staff>
                                <slur xml:id="slur-L160F1N1" staff="2" curvedir="below" tstamp="0.8" endid="#note-L162F1"/>
                            </measure>
                        </ending>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

@wergo
Copy link
Contributor

wergo commented Dec 4, 2019

The ability to have a tie/slur starting with a tstamp="0" and ending with a endid has disappeared somewhen since Feb 2019.
<slur xml:id="slur-L160F1N1" staff="2" curvedir="below" tstamp="0.8" endid="#note-L162F1"/>

The example from previous post now (6309d09) looks like this (the tie in the second ending / last measure is not rendered):
grafik

(The opposite startid and tstamp2 still works, as in end of ending 1.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants