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 progra ...
and
file format A file format is a Computer standard, 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 format, pr ...
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 daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
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 user In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
, 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, ...
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 Computer hardware, computing devi ...
.


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 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 additio ...
) 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, ...
) 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, an ...
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 User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
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 (angiosper ...
. 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 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 d ...
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 counterp ...
. 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 %. *
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), ''Notes'' (album), a 1987 album by Paul Bley and Paul Motian * ''Notes'', a common (yet unofficial) sho ...
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 A numeral is a figure, symbol, or group of figures or symbols denoting a number. It may refer to: * Numeral system used in mathematics * Numeral (linguistics), a part of speech denoting numbers (e.g. ''one'' and ''first'' in English) * Numerical d ...
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 id ...
), 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 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 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 use ...
requires the input
character encoding Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values tha ...
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 and early 21st centuries. He is known for his groundb ...
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 pr ...
s—such as Rosegarden,
NoteEdit NoteEdit is a defunct music scorewriter for Linux and other Unix-like computer operating systems. Its official successor is Canorus. NoteEdit is written in C++, uses the Qt3 toolkit, and is integrated with KDE. Released under the GPL-2.0-or-la ...
, 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 ca ...
, 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 a ...
—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 posts ...
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 ca ...
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, ...
'
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 consi ...
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 software, free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia movement, Wikimedia Website, websites, including Wiktionary, Wikimedia Commons and Wikidata; these sit ...
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 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 (angiosper ...
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 JavaScri ...
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 (angiosper ...
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 E ...
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