HOME

TheInfoList



OR:

LilyPond is a computer program and
file format A file format is a standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free. Some file formats ...
for music engraving. One of LilyPond's major goals is to produce scores that are engraved with traditional layout rules, reflecting the era when scores were engraved by hand. LilyPond is cross-platform, and is available for several common operating systems; released under the terms of the GNU General Public License, LilyPond is free software and part of the GNU Project.


History

The LilyPond project was started in 1996 by Han-Wen Nienhuys and Jan Nieuwenhuizen, after they decided to abandon work on MPP ( MusiXTeX PreProcessor), a project they began collaborating on in 1995. Its name was inspired both by the Rosegarden project and an acquaintance of Nienhuys and Nieuwenhuizen named Suzanne, a name that means lily in Hebrew ().


Version 1.0

LilyPond 1.0 was released on July 31, 1998, highlighting the development of a custom music font, Feta, and the complete separation of LilyPond from MusiXTeX.


Version 2.0

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.


Design

LilyPond is mostly written in C++ and uses Scheme (interpreted by GNU Guile) as its extension language, allowing for user customization. It has a relatively large codebase; as of March 10, 2017, the source includes over 600,000 lines of C++, 140,000 lines of Scheme, and 120,000 lines of Python code. It uses a simple text notation for music input, which LilyPond interprets and processes in a series of stages. In the final stage, music notation is output to
PDF Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
(via
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
) or other graphical formats, such as SVG or PNG. LilyPond can also generate MIDI files that correspond to the music notation output. LilyPond is a text-based application, so it does not contain its own graphical user interface to assist with score creation. (However, a text-editor based "LilyPad" GUI for Windows and MacOS is included by default on these systems.) It does, however, have a flexible input language that strives to be simple, easing the learning curve for new users. LilyPond adheres to the WYSIWYM paradigm; the workflow for typesetting music notation with LilyPond is similar to that of preparing documents with LaTeX. LilyPond supports experimental
musical notation Music notation or musical notation is any system used to visually represent aurally perceived music played with instruments or sung by the human voice through the use of written, printed, or otherwise-produced symbols, including notation fo ...
. Its guitar facilities support alternative tunings, such as major-thirds tuning.


Software features

LilyPond's primary goal is to produce output comparable to professionally engraved scores instead of output that looks mechanical and computer-generated. An essay from the LilyPond website, written by LilyPond developers, explains some typographical issues addressed by LilyPond: * Optical font scaling: depending on the staff size, the design of the music font is slightly altered; this is a feature that Donald Knuth's Computer Modern font is known for. As a result, note heads become more rounded, and staff lines become thicker. * Optical spacing: stem directions are taken into account when spacing subsequent notes. * Special ledger line handling: ledger lines are shortened when accidentals are nearby, thus enhancing readability. * Proportional spacing: notes can be positioned in such a way that ''exactly'' reflects their duration. For example, with this setting, the space between consecutive quarter notes is four times greater than between consecutive sixteenth notes.


Overview of input syntax

The native input language for LilyPond is comprehensive, and consists of many commands needed for expressing any sort of articulation, dynamic, meter, etc. It is similar to that of TeX. The ability to embed Scheme code within a LilyPond source file permits arbitrary extensions to the input language and assists with algorithmic composition. Some general syntactic features are listed below. * Single-line
comments Comment may refer to: * Comment (linguistics) or rheme, that which is said about the topic (theme) of a sentence * Bernard Comment (born 1960), Swiss writer and publisher Computing * Comment (computer programming), explanatory text or informa ...
begin with a percent sign %. * Notes are represented in ''pitch-duration'' format: ''pitch'' is specified with Helmholtz pitch notation, and ''duration'' is specified with a numeral based system. The semantics of the ''pitch-duration'' format change depending on the active input mode; this is explained in depth in the LilyPond manual. For example, in absolute mode, a'4 is an A, one octave up from the base A (A3 in scientific pitch notation), of quarter note length. * Commands usually begin with a backslash (such as \time, or \slurUp). The function of the command in question determines where the command is placed; for example, if the command is used to indicate a fixed dynamic on a specific note, it is placed ''after'' the note. * Some common commands are represented symbolically to ease typing. One example is with slurs, where ( and ) indicate the beginning and ending of a slur, respectively. Another example is with manual
beaming BEAMing, which stands for beads, emulsion, amplification, magnetics, is a highly sensitive digital PCR method that combines emulsion PCR and flow cytometry to identify and quantify specific somatic mutations present in DNA. Process BEAMing begin ...
, where /code> and /code> indicate the extent of the beam. LilyPond's interface with Pango requires the input character encoding to be UTF-8. One benefit of this is that more than one language can be included in the same source file.


Example of LilyPond input file

\version "2.22.2" \include "english.ly" \header \paper \score


Corresponding output


More complex output

Lilypond can also create extensively customised output. An example is the short extract of a Karlheinz Stockhausen piano piece below.


Collaboration with other projects

Several graphical scorewriters—such as Rosegarden, NoteEdit, Canorus, Denemo, and TuxGuitar—can export files directly to LilyPond format. Other graphical applications serve as front ends to LilyPond, including Frescobaldi and the LilyPondTool plugin for jEdit. Denemo integrates the
PDF Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
output of LilyPond in its display, allowing some editing operations on the final typeset score. The
Mutopia Project The Mutopia Project is a volunteer-run effort to create a library of free content sheet music, in a way similar to Project Gutenberg's library of public domain books. It started in 2000.Portal page at thInternet ArchiveRetrieved January 24, 20 ...
, which distributes free content sheet music, uses LilyPond to typeset its music, as does Musipedia, a collaborative music encyclopedia.
Emacs Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
' org-mode contains support for embedding LilyPond scores into documents. OOoLilyPond, a LibreOffice extension provides support for calling LilyPond to embed scores into documents.


Integration into MediaWiki

Lilypond is available in MediaWiki via the code. This, for example, transforms the notation \relative c' into \relative c' The above excerpt is a simplified version of Solfeggio in C Minor by
C.P.E. Bach Carl Philipp Emanuel Bach (8 March 1714 – 14 December 1788), also formerly spelled Karl Philipp Emmanuel Bach, and commonly abbreviated C. P. E. Bach, was a German Classical period musician and composer, the fifth child and sec ...
. More complex scores, including lyrics, are also possible within MediaWiki wikis.


Integration into text using lilypond-book

Integration of lilypond musical elements into various document formats (both TeX-based systems such as LaTeX and Texinfo, and also DocBook and HTML pages) is natively supported through the companion program lilypond-book, developed and maintained by the LilyPond community. This allows users to embed musical elements within texts, such as musicology, song booklets, work sheets for teaching, and school examinations.


Integration into LaTeX

For integration into the LaTeX document preparation system, ''ly''LuaTeX has been developed as a LuaLaTeX package to embed musical elements within texts. It includes features for matching layout and appearance of the musical elements with the surrounding text document. Music elements may consist of music symbols, song lyrics, guitar chords diagrams, lead sheets, music excerpts, guitar tablatures, or multi-page scores.


Comparison to other scorewriters

Finale Finale may refer to: Pieces of music * Finale (music), the last movement of a piece * ''Finale'' (album), a 1977 album by Loggins and Messina * "Finale B", a 1996 song from the rock opera ''Rent'' * "Finale", a song by Anthrax from ''State of Eu ...
and Sibelius are two proprietary scorewriters often compared to LilyPond. Andrew Hawryluk, a LilyPond user, wrote a series of articles comparing output quality between Finale and LilyPond. Another scorewriter with comparable features to LilyPond is
SCORE Score or scorer may refer to: *Test score, the result of an exam or test Business * Score Digital, now part of Bauer Radio * Score Entertainment, a former American trading card design and manufacturing company * Score Media, a former Canadian m ...
, but SCORE relies on manual positioning more than Lilypond does. See also Comparison of scorewriters.


See also

* ABC notation *
Common Music Notation Common Music Notation (CMN) is open-source musical notation software. It is written in Common Lisp and runs on a variety of operating systems and Common Lisp implementations. CMN provides a package of functions to hierarchically describe a musi ...
* Denemo * Frescobaldi * GUIDO music notation * MuseScore * MusicXML * MusiXTeX * NoteEdit * Philip's Music Scribe * Rosegarden * SCORE (software) * List of music software * List of scorewriters


References


External links

* * {{Document markup languages 1996 software Cross-platform software Free music software Free software programmed in C++ Free typesetting software GNU Project software Music notation file formats Scorewriters Scorewriters for Linux