lilypond
Generate musical scores from text descriptions
TLDR
Compile a lilypond file into a PDF
Compile into the specified format
Compile the specified file, suppressing progress updates
Compile the specified file, and also specify the output filename
Show the current version of lilypond
SYNOPSIS
lilypond [OPTION]... FILE...
Example:
lilypond --output=output_scores/ my_composition.ly
lilypond -f pdf concerto.ly
PARAMETERS
-o DIR, --output=DIR
Specify the directory where output files (PDF, SVG, etc.) should be placed.
-f FORMAT, --format=FORMAT
Set the output format. Common formats include pdf, svg, and png.
-I DIR, --include=DIR
Add DIR to the include search path, useful for finding included .ly files.
-d OPTION, --define-macro=OPTION
Define internal Scheme variables or macros, e.g., -dbackend=ps.
--loglevel=LEVEL
Set the verbosity of log messages. Levels include NONE, ERROR, WARNING, PROGRESS, INFO, DEBUG.
--version
Print the LilyPond version number and exit.
--help
Show a help message and exit.
--init=FILE
Write a default init.ly file (containing default settings) to FILE.
--language=LANG
Set the default input language for note names (e.g., english, deutsch).
--backend=BACKEND
Specify the output backend (e.g., ps for PostScript intermediate, svg directly).
--strict
Enable strict parsing, which may reveal deprecated constructs or non-standard usage.
DESCRIPTION
The lilypond command is the primary interface for the LilyPond music typesetting program, a powerful tool designed to produce high-quality musical notation. It compiles plain-text input files, typically with a .ly extension, into beautifully engraved sheet music in various output formats like PDF, SVG, or PNG. Unlike graphical score editors, LilyPond operates on a non-WYSIWYG principle, requiring users to write musical scores using a specialized text-based language. This approach ensures precise control over every detail of the score's appearance and musical correctness, often resulting in output that rivals traditional hand-engraving. lilypond is widely used by composers, arrangers, educators, and publishers who require professional-grade musical scores, offering unparalleled flexibility and a focus on aesthetics and musical typography.
CAVEATS
lilypond requires users to learn its unique text-based input language, which can present a steep learning curve, especially for complex musical scores or advanced customization. Debugging errors can sometimes be challenging due to the verbose or technical nature of compiler messages. Being a non-WYSIWYG editor, it requires an iterative workflow: edit the .ly file, compile, review the output, and then repeat until satisfied.
INPUT LANGUAGE AND WORKFLOW
lilypond processes scores written in its own powerful, plain-text language. Users define notes, rhythms, dynamics, and other musical elements using this human-readable syntax. The typical workflow involves writing the .ly file in a text editor, then running the lilypond command to compile it into a PDF (or other format) for viewing. This iterative process allows for precise control and reproducibility.
EXTENSIBILITY AND CUSTOMIZATION
One of LilyPond's key strengths is its extensibility. Advanced users can customize almost any aspect of the output through Scheme scripting, which is integrated directly into the LilyPond language. This allows for creating custom commands, modifying engraving rules, or even generating musical content programmatically, making it highly adaptable to specific engraving needs and experimental notation.
HISTORY
LilyPond was started in 1996 by Han-Wen Nienhuys and Jan Nieuwenhuizen with the goal of creating high-quality, computer-engraved sheet music that matched the aesthetic standards of traditional hand-engraving. It quickly gained traction for its focus on musical typography and adherence to classical engraving rules. Development has been community-driven, and it is part of the GNU Project, emphasizing free and open-source principles. Over the years, it has evolved into a robust and highly customizable system, continuously improving its rendering capabilities and expanding its musical expression language.
SEE ALSO
abc2ly(1): Converts ABC music notation files to LilyPond format., convert-ly(1): Updates LilyPond input files to work with newer versions of LilyPond., lilypond-book(1): A tool to embed LilyPond snippets in TeXinfo, LaTeX, HTML, or DocBook documents., tex(1) / latex(1): Analogous text-based document typesetting systems.