rism-digital / verovio

🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)
https://www.verovio.org
GNU Lesser General Public License v3.0
687 stars 185 forks source link

trill line extensions? #806

Closed craigsapp closed 6 years ago

craigsapp commented 6 years ago

Are trill line extensions implemented in verovio?

At least they are not converted from MusicXML files. Example from Finale:

screen shot 2018-03-27 at 6 19 11 pm

(MuseScore does not export trill line extensions)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="3.0">
  <identification>
    <encoding>
      <software>Finale v25 for Mac</software>
      <encoding-date>2018-03-27</encoding-date>
      <supports attribute="new-system" element="print" type="yes" value="yes"/>
      <supports attribute="new-page" element="print" type="yes" value="yes"/>
      <supports element="accidental" type="yes"/>
      <supports element="beam" type="yes"/>
      <supports element="stem" type="yes"/>
    </encoding>
  </identification>
  <defaults>
    <scaling>
      <millimeters>7.2319</millimeters>
      <tenths>40</tenths>
    </scaling>
    <page-layout>
      <page-height>1545</page-height>
      <page-width>1194</page-width>
      <page-margins type="both">
        <left-margin>70</left-margin>
        <right-margin>70</right-margin>
        <top-margin>88</top-margin>
        <bottom-margin>88</bottom-margin>
      </page-margins>
    </page-layout>
    <system-layout>
      <system-margins>
        <left-margin>0</left-margin>
        <right-margin>0</right-margin>
      </system-margins>
      <system-distance>121</system-distance>
      <top-system-distance>70</top-system-distance>
    </system-layout>
    <appearance>
      <line-width type="stem">0.7487</line-width>
      <line-width type="beam">5</line-width>
      <line-width type="staff">0.7487</line-width>
      <line-width type="light barline">0.7487</line-width>
      <line-width type="heavy barline">5</line-width>
      <line-width type="leger">0.7487</line-width>
      <line-width type="ending">0.7487</line-width>
      <line-width type="wedge">0.7487</line-width>
      <line-width type="enclosure">0.7487</line-width>
      <line-width type="tuplet bracket">0.7487</line-width>
      <note-size type="grace">60</note-size>
      <note-size type="cue">60</note-size>
      <distance type="hyphen">120</distance>
      <distance type="beam">8</distance>
    </appearance>
    <music-font font-family="Maestro,engraved" font-size="20.5"/>
    <word-font font-family="Times New Roman" font-size="10.25"/>
  </defaults>
  <credit page="1">
    <credit-words default-x="70" default-y="1453" font-size="12" valign="top">Score</credit-words>
  </credit>
  <part-list>
    <score-part id="P1">
      <part-name print-object="no">MusicXML Part</part-name>
      <score-instrument id="P1-I1">
        <instrument-name>SmartMusic SoftSynth 1</instrument-name>
      </score-instrument>
      <midi-instrument id="P1-I1">
        <midi-channel>1</midi-channel>
        <midi-bank>15489</midi-bank>
        <midi-program>1</midi-program>
        <volume>80</volume>
        <pan>0</pan>
      </midi-instrument>
    </score-part>
  </part-list>
  <!--=========================================================-->
  <part id="P1">
    <measure number="1" width="184">
      <print>
        <system-layout>
          <system-margins>
            <left-margin>70</left-margin>
            <right-margin>0</right-margin>
          </system-margins>
          <top-system-distance>211</top-system-distance>
        </system-layout>
        <measure-numbering>system</measure-numbering>
      </print>
      <attributes>
        <divisions>2</divisions>
        <key>
          <fifths>0</fifths>
          <mode>major</mode>
        </key>
        <time>
          <beats>4</beats>
          <beat-type>4</beat-type>
        </time>
        <clef>
          <sign>G</sign>
          <line>2</line>
        </clef>
      </attributes>
      <sound tempo="120"/>
      <note default-x="83">
        <pitch>
          <step>F</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <ornaments>
            <trill-mark default-y="12"/>
            <wavy-line default-y="12" number="1" type="start"/>
            <wavy-line default-y="13" number="1" relative-x="99" type="stop"/>
          </ornaments>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="2" width="114">
      <note default-x="14">
        <pitch>
          <step>F</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <ornaments>
            <trill-mark default-y="13"/>
            <wavy-line default-y="13" number="1" type="start"/>
            <wavy-line number="1" relative-x="99" type="stop"/>
          </ornaments>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="3" width="114">
      <note default-x="14">
        <pitch>
          <step>F</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <ornaments>
            <trill-mark default-y="15"/>
            <wavy-line default-y="15" number="1" type="start"/>
            <wavy-line number="1" relative-x="99" type="stop"/>
          </ornaments>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="4" width="114">
      <note default-x="13">
        <pitch>
          <step>F</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <ornaments>
            <trill-mark default-y="15"/>
            <wavy-line default-y="15" number="1" type="start"/>
            <wavy-line number="1" relative-x="99" type="stop"/>
          </ornaments>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="5" width="114">
      <note default-x="13">
        <pitch>
          <step>G</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <tie type="start"/>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <tied type="start"/>
          <ornaments>
            <trill-mark default-y="11"/>
            <wavy-line default-y="11" number="1" type="start"/>
          </ornaments>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="6" width="114">
      <note default-x="13">
        <pitch>
          <step>G</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <tie type="stop"/>
        <tie type="start"/>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <tied type="stop"/>
          <tied type="start"/>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="7" width="114">
      <note default-x="13">
        <pitch>
          <step>G</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <tie type="stop"/>
        <tie type="start"/>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <tied type="stop"/>
          <tied type="start"/>
        </notations>
      </note>
    </measure>
    <!--=======================================================-->
    <measure number="8" width="114">
      <note default-x="13">
        <pitch>
          <step>G</step>
          <octave>4</octave>
        </pitch>
        <duration>8</duration>
        <tie type="stop"/>
        <voice>1</voice>
        <type>whole</type>
        <notations>
          <tied type="stop"/>
          <ornaments>
            <wavy-line number="1" relative-x="74" type="stop"/>
          </ornaments>
        </notations>
      </note>
      <barline location="right">
        <bar-style>light-heavy</bar-style>
      </barline>
    </measure>
  </part>
  <!--=========================================================-->
</score-partwise>
craigsapp commented 6 years ago

Yes: here is an example from https://github.com/humdrum-tools/verovio-humdrum-viewer/issues/76

screen shot 2018-03-27 at 6 28 38 pm
<?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="2018-03-27T09:29:44" version="2.0.0-dev-314ae07">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
        </encodingDesc>
        <workDesc>
            <work>
                <titleStmt>
                    <title />
                </titleStmt>
            </work>
        </workDesc>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000001859772891">
                <score xml:id="score-0000000974853136">
                    <scoreDef xml:id="scoredef-0000001100714318" midi.bpm="400">
                        <staffGrp xml:id="staffgrp-0000000823682848" symbol="brace" barthru="true">
                            <staffDef xml:id="staffdef-0000001568746957" clef.shape="G" clef.line="2" n="1" lines="5">
                                <label xml:id="label-0000001126237174" />
                            </staffDef>
                            <staffDef xml:id="staffdef-0000001755217073" clef.shape="G" clef.line="2" n="2" lines="5" />
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-0000001128157813">
                        <measure xml:id="measure-L1" n="0">
                            <staff xml:id="staff-0000000801880538" n="1">
                                <layer xml:id="layer-L1F2N1" n="1">
                                    <note xml:id="note-L2F2" dur="2" oct="5" pname="c" accid.ges="n" />
                                    <note xml:id="note-L3F2" dur="2" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-0000001685882099" n="2">
                                <layer xml:id="layer-L1F1N1" n="1">
                                    <note xml:id="note-L2F1" dur="2" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L3F1" dur="2" oct="4" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <trill xml:id="trill-L2F2" staff="1" startid="#note-L2F2" endid="#note-L6F2" />
                            <trill xml:id="trill-L2F1" staff="2" tstamp="1" tstamp2="1m+4" />
                        </measure>
                        <measure xml:id="measure-L4" right="end">
                            <staff xml:id="staff-L4F2N1" n="1">
                                <layer xml:id="layer-L4F2N1" n="1">
                                    <note xml:id="note-L5F2" dur="2" oct="5" pname="c" accid.ges="n" />
                                    <note xml:id="note-L6F2" dur="2" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-L4F1N1" n="2">
                                <layer xml:id="layer-L4F1N1" n="1">
                                    <note xml:id="note-L5F1" dur="2" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L6F1" dur="2" oct="4" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>