humdrum-tools / verovio-humdrum-viewer

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

Lyrics above staff #292

Open jacekiwaszko1 opened 4 years ago

jacekiwaszko1 commented 4 years ago

When vocal part splits in two, lyrics for upper voice are often placed above the staff:

text-above1

I think encoding of the fragment above should look more or less like that:

**kern  **text
*clefF4 *
=-  =-
*^  *^
*   *   *   *ij
2E. 2.ryy   .   ja
*   *   *   *Xij
*   *   *   *ij
*   *   *above  *
4c  8G  Al- Al-
.   8G  .   -le
=   =   =   =
[1c 4A  -le-    -lu-
.   4G  .   -ja
*   *   *   *Xji
.   4r  .   .
*   *   *   *ji
.   8G  .   Al-
.   8G  .   -le-
*   *   *v  *v
*v  *v  *
=   =
*-  *-

**text spine is splitted in two, first subspine of lyrics matches first **kern subspine. Is that right way to encode this?


Unfortunately I can't figure out how to encode lyrics above the staves in MEI - I found in MEI documentation, that verse@place should be responsible for positioning of lyrics, but it is not working in Verovio...

Current rendering:

lyrics-above2

Current MEI conversion:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://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="2020-04-01T10:20:29" version="2.7.0-dev-073d533">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
        </encodingDesc>
        <workList>
            <work>
                <title />
            </work>
        </workList>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000001499063757">
                <score xml:id="score-0000001576034755">
                    <scoreDef xml:id="scoredef-0000001206340080">
                        <staffGrp xml:id="staffgrp-0000001810376407">
                            <staffDef xml:id="staffdef-0000000049234790" n="1" lines="5">
                                <clef xml:id="clef-L2F1" shape="F" line="4" />
                            </staffDef>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-L1F1">
                        <measure xml:id="measure-L1">
                            <staff xml:id="staff-0000000410283405" n="1">
                                <layer xml:id="layer-L1F1N1" n="1">
                                    <note xml:id="note-L6F1" dots="1" dur="2" oct="3" pname="e" stem.len="6.500000" accid.ges="n">
                                        <verse xml:id="verse-L6F4" n="2">
                                            <syl xml:id="syl-L6F4">ja</syl>
                                        </verse>
                                    </note>
                                    <note xml:id="note-L10F1" dur="4" oct="4" pname="c" stem.len="5.500000" accid.ges="n">
                                        <verse xml:id="verse-L10F3" n="1">
                                            <syl xml:id="syl-L10F3" con="d" wordpos="i">Al</syl>
                                        </verse>
                                        <verse xml:id="verse-L10F4" n="2">
                                            <syl xml:id="syl-L10F4" con="d" wordpos="i">Al</syl>
                                        </verse>
                                    </note>
                                </layer>
                                <layer xml:id="layer-L5F2N2" n="2">
                                    <space xml:id="space-L6F2" dots="1" dur="2" />
                                    <note xml:id="note-L10F2" dur="8" oct="3" pname="g" accid.ges="n" />
                                    <note xml:id="note-L11F2" dur="8" oct="3" pname="g" accid.ges="n">
                                        <verse xml:id="verse-L11F4" n="2">
                                            <syl xml:id="syl-L11F4" wordpos="t">le</syl>
                                        </verse>
                                    </note>
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-L12">
                            <staff xml:id="staff-L12F1N1" n="1">
                                <layer xml:id="layer-L12F1N1" n="1">
                                    <note xml:id="note-L13F1" dur="1" oct="4" pname="c" accid.ges="n">
                                        <verse xml:id="verse-L13F3" n="1">
                                            <syl xml:id="syl-L13F3" con="d" wordpos="m">le</syl>
                                        </verse>
                                        <verse xml:id="verse-L13F4" n="2">
                                            <syl xml:id="syl-L13F4" con="d" wordpos="m">lu</syl>
                                        </verse>
                                    </note>
                                </layer>
                                <layer xml:id="layer-L12F2N2" n="2">
                                    <note xml:id="note-L13F2" dur="4" oct="3" pname="a" accid.ges="n" />
                                    <note xml:id="note-L14F2" dur="4" oct="3" pname="g" accid.ges="n">
                                        <verse xml:id="verse-L14F4" n="2">
                                            <syl xml:id="syl-L14F4" wordpos="t">ja</syl>
                                        </verse>
                                    </note>
                                    <rest xml:id="rest-L16F2" dur="4" />
                                    <note xml:id="note-L18F2" dur="8" oct="3" pname="g" accid.ges="n">
                                        <verse xml:id="verse-L18F4" n="2">
                                            <syl xml:id="syl-L18F4" con="d" wordpos="i">Al</syl>
                                        </verse>
                                    </note>
                                    <note xml:id="note-L19F2" dur="8" oct="3" pname="g" accid.ges="n">
                                        <verse xml:id="verse-L19F4" n="2">
                                            <syl xml:id="syl-L19F4" con="d" wordpos="m">le</syl>
                                        </verse>
                                    </note>
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>
craigsapp commented 4 years ago

**text spine is splitted in two, first subspine of lyrics matches first **kern subspine. Is that right way to encode this?

Yes, that looks like a good way of doing it.

Unfortunately I can't figure out how to encode lyrics above the staves in MEI - I found in MEI documentation, that verse@place should be responsible for positioning of lyrics, but it is not working in Verovio...

Not yet available in verovio. See issue https://github.com/rism-ch/verovio/issues/1348 and somewhat like issue https://github.com/rism-ch/verovio/issues/1329

jacekiwaszko1 commented 4 years ago

OK, thank you for answer! We will encode it like that and wait patiently for rendering in Verovio :)