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 Execution (computing), execute. It is one component of software, which also includes software documentation, documentation and other intangibl ...
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 f ...
. 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 Within 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 platform, computing platforms. Some ...
, and is available for several common
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
s; released under the terms of the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
, LilyPond is
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
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 dev ...
.


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 In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
; 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 Musical notation is any system used to visually represent music. Systems of notation generally represent the elements of a piece of music that are considered important for its performance in the context of a given musical tradition. The proces ...
is output to
PDF Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
(via
PostScript PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
) or other graphical formats, such as SVG or PNG. LilyPond can also generate
MIDI Musical Instrument Digital Interface (; MIDI) is an American-Japanese technical standard that describes a communication protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, ...
files that correspond to the music notation output. LilyPond is a text-based application, so it does not contain its own
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
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
paradigm In science and philosophy, a paradigm ( ) is a distinct set of concepts or thought patterns, including theories, research methods, postulates, and standards for what constitute legitimate contributions to a field. The word ''paradigm'' is Ancient ...
; 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. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
. LilyPond supports experimental
musical notation Musical notation is any system used to visually represent music. Systems of notation generally represent the elements of a piece of music that are considered important for its performance in the context of a given musical tradition. The proce ...
. Its guitar facilities support alternative tunings, such as
major-thirds tuning Among guitar tunings#Alternative, alternative tunings for guitar, a major-thirds tuning is a regular tunings, regular tuning in which each interval (music), interval between successive open string (music), open strings is a major third ("M3" in m ...
.


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 Tex, TeX, TEX, may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Tex Earnhardt (1930–2020), U.S. businessman * Joe Tex (1933–1982), stage name of American soul singer ...
. The ability to embed Scheme code within a LilyPond
source file In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, onl ...
permits arbitrary extensions to the input language and assists with algorithmic composition. Some general syntactic features are listed below. * Single-line comments begin with a percent sign %. * Notes 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 t ...
, 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 (music), pitch by combining a musical Note (music), note name (with accidental ( ...
), 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, where /code> and /code> indicate the extent of the beam. LilyPond's interface with Pango requires the input
character encoding Character encoding is the process of assigning numbers to graphical character (computing), characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical v ...
to be
UTF-8 UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8. UTF-8 supports all 1,112,0 ...
. 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
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, 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 Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
output of LilyPond in its display, allowing some editing operations on the final typeset score. The Mutopia Project, which distributes
free content Free content, libre content, libre information, or free information is any kind of creative work, such as a work of art, a book, a software program, or any other creative content for which there are very minimal copyright and other legal limi ...
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 MediaWiki is free and open-source wiki software originally developed by Magnus Manske for use on Wikipedia on January 25, 2002, and further improved by Lee Daniel Crocker,mailarchive:wikipedia-l/2001-August/000382.html, Magnus Manske's announc ...
via the code. This, for example, transforms the notation \relative c' into \relative c' The above is an excerpt from Ludwig van Beethoven’s 9th Symphony, commonly known as "Ode to Joy". 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, TeX, TEX, may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Tex Earnhardt (1930–2020), U.S. businessman * Joe Tex (1933–1982), stage name of American soul singer ...
-based systems such as
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
and Texinfo, and also
DocBook DocBook is a Semantics (computer science), 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 docume ...
and
HTML Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
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. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
document preparation system, lyLuaTeX 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 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, but SCORE relies on manual positioning more than Lilypond does. See also Comparison of scorewriters.


See also

*
ABC notation ABC notation is a shorthand form of musical notation for computers. In basic form it uses the letter notation with –, –, and , to represent the corresponding notes and rests, along with other elements used to place added value on these – ...
* Common Music Notation * Denemo * Frescobaldi * GUIDO music notation * Impro-Visor *
MuseScore MuseScore Studio (branded as MuseScore before 2024) is a Free and open-source software, free and open-source music notation program for Microsoft Windows, Windows, macOS, and Linux under the Muse Group, which owns the associated online score-s ...
* MusicXML * MusiXTeX * NoteEdit * Philip's Music Scribe * Rosegarden *
SCORE (software) SCORE is a scorewriter program, written in FORTRAN for MS-DOS by Stanford University Professor Leland Smith (1925–2013) with a reputation for producing very high-quality results. It was widely used in engraving during the 1980s and 1990s and ...
*
List of music software This is a list of software for creating, performing, learning, analyzing, researching, broadcasting and editing music. This article only includes software, not services. For streaming services such as iHeartRadio, Pandora (service), Pandora, Prime ...
* 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