Main Page

From ZMOG test wiki (master branch)

This is a MediaWiki instance running 1.39 LTS, mainly for testing the Score extension and anything else I might be working on. Using the excellent skin from the Star Citizen wiki.

Score Extension

See also: for more SVG music output testing, see testing pages: score examples, Tim paste.

Using a patched version of the Score extension to render music as SVG; see T49578 and the patch mirrored on GitLab. LilyPond version 2.23.82 (a release candidate for the 2.24 release, scheduled for December 2022) includes libcairo support for producing SVG and PNG directly, rather than via PS, GhostScript, and ImageMagick.

Note
To yoink Lilypond snippets from Wikipedia articles, see Special:PagesWithProp and search for the "score" property in Article space.

Here's a Wagner excerpt for contrabass trombone, from Wikipedia.

First, the score block looks like this:

 <score lang="lilypond">
 \layout { ragged-right = ##t \context { \Score \omit BarNumber } }
 \relative g {
    \override DynamicTextSpanner.style = #'none
    \override Hairpin.minimum-length = #5
    \clef bass \key c \major
    g2~ \ff g8 f8 e8. d16
    c4 b a g  f e d c4 \break
    b a g f  e1~ \dim\!  << e1~ { s2 s4 s4 \> } >>  e4 \! \p r4 r2
 }
 </score>

Which normally generates a PNG image:

Standard PNG output, using PostScript from Lilypond 2.22 --ps rendered by GhostScript

The patch produces good SVG output:


\layout { ragged-right = ##t \context { \Score \omit BarNumber } }
\relative g {
    \override DynamicTextSpanner.style = #'none
    \override Hairpin.minimum-length = #5
    \clef bass \key c \major
    g2~ \ff g8 f8 e8. d16
    c4 b a g  f e d c4 \break
    b a g f  e1~ \dim\!  << e1~ { s2 s4 s4 \> } >>  e4 \! \p r4 r2
}

With a PNG fall-back generated using Lilypond's built-in libcairo support. As you can see, it almost identical; I think it is slightly clearer and more fine-grained than the GhostScript output:

New PNG output, directly using Lilypond 2.24 directly with --png and libcairo

Cropping is done with the new LilyPond -dno-use-paper-size-for-page option (docs), which precludes having to do it the old way with an extra ImageMagick convert shell command, and achieves the same result.