LilyPond

[10] LilyPond 2.0 was released on September 24, 2003, announcing a simplified syntax model and a much more complete set of facilities for notating various styles of music.

[11] LilyPond is mostly written in C++ and uses Scheme (interpreted by GNU Guile) as its extension language, allowing for user customization.

[13] It uses a simple text notation for music input, which LilyPond interprets and processes in a series of stages.

[14] In the final stage, music notation is output to PDF (via PostScript) or other graphical formats, such as SVG or PNG.

The ability to embed Scheme code within a LilyPond source file permits arbitrary extensions to the input language and assists with algorithmic composition.

Other graphical applications serve as front ends to LilyPond, including Frescobaldi and the LilyPondTool plugin for jEdit.

Denemo integrates the PDF output of LilyPond in its display, allowing some editing operations on the final typeset score.

[26] This allows users to embed musical elements within texts, such as musicology, song booklets, work sheets for teaching, and school examinations.

For integration into the LaTeX document preparation system, lyLuaTeX has been developed as a LuaLaTeX package to embed musical elements within texts.

Screenshot of LilyPond running on Linux
Beethoven 's Symphony No. 5 music sheet printed from a digitally engraved PDF file produced by LilyPond; released by the Mutopia Project
First measures of Adeste Fideles , generated by LilyPond.