davidrizo / im3

IM3 library (still unstable)
2 stars 0 forks source link

Stem direction on semi-breve question #3

Closed craigsapp closed 6 years ago

craigsapp commented 6 years ago

On line 20 of the following score, the semi-breve note has a stem up designation:

sc/
screen shot 2018-05-05 at 1 21 14 am

https://github.com/davidrizo/im3/blob/develop/imcore/src/test/resources/testdata/core/score/io/kern/apel/pag101_fig1.krn

instead it should probably be encoded as:

sc

since semi-breves do not have stems.

Currently verovio is adding a stem to semi-breves if there is a stem direction attribute (It should not do that).

screen shot 2018-05-05 at 1 27 42 am

There could be cases where an implied stem direction is useful, so in theory it should be OK to add a stem direction on the semi-breve, and it will not be shown. In verovio, whole notes can have stem direction attributes, but they are ignored:

<?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-05-05T01:29:31" version="2.0.0-dev-1c60b86">
                    <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-0000001079271105">
                <score xml:id="score-0000002012876590">
                    <scoreDef xml:id="scoredef-0000001898428204" midi.bpm="400">
                        <staffGrp xml:id="staffgrp-0000001964261699">
                            <staffDef xml:id="staffdef-0000000847200846" clef.shape="G" clef.line="2" n="1" lines="5">
                                <label xml:id="label-0000001874949818" />
                            </staffDef>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-0000001638877124">
                        <measure xml:id="measure-L2" right="end" n="1">
                            <staff xml:id="staff-L2F1N1" n="1">
                                <layer xml:id="layer-L2F1N1" n="1">
                                    <note xml:id="note-L3F1" dur="1" oct="4" pname="c" stem.dir="up" accid.ges="n" />
                                    <note xml:id="note-L4F1" dur="1" oct="4" pname="d" stem.dir="down" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

Rendering:

screen shot 2018-05-05 at 1 30 04 am
craigsapp commented 6 years ago

Added issue: https://github.com/rism-ch/verovio/issues/839

davidrizo commented 6 years ago

It was just a mistake. The stem was encoded both in MEI and **kern and I've removed them.

craigsapp commented 6 years ago

The stem was encoded both in MEI and **kern and I've removed them.

Do you have a converter from Humdrum to MEI, or are they both hand coded?

I have just implemented a **mens to MEI converter in verovio/VHV:

screen shot 2018-05-05 at 2 25 37 am

I will see about doing the ligature soon, and also work on the mensuration conversion.

If you press alt-m in VHV, you can see the MEI conversion:

<?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>Willi Apel, pg. 101</title>
            </titleStmt>
            <pubStmt />
        </fileDesc>
        <encodingDesc>
            <appInfo>
                <application isodate="2018-05-05T02:28:03" version="2.0.0-dev-686bba6-dirty">
                    <name>Verovio</name>
                    <p>Transcoded from Humdrum</p>
                </application>
            </appInfo>
        </encodingDesc>
        <workDesc>
            <work>
                <titleStmt>
                    <title xml:id="title-L1" analog="humdrum:OTL" type="main">Willi Apel, pg. 101</title>
                </titleStmt>
            </work>
        </workDesc>
        <extMeta>
            <frames xmlns:humxml="http://www.humdrum.org/ns/humxml">
                <metaFrame n="0" token="!!!OTL: Willi Apel, pg. 101" xml:id="loc0">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey>OTL</referenceKey>
                        <referenceValue>Willi Apel, pg. 101</referenceValue>
                    </frameInfo>
                </metaFrame>
            </frames>
        </extMeta>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000001951431712">
                <score xml:id="score-0000000278976127">
                    <scoreDef xml:id="scoredef-0000000574446273" midi.bpm="400">
                        <staffGrp xml:id="staffgrp-0000000999349342">
                            <staffDef xml:id="staffdef-0000001717164787" clef.shape="C" clef.line="3" key.sig="0" meter.count="4" meter.unit="4" meter.sym="common" n="1" notationtype="mensural" lines="5">
                                <label xml:id="label-0000000185750287" />
                            </staffDef>
                        </staffGrp>
                        <pgHead xml:id="pghead-0000000535798824">
                            <rend xml:id="rend-0000001485264198" halign="center" valign="middle">
                                <rend xml:id="rend-0000000755064851" fontsize="x-large">Willi Apel, pg. 101</rend>
                                <lb xml:id="lb-0000001958018790" /> 
<lb xml:id="lb-0000000217492419" /> </rend>
                        </pgHead>
                    </scoreDef>
                    <section xml:id="section-0000002043103979">
                        <measure xml:id="measure-L2" right="invis" n="0">
                            <staff xml:id="staff-0000000663947940" n="1">
                                <layer xml:id="layer-L2F1N1" n="1">
                                    <note xml:id="note-L9F1" dots="1" dur="brevis" oct="4" pname="f" accid.ges="n" />
                                    <dot xml:id="dot-0000001985559901" />
                                    <note xml:id="note-L10F1" dots="1" dur="semibrevis" oct="4" pname="e" accid.ges="n" />
                                    <dot xml:id="dot-0000000661804389" />
                                    <note xml:id="note-L11F1" dur="semibrevis" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L12F1" dur="semiminima" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L13F1" dur="minima" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L14F1" dur="semiminima" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L15F1" dur="semiminima" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L16F1" dur="minima" oct="4" pname="f" accid.ges="n" />
                                    <note xml:id="note-L17F1" dur="semiminima" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L18F1" dur="semiminima" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L19F1" dur="semiminima" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L20F1" dur="minima" oct="3" pname="b" accid.ges="n" />
                                    <note xml:id="note-L21F1" dur="semibrevis" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L22F1" dur="minima" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L23F1" dur="brevis" oct="4" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

Command-line conversion using verovio (not in repository yet, though):

verovio -atmei file.mens

This will create file.mei with the above contents.

craigsapp commented 6 years ago

Initial commit of **mens to MEI converter: https://github.com/rism-ch/verovio/commit/36f3df373affdb4968b0e5041c021c6c8a0a4c61

davidrizo commented 6 years ago

Hi, I’ll review this mail better in a while, I’m outside home. Just answer that the **kern to MEI conversion is automatic

David

El 5 may 2018, a las 11:29, Craig Stuart Sapp notifications@github.com escribió:

The stem was encoded both in MEI and **kern and I've removed them.

Do you have a converter from Humdrum to MEI, or are they both hand coded?

I have just implemented a **mens to MEI converter in verovio/VHV:

I will see about doing the ligature soon, and also work on the mensuration conversion.

If you press alt-m in VHV, you can see the MEI conversion:

<?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"?>

Willi Apel, pg. 101 Verovio

Transcoded from Humdrum

Willi Apel, pg. 101 reference OTL Willi Apel, pg. 101
Willi Apel, pg. 101
Command-line conversion using verovio (not in repository yet, though): verovio -atmei file.mens This will create file.mei with the above contents. — You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or mute the thread.
craigsapp commented 6 years ago

Just answer that the **kern to MEI conversion is automatic

OK, that is what I thought. So it is not surprising that both the Humdrum and MEI data had the same stem-up encoding 😄