-
Here is some sample music: Click to view MEI data for above example<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/dev/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/dev/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0.0-dev">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt />
</fileDesc>
<encodingDesc>
<appInfo>
<application isodate="2022-10-04T16:55:09" version="3.11.0-dev-a5b9b01-dirty">
<name>Verovio</name>
<p>Transcoded from Humdrum</p>
</application>
</appInfo>
</encodingDesc>
<workList>
<work>
<title />
</work>
</workList>
</meiHead>
<music>
<body>
<mdiv xml:id="mz1c4a1">
<score xml:id="s1us91oz">
<scoreDef xml:id="s6syghj">
<staffGrp xml:id="s1189ijp">
<staffDef xml:id="staffdef-L2F1" n="1" lines="5">
<clef xml:id="c2ir7lc" shape="G" line="2" />
</staffDef>
</staffGrp>
</scoreDef>
<section xml:id="section-L2F1">
<measure xml:id="measure-L1" n="1">
<staff xml:id="staff-L2F1" n="1">
<layer xml:id="layer-L1F1N1" n="1">
<note xml:id="note-L4F1" dur="1" oct="4" pname="c" accid.ges="n" />
</layer>
</staff>
<tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<rend xml:id="r19c44uo" fontname="VerovioText"></rend> = 152</tempo>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei> Here is the <tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<rend xml:id="r19c44uo" fontname="VerovioText"></rend> = 152</tempo> where the unprintable character is the bytes ee 87 95. The above MEI data generates an SVG with no errors when using verovio from a few months ago (see graphical example above). When running this MEI data through the most recent develop version of verovio, I get this warning and error:
Here is the stack at the point of the segmentation fault:
Converting the same Humdrum data: !!!OMD: [quarter]=152
**kern
=1-
1c
=
*- with the latest develop version of verovio produces the following slightly different MEI data: Click to view newer MEI conversion<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/dev/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/dev/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0.0-dev">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt />
</fileDesc>
<encodingDesc>
<appInfo>
<application isodate="2022-10-04T16:53:43" version="3.13.0-dev-d45c286">
<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="0" token="!!!OMD: [quarter]=152" xml:id="L1">
<frameInfo>
<startTime float="0" />
<frameType>reference</frameType>
<referenceKey>OMD</referenceKey>
<referenceValue>[quarter]=152</referenceValue>
</frameInfo>
</metaFrame>
</frames>
</extMeta>
</meiHead>
<music>
<body>
<mdiv xml:id="marrfqb">
<score xml:id="sgv0ak6">
<scoreDef xml:id="sl5qw06" midi.bpm="400.000000">
<staffGrp xml:id="sn5w02e">
<staffDef xml:id="staffdef-L2F1" n="1" lines="5">
<clef xml:id="cdeby5d" shape="G" line="2" />
</staffDef>
</staffGrp>
</scoreDef>
<section xml:id="section-L2F1">
<measure xml:id="measure-L1" n="1">
<staff xml:id="staff-L2F1" n="1">
<layer xml:id="layer-L1F1N1" n="1">
<note xml:id="note-L4F1" dur="1" oct="4" pname="c" accid.ges="n" />
</layer>
</staff>
<tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<rend xml:id="rmo6bdu" fontfam="smufl"></rend> = 152</tempo>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei> Where the <tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<rend xml:id="rmo6bdu" fontfam="smufl"></rend> = 152</tempo> This unprintable character are the bytes: ee 87 95 The warning message about
with no SVG image produced. So there are two questions/comments: (1) Is there a better way or more correct way of encoding quarter note equals 152 compared to the current encoding: <tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<rend xml:id="rmo6bdu" fontfam="smufl"></rend> = 152</tempo> I presume the unprintable bytes for the quarter note (ee 87 95) are UTF-8. Perhaps that is being converted incorrectly (to a new UTF-32 system)? Or is there a more human-readable way of encoding the quarter note? And (2) in any case, the data should not crash verovio. The function that crashes seems to be |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
You can use entities for encoding the quarter note. <tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<rend fontfam="smufl"></rend> = 152</tempo> If you are outputting MEI from Verovio, you need to set the The other possibility (version pushed now) is to use <tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<symbol glyph.num="U+ECA5" glyph.auth="smufl"/> = 152</tempo> but you can also use the SMuFL name with <tempo xml:id="tempo-L1F1" staff="1" tstamp="1.000000">
<symbol glyph.name="metNoteQuarterUp" glyph.auth="smufl"/> = 152</tempo> For question (2) I fixed it and it should not be crashing any more. You should now see a warning saying that the CSS font cannot be found. I suspect you are pointing to a resource directory that is not up-do-date with the Verovio version. Make sure it is. |
Beta Was this translation helpful? Give feedback.
-
The new suppressing of segmentation faults related to unknown fonts is working: Old text encoding:
New text encoding:
This is on the command-line. Does the Leipzig font need to be installed for the OS (from verovio/fonts/Leipzig/Leipzig.ttf), or is it supposed to be from the After installing Leipzig.ttf as an OS font, there is still a complaint about not finding the CSS font Without installing Leipzig in the OS, the Leipzig character is a box: Is there a new way to install fonts other than |
Beta Was this translation helpful? Give feedback.
-
I notice that <rend fontfam="smufl"></rend> Instead of <symbol glyph.name="metNoteQuarterUp" glyph.auth="smufl"/> |
Beta Was this translation helpful? Give feedback.
-
Thanks! That fix worked. After using it, the css fonts are installed in Now the SVG image renders properly when the Leipzig font is not installed in the OS: And of course the Warning about the missing font is no longer printed:
|
Beta Was this translation helpful? Give feedback.
Thanks! That fix worked. After using it, the css fonts are installed in
/usr/local/share/verovio/*.css
and the SVG image has the font embedded at the end of the file:Now the SVG image renders properly when the Leipzig font is not installed in the OS:
And of course the Warning about the missing font is no longer printed: