humdrum-tools / verovio-humdrum-viewer

Verovio Humdrum Viewer
http://verovio.humdrum.org
38 stars 9 forks source link

Allow l.v. ties #712

Closed craigsapp closed 2 years ago

craigsapp commented 2 years ago

Allow laissez vibrer ties.

Something like:

**kern
=1
!LO:T:lv
[2e
2r
=
*-

The default endpoint will be the next note/rest (2r in this case). Later, add some duration control for having the tie end somewhere else.

Here is the current rendering, where the tie is highlighted in red to indicate a syntax error (tie is not closed):

Screen Shot 2022-05-04 at 4 01 41 AM

The l.v. parameter would suppress error coloring of incomplete ties.

craigsapp commented 2 years ago

Implemented with commit https://github.com/rism-digital/verovio/commit/639b98f89b3a39863496d2026a64971dccb8b26b

Example:

Screen Shot 2022-05-04 at 10 17 18 AM

The first tie is highlighted in red because it is invalid (tie should be closed on a note of the same pitch). The second tie is valid because it is marked as a l.v. tie.

**kern
=1
[2e
2r
=2
!LO:T:lv
[2e
2r
=
*-
Click to view MEI conversion of above example ```xml </titleStmt> <pubStmt /> </fileDesc> <encodingDesc> <appInfo> <application isodate="2022-05-04T10:20:16" version="3.10.0-dev-d0a8306-dirty"> <name>Verovio</name> <p>Transcoded from Humdrum</p> </application> </appInfo> </encodingDesc> <workList> <work> <title /> </work> </workList> </meiHead> <music> <body> <mdiv xml:id="mefgucn"> <score xml:id="sjtuk65"> <scoreDef xml:id="sqshm36"> <staffGrp xml:id="ss9pbzg"> <staffDef xml:id="sdk6huz" n="1" lines="5"> <clef xml:id="cwwij4m" shape="G" line="2" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <measure xml:id="measure-L1" n="1"> <staff xml:id="syzqh5d" n="1"> <layer xml:id="layer-L1F1N1" n="1"> <note xml:id="note-L3F1" dur="2" oct="4" pname="e" accid.ges="n" /> <rest xml:id="rest-L4F1" dur="2" /> </layer> </staff> <tie xml:id="tie-L3F1-L4F1" type="hanging" staff="1" startid="#note-L3F1" tstamp2="0m+3.0000" color="red" /> </measure> <measure xml:id="measure-L5" n="2"> <staff xml:id="staff-L5F1N1" n="1"> <layer xml:id="layer-L5F1N1" n="1"> <note xml:id="note-L7F1" dur="2" oct="4" pname="e" accid.ges="n" /> <rest xml:id="rest-L8F1" dur="2" /> </layer> </staff> <tie xml:id="tie-L7F1-L8F1" type="lv" staff="1" startid="#note-L7F1" tstamp2="0m+3.0000" /> </measure> </section> </score> </mdiv> </body> </music> </mei> ``` </details> </div> </div> <div class="page-bar-simple"> </div> <div class="footer"> <ul class="body"> <li>© <script> document.write(new Date().getFullYear()) </script> Githubissues.</li> <li>Githubissues is a development platform for aggregating issues.</li> </ul> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script> <script src="/githubissues/assets/js.js"></script> <script src="/githubissues/assets/markdown.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/highlight.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/languages/go.min.js"></script> <script> hljs.highlightAll(); </script> </body> </html>