LilyPond
   HOME

TheInfoList



OR:

LilyPond is a
computer program A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer program ...
and file format for
music engraving Music engraving is the art of drawing music notation at high quality for the purpose of mechanical reproduction. The term ''music copying'' is almost equivalent—though ''music engraving'' implies a higher degree of skill and quality, usually ...
. 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 In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
, and is available for several common
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s; released under the terms of the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
, LilyPond is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
and part of the
GNU Project The GNU Project () is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaborat ...
.


History

The LilyPond project was started in 1996 by Han-Wen Nienhuys and Jan Nieuwenhuizen, after they decided to abandon work on MPP (
MusiXTeX MusiXTeX is a suite of open source music engraving macros and fonts that allow music typesetting in TeX, released under the GPL-2.0-or-later license. History Macros for typesetting music in TeX first appeared in 1987 (MuTeX) and were limited t ...
PreProcessor), a project they began collaborating on in 1995. Its name was inspired both by the
Rosegarden Rosegarden is a free software digital audio workstation program developed for Linux with ALSA and Qt4. It acts as an audio and MIDI sequencer, scorewriter and musical composition and editing tool. It is intended to be a free alternative to su ...
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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and uses Scheme (interpreted by
GNU Guile GNU Ubiquitous Intelligent Language for Extensions (GNU Guile) is the preferred extension language system for the GNU Project and features an implementation of the programming language Scheme. Its first version was released in 1993. In addition ...
) 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 (via PostScript) or other graphical formats, such as SVG or PNG. LilyPond can also generate
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
files that correspond to the music notation output. LilyPond is a text-based application, so it does not contain its own
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
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 A learning curve is a graphical representation of the relationship between how proficient people are at a task and the amount of experience they have. Proficiency (measured on the vertical axis) usually increases with increased experience (the ...
for new users. LilyPond adheres to the
WYSIWYM In computing, What You See Is What You Mean (WYSIWYM, ) is a paradigm for editing a structured document. It is an adjunct to the better-known WYSIWYG (What You See Is What You Get) paradigm, which displays the result of a formatted document as ...
paradigm; the workflow for typesetting music notation with LilyPond is similar to that of preparing documents with
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
. LilyPond supports experimental musical notation. Its guitar facilities support
alternative tunings Guitar tunings are the assignment of pitches to the open strings of guitars, including acoustic guitars, electric guitars, and classical guitars. Tunings are described by the particular pitches that are made by notes in Western music. B ...
, such as
major-thirds tuning Among alternative tunings for guitar, a major-thirds tuning is a regular tuning in which each interval between successive open strings is a major third ("M3" in musical abbreviation). Other names for major-thirds tuning include major-third tun ...
.


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 Computer Modern is the original family of typefaces used by the typesetting program TeX. It was created by Donald Knuth with his Metafont program, and was most recently updated in 1992. Computer Modern, or variants of it, remains very widely u ...
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 note A quarter note (American) or crotchet ( ) (British) is a musical note played for one quarter of the duration of a whole note (or semibreve). Quarter notes are notated with a filled-in oval note head and a straight, flagless stem. The stem ...
s is four times greater than between consecutive
sixteenth note Figure 1. A 16th note with stem facing up, a 16th note with stem facing down, and a 16th rest. Figure 2. Four 16th notes beamed together. In music, a 1/16, sixteenth note (American) or semiquaver ( British) is a note played for half the du ...
s.


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 Tex may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr. Entertainment * ''Tex'', the Italian ...
. The ability to embed Scheme code within a LilyPond source file permits arbitrary extensions to the input language and assists with
algorithmic composition Algorithmic composition is the technique of using algorithms to create music. Algorithms (or, at the very least, formal sets of rules) have been used to compose music for centuries; the procedures used to plot voice-leading in Western counterpo ...
. Some general syntactic features are listed below. * Single-line comments begin with a percent sign %. *
Note Note, notes, or NOTE may refer to: Music and entertainment * Musical note, a pitched sound (or a symbol for a sound) in music * ''Notes'' (album), a 1987 album by Paul Bley and Paul Motian * ''Notes'', a common (yet unofficial) shortened version ...
s are represented in ''pitch-duration'' format: ''pitch'' is specified with
Helmholtz pitch notation Helmholtz pitch notation is a system for naming musical notes of the Western chromatic scale. Fully described and normalized by the German scientist Hermann von Helmholtz, it uses a combination of upper and lower case letters (A to G), and the s ...
, 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 Scientific pitch notation (SPN), also known as American standard pitch notation (ASPN) and international pitch notation (IPN), is a method of specifying musical pitch by combining a musical note name (with accidental if needed) and a number ide ...
), 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 Dynamics (from Greek δυναμικός ''dynamikos'' "powerful", from δύναμις ''dynamis'' "power") or dynamic may refer to: Physics and engineering * Dynamics (mechanics) ** Aerodynamics, the study of the motion of air ** Analytical dyna ...
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, where /code> and /code> indicate the extent of the beam. LilyPond's interface with
Pango Pango (stylized as Παν語) is a text (i.e. glyph) layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text. Full-function rendering of text and cross-platform support is achieved when Pango is us ...
requires the input
character encoding Character encoding is the process of assigning numbers to Graphics, graphical character (computing), characters, especially the written characters of Language, human language, allowing them to be Data storage, stored, Data communication, transmi ...
to be
UTF-8 UTF-8 is a variable-length character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode'' (or ''Universal Coded Character Set'') ''Transformation Format 8-bit''. UTF-8 is capable of ...
. 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 Karlheinz Stockhausen (; 22 August 1928 – 5 December 2007) was a German composer, widely acknowledged by critics as one of the most important but also controversial composers of the 20th-century classical music, 20th and early 21st-century ...
piano piece below.


Collaboration with other projects

Several graphical
scorewriter A scorewriter, or music notation program is software for creating, editing and printing sheet music. A scorewriter is to music notation what a word processor is to text, in that they typically provide flexible editing and automatic layout, and p ...
s—such as
Rosegarden Rosegarden is a free software digital audio workstation program developed for Linux with ALSA and Qt4. It acts as an audio and MIDI sequencer, scorewriter and musical composition and editing tool. It is intended to be a free alternative to su ...
, NoteEdit, Canorus,
Denemo Denemo is a scorewriter and music sequencer. Denemo has been under development since 1999. Denemo helps prepare notation for publishing and lets a user rapidly enter notation, simultaneously typesetting via the LilyPond music engraver. Music c ...
, and
TuxGuitar TuxGuitar is a free and open-source tablature editor, which includes features such as tablature editing, score editing, and import and export of Guitar Pro gp3, gp4, and gp5 files. In addition, TuxGuitar's tablature and staff interfaces function ...
—can export files directly to LilyPond format. Other graphical applications serve as front ends to LilyPond, including
Frescobaldi The Frescobaldi are a prominent Florentine noble family that have been involved in the political, social, and economic history of Tuscany since the Middle Ages. Originating in the Val di Pesa in the Chianti, they appear holding important post ...
and the LilyPondTool plugin for jEdit.
Denemo Denemo is a scorewriter and music sequencer. Denemo has been under development since 1999. Denemo helps prepare notation for publishing and lets a user rapidly enter notation, simultaneously typesetting via the LilyPond music engraver. Music c ...
integrates the PDF output of LilyPond in its display, allowing some editing operations on the final typeset score. The Mutopia Project, which distributes free content sheet music, uses LilyPond to typeset its music, as does Musipedia, a collaborative music encyclopedia. Emacs'
org-mode Org Mode (also: ''org-mode''; ) is a document editing, formatting, and organizing mode, designed for notes, planning, and authoring within the free software text editor Emacs. The name is used to encompass plain text files ("org files") that incl ...
contains support for embedding LilyPond scores into documents. OOoLilyPond, a
LibreOffice LibreOffice () is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced version of the earlier StarOffice. The LibreOffice suite co ...
extension provides support for calling LilyPond to embed scores into documents.


Integration into MediaWiki

Lilypond is available in
MediaWiki MediaWiki is a free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites define a large part of the requirement set for MediaWi ...
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. 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 Tex may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr. Entertainment * ''Tex'', the Italian ...
-based systems such as
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
and
Texinfo Texinfo is a typesetting syntax used for generating documentation in both on-line and printed form (creating filetypes as , , , etc., and its own hypertext format, ) with a single source file. It is implemented by a computer program released as fr ...
, and also
DocBook DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software, but it can be used for any other sort of documentation. As a semantic languag ...
and
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaSc ...
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 Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
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 and
Sibelius Jean Sibelius ( ; ; born Johan Julius Christian Sibelius; 8 December 186520 September 1957) was a Finnish composer of the late Romantic and early-modern periods. He is widely regarded as his country's greatest composer, and his music is often ...
are two