LilyPond – Music notation for everyone
LilyPond

LilyPond is a music engraving program, devoted to producing the highest-quality sheet music possible. It brings the aesthetics of traditionally engraved music to computer printouts. LilyPond is free software and part of the GNU Project.
Read more in our Introduction!
Beautiful Sheet Music
LilyPond is a powerful and flexible tool for engraving tasks of all kinds, for example classical music (like the example above by J.S. Bach), complex notation, early music, modern music, tablature, vocal music, lead sheets, educational materials, large orchestral projects, customized output, and even Schenker graphs.
Browse our gallery of Examples and be inspired!
Introduction | Start here to creating sheet music. | |
Download | Get LilyPond. | |
Manuals | Read The Fine Manuals (RTFM). | |
Community | Contact other users. |
Introduction
Our Goal

LilyPond came about when two musicians wanted to go beyond the soulless look of computer-printed sheet music. Musicians prefer reading beautiful music, so why couldn’t programmers write software to produce elegant printed parts?
The result is a program that creates beautiful sheet music following the best traditions of classical music engraving. It takes care of the details of layout programmatically, allowing composers, transcribers and publishers to focus on the music instead of improving their software’s default output. Performers will get parts that let them concentrate on playing music instead of reading it.
What LilyPond does
- Features: What can LilyPond do?
- Examples: I want to see some music!
- Freedom: LilyPond is Free Software.
- Background: Our computational aesthetics.
How LilyPond works
- Text input: You write music as text?!
- Easier editing: Other ways of working with LilyPond.
Features | What can LilyPond do? | |
Examples | I want to see some music! | |
Freedom | Freedom and the GPL. | |
Background | Computational aesthetics. | |
Productions | Real-life use of LilyPond. | |
Reviews | What do people say about it? | |
Text input | You write music as text?! | |
Easier editing | Other ways of working with LilyPond. |
Features
Excellent classical engraving

LilyPond allows musicians to produce elegant sheet music that is easy to read. Its developer community has spent thousands of hours developing powerful music engraving software that results in beautifully engraved music. All of LilyPond’s style settings, font designs and algorithms have been inspired by the finest hand-engraved music. LilyPond output has the same strong, balanced and elegant look as the best-engraved classical scores. This is further explained in our Essay.
Text input
Everything is explicit
LilyPond processes text input, which contains all information about the content of your score and can easily be read by any human or another program. There are no obscure settings hidden behind menu items and binary file storage.
Read more about this concept on Text input.
Tweaks are robust and traceable
If you have to change anything in the layout this tweak will also be explicitly visible in the input file in human-readable form, so you will always be able to retrace what you’ve done. If you should accidentally break anything you can easily revert or modify any decision without being at the mercy of an Undo function.
Text files are failure- and future-proof
Text files are very robust against file corruption. And as they are human-readable, you will always be able to interpret them even if you don’t have access to the programs that created them.
Manage your scores with version control
Text files are applicable to be managed by version control. Go for it and experience infinite and selective undo/redo mechanisms and the full development history of your scores. Version control may also open up new (collaborative) workflows for you.
Usability

Effective layout choices
Spend less time with tweaking the output; LilyPond gets the formatting correct right from the start. It determines spacing by itself, and breaks lines and pages to provide a tight and uniform layout. Clashes between lyrics, notes, and chords are resolved and slurs and beams are sloped, automatically!
Mix music and text
Put fragments of music into texts without cutting and pasting pictures. Integrate music into LaTeX or HTML seamlessly, or add music to OpenOffice.org and LibreOffice with OOoLilyPond. Plugins are also available to allow LilyPond code in various blogs and wikis, making online collaboration possible.
Accessibility
Text-based input also makes score-writing possible for users with severe physical disabilities. Dexterity-impaired users who are unable to type or control a computer mouse can use speech-recognition software to edit LilyPond files. Even users who are totally blind can use screen-reading software to write LilyPond files – an impossible task in graphical-based score-writing programs. You can see a spectacular score on Examples.
Editor diversity
Several developers, themselves active LilyPond users, have written tools specifically aimed at making the process of editing LilyPond files faster and more effective; you are not tied to a single user interface but can use different tools for different tasks. You can even use a full-fledged LilyPond editor at home and use your mobile phone’s notepad app to edit the files on the go. For some examples, see Easier editing.
Extensible design
Easy management of style sheets
All layout settings can be changed to suit your personal typographical taste. So you can easily write style sheets that change every aspect of LilyPond scores’ default appearance. As these are also written as text and can be stored in separate files you can simply switch between two stylesheets to produce scores with a completely different appearance or layout. You want to print a score on A4 paper and project it with a beamer, one system per page? LilyPond’s layout engine will effortlessly produce both from the same input.
Add your own functions
If that still is not enough, there is always the built-in scripting language Scheme, which can access LilyPond’s layout engine at the same level as LilyPond itself does, making it a very powerful tool. Settings, variables and functions are all documented in the comprehensive program reference manual.
Process scores programmatically
LilyPond input files can fully be edited or even generated by programs and scripts. This can for example be used for algorithmical composition. But you can also access the musical content for analysis, or manage input fragments in a database. There are no limitations except your imagination.
Create new tools using LilyPond
As LilyPond isn’t a monolithic GUI program but a command line tool it can be used from within other applications too. This way it is possible to equip tools like, e.g., web applications with LilyPond’s engraving power. There already exist several online tools using LilyPond.
Environment

Excellent support
LilyPond runs on all popular platforms: GNU/Linux, MacOS X, and Windows. LilyPond comes with extensive documentation and hundreds of example files. There is an active user community answering questions on the lilypond-user mailing list, offering you friendly help. The response time is usually very short, and often brillant solutions to reported problems are developed. Thanks to the close interaction with the development team such solutions are regularly included in LilyPond itself. Read more in Community.
Free software
LilyPond can be downloaded free of charge! Yep - It’s free. Get it from the download page.
It’s also free (as in “speech”) software. It comes with source code, and permission to change and copy it. So, are you irritated by a bug, or yearning for a feature? Simply add it yourself, or pay someone else to do it. Read more on Freedom.
Where now?
Still not convinced? Look at some specific Examples. If you’ve already decided to try LilyPond, first read about our Text input.
Examples
Beautiful Examples
LilyPond is a powerful and flexible tool for engraving tasks of all kinds. Please browse our gallery of examples and be inspired!
Complex Notation
This example from Goyescas by Enrique Granados shows some of the more advanced features of typesetting, including kneed beams, cross-staff stems, and voice-follow lines.
Early Music
LilyPond also supports various types of ancient notation, such as this passage of Gregorian chant.
Modern Music
Contemporary composers find LilyPond well-suited to displaying unusual notation. Here is an excerpt from Trevor Bača’s Čáry, for unaccompanied bass flute.
Efficient, flexible creation of performance materials
Various performance materials can be created from the same source code. This is an excerpt of Nicolas Sceaux’s engraving of Handel’s Giulio Cesare, in full score, piano-vocal reduction, and a violin part.
Tablature
LilyPond supports tablature notation, which can be customized to suit any instrument that reads from tablature. The tablature staff is generated automatically from notes entered for the 5-line staff.
Vocal Music
LilyPond is excellent for vocal music of all kinds, from sacred hymns to opera. Here is a medieval motet with slightly unusual requirements. The tenor voice is written in a different meter than the others, but must line up as if it were in the same meter. LilyPond handles this most elegantly. Note also the incipits with Vaticana style clefs, the slashed stems indicating plicated notes, and the ligature braces above certain groups of notes.
Lead Sheets
It is simple to create lead sheets with melody, lyrics, chord names, and fretboards. In this example you see some of the predefined fretboard diagrams, but these can be heavily customized to suit nearly any situation.
Educational Applications
LilyPond is perfectly suited for educational purposes as well. Here is an example of a simple counterpoint exercise.
Large Projects
LilyPond is excellent for large projects like operas or works for full symphony orchestra, as well. In addition, the text-based input provides greater accessibility – this example was contributed by Hu Haipeng, a blind composer.
Customized Output
A short excerpt from Stockhausen’s Klavierstück II to demonstrate LilyPond’s ability to provide customised output.
Schenker Graphs
Standard output can be modified heavily. Here is an impressive Schenkerian analysis, created by Kris Schaffer, for an article in Linux Journal. The colors have been added for better visibility.
Where now?
Still not convinced? LilyPond is Free software, granting you Freedom. If you’ve already decided to try LilyPond, first read about our Text input.
Freedom
Free Software
GNU LilyPond is written and maintained by a community of enthusiasts. It is published under the GNU General Public License and the GNU Free Documentation License, giving everybody the freedom to fix, modify, and extend the program. Creating beautiful music should not require hundreds of dollars of software!
What are the benefits to users?
- No cost: download and try it out! What do you have to lose?
- Sharing: if you like the program, give a copy to your friends, teachers, students, and colleagues!
- Source available: if you are curious about how LilyPond creates some notation, you can see exactly how it is done.
-
Extendible: you can add features, fix bugs, and change the
functionality. If you are not a programmer, you can hire somebody
to do those tasks.
This may not seem appealing to casual musicians, but the ability to extend software can be highly valuable to serious composers, companies, and academics.
- Future safety: if a commercial company goes bankrupt, what happens to any electronic music which depends on their products? This is not a concern with LilyPond; even if the entire development team quits (extremely unlikely), the program will still be legally available for copying, modifications, and distribution.
Why do LilyPond developers “give away” their work for free?
Most of us view LilyPond development as a hobby or volunteer work. So this question is really asking “why do people volunteer”?
- Fun: working towards a goal can be enjoyable, especially when you work as a team!
- Shared goals: we all want beautiful sheet music, but few people have the expertise (and nobody has the time!), to create a program which can handle all situations. By working together – one person improves the automatic beaming code, another person improves the shape of slurs, and a third person writes documentation explaining how to use these features – we can achieve our goal with only a fraction of the individual effort.
- “Gift culture”: the Free Software movement has created many great software projects, such as GNU/Linux, Mozilla Firefox, and Battle for Wesnoth. Having benefitted from these projects, some developers want to “give back” to the community.
- Work experience: contributing to free software projects is a great way to practice programming, documentation writing, documentation translation, or design. This experience has helped some developers gain job offers or scholarships.
Where now?
Still not convinced? Read our extensive essay about our engraving philosophy in Background. If you’ve already decided to try LilyPond, first read about our Text input.
Background
Background essay
We have an extensive essay describing computational aesthetics: the art of creating beauty with a computer.
This is interesting reading if you are interested in an in-depth discussion of our fundamental ideas. Due to its volume the essay is available as a "manual". If you would like to read it now, please progress to Essay. However, if you just want a quick introduction to LilyPond, you might skip it for now.
Where now?
Still not convinced? Read about some of our users’ Productions and sheet music. If you’ve already decided to try LilyPond, first read about our Text input.
Productions
Productions using LilyPond
Here you can read about people who actually use LilyPond in their productions, be it for performances of their music or as published scores. The list is limited to works released as public domain or under open content licenses.
Performances and Concerts
LilyPond engravings have been used for performances around the world. Some highlights:
- Marc Hohl has written musical scores for children and adolescents. Engraved using LilyPond (with LaTeX) and available for free, in German, from https://www.singspielschmiede.de/, all of the music was performed on stage at the School where Marc works.
-
Aurélien Bello arranged a version
of Richard Strauss’s Der Rosenkavalier for four singers and a
chamber orchestra of thirteen players. This was a commission by the
Berlin Philharmonic Orchestra who performed it in 2015 at the
Baden-Baden
and also at the
Berlin.
We are pleased to see musicians of such reputation playing from LilyPond
scores (who were reportedly very happy with them).
Aurélien also re-orchestrated Der Ring des Nibelungen by Richard Wagner for a family concert (ages 7 and above). It was written for a standard symphony orchestra, but with a reduced cast of singers and was performed by the Radio-Sinfonieorchester Berlin in 2014 at the Atze Musiktheater, Berlin. The Conductor was Heiko Matthias Förster.
Another re-orchestration by Aurélien was Mussorgsky’s Pictures at an exhibition which he also conducted for the Junge Philharmonie Brandenburg in 2011 and again in 2012.
-
Joe Smeets created sheet music for the children’s book Zing Mee
(Sing along) by Annie M.G. published by Querido –
ISBN 9789045106205. He also worked on the score and parts for an
arrangement of Mussorgsky’s Boris Godunov for wind quartet, piano
and percussion which was performed in 2014 by
Muziektheater Hollands Diep.
Joe also created the choir rehearsal scores for the Dutch translation of Benjamin Britten’s Saint Nicolas which was performed in 2011 by Muziektheater Hollands Diep see www.muziektheaterhollandsdiep.nl.
- Luca Rossetto Casel, for his Ph.D. thesis, created a critical edition of Tommaso Traetta’s Enea nel Lazio (1760), opera seria on a libretto by Vittorio Amedeo Cigna-Santi, in four parts: Part One Part Two Part Three Part Four
- Kieren MacMillan, composer and musical director of many works including; Go Thy Way, performed by the Salt Lake Choral Artists in 2012; The Just Out of Reach Suite performed by the Chrysalis Duo; and thrafsmata performed by the Pittsburgh New Music Ensemble in 2011.
-
Mike Solomon was the winner of 172
entries from 22 countries for the
2011 Left Coast Composition Contest
with his work Anonymous Student Compliment or Complaint.
Other works for Mike include, Norman (age 1) for clarinet solo, performed at the University of Florida’s Electroacoustic Music Festival (FEMF) in October 2010.
- Thomas Griffin, Musicologist (Rome, Italy), edited a modern edition of the Serenata Erminia by Alessandro Scarlatti, which was performed in 2010 at the Galleria of the Palazzo Zevallos Stigliano, Naples, Italy in celebration of the composer’s 350th birthday. See http://www.ascarlatti2010.net.
-
Nicolas Sceaux engraved
the work of Lully’s Armide which was performed by
Mercury Baroque in 2009.
Nicolas also engraved the instrumental excerpts from Rameau’s Hippolyte et Aricie which were performed by Frederick Renz and his ensemble at St. James’s Church, Manhattan, New York in 2009. See Early Music New York.
- Valentin Villenave engraved a libretto of Affaire étrangère, an opera by Lewis Trondheim, which was premiered in 2009 at the L’Opéra National de Montpellier, France.
Published sheet music
Sheet libraries
- Mutopia Project, with over 2000 pieces of classical sheet music for free download, is the main showcase of LilyPond scores. Every piece comes with its LilyPond source file, allowing you to learn from other typesetters and also make your own edition.
- baroquemusic.it, started in 2005, collects over 800 scores of baroque music. The archive includes scores, separate parts and midi files, distributed with a Creative Commons license and available to subscribers only.
- Partitura Organum is a growing collection of organ pieces in the public domain, typeset by LilyPond and distributed under a Creative Commons license.
- Clairnote offers free sheet music in Clairnote notation. Clairnote is an alternative notation system that aims to make music easier to read and understand. The scores on the website are taken from Mutopia and other online resources and then converted to Clairnote’s own notation.
Sheet source repositories
- Mutopia Project repository: source files of all pieces in Mutopia library.
- LilyPond website examples: source files of the example gallery shown in Examples.
- Nicolas Sceaux: baroque music scores typeset with LilyPond by one of its developers.
If you are aware of any other concerts or sheet music which could be listed here, please let us know by writing a message to the bug-lilypond mailing list. If you’re not subscribed yet you can do so on the list’s info page.
Where now?
Still not convinced? Read some of our users’ Reviews. If you’ve already decided to try LilyPond, first read about our Text input.
Reviews
Published articles
-
April 2011
Linux Magazine publishes an article titled Projects on the Move. It is an introductory article on MuseScore, LilyPond and Chordii. Author Carla Schroder states “LilyPond is driven from the command line, but don’t let the lack of a GUI scare you away; LilyPond is user-friendly and easy to learn”, and provides a hands-on example.
-
May 2010
Peter Kirn, on the Create Digital Music website, publishes a LilyPond review. He takes a balanced view on usage, praises LilyPond’s high-quality notation and suggests to try it out.
-
September 2009
The German LinuxUser magazine wrote an article about LilyPond.
-
August 2009
Ann Drinan, on the Polyphonic.org website, presents comments by two orchestra librarians who talk about using software to maintain their libraries.
-
June 2009
In an article published in the French National Conservatory Parent Association’s yearly magazine, French composer and LilyPond contributor Valentin Villenave explains how Free licenses, and specifically LilyPond-engraved scores, are instrumental in making written music accessible to all.
-
February 2008
In articles on his personal site, Andrew Hawryluk compares Finale and LilyPond in general terms, and evaluates engraving capabilities of both pieces of software in detail. The second article is an instructive analysis of engraving issues in Rachmaninoff’s Piano Prelude No. 6, including comparisons with a hand-engraved reference edition.
-
June 2006
DistroWatch awards LilyPond and writes “Ladies and Gentleman, we are pleased to announce that, based on readers’ requests, the DistroWatch May 2006 donation has been awarded to LilyPond (€190.00) and Lua (US$250.00).”
-
December 2005
Linux Journal publishes an article titled Make Stunning Schenker Graphs with GNU LilyPond. It is an in-depth but hands-on feature article with crisp LilyPond graphics. Author Kris Shaffer remarks “GNU LilyPond generates beautiful graphics that make commercial alternatives seem second-rate.”
-
August 20, 2005
The Belgian newspaper De Standaard investigates what drives Free Software authors in an article titled Delen van KENNIS zonder WINSTBEJAG (Non-profit sharing of knowledge) in its ‘DS2 bijlage’. LilyPond is used as an example and the article is interspersed with quotes from an email interview with Jan Nieuwenhuizen. This marks LilyPond’s first appearance in mainstream printed press.
-
June 2005
A French article on the LilyPond 2.6 release appeared on linuxfr.org.
-
October 2004
The editors of Computer!Totaal, a Dutch computer magazine, describe LilyPond in the October 2004 issue as: “Wonderful free (open source) software […] The sheet music produced by LilyPond is exceptionally pretty […] a very powerful system that can do almost anything.”
-
July, August 2004
Dave Phillips wrote an introductory article for Linux Journal: At the sounding edge: LilyPond, parts one and two.
-
March 2004
Chris Cannam interviewed Han-Wen Nienhuys and Jan Nieuwenhuizen on linuxmusician.com (original site defunct). This interview was also reviewed in a slashdot story.
-
February 2004
Jazz singer Gail Selkirk writes about Diving into LilyPond. “… you can make lead sheets or full orchestral parts, and the results can be stunning.” Computer Music Special, issue CMS06.
User testimonials

Carter Brey, Principal Cellist, New York Philharmonic
“… I’ve written a couple of encore pieces for solo cello which I’ve printed with LilyPond and which I’m going to submit to Schirmer for publication. I’ll bet their engraved version wouldn’t look half as sharp as mine!”

Orm Finnendahl, professor of Composition, Hochschule für Musik und Darstellende Kunst Frankfurt am Main
“Although I don’t know [LilyPond] very well yet, I’m *very impressed. I used the program to input a motet of Josquin Desprez in mensural notation and there’s no doubt that lilypond outscores all other notation programs easily concerning speed, ease of use and look!”

Darius Blasband, composer (Brussels, Belgium)
“[..after the first orchestra rehearsal] I got numerous compliments about the quality of the scores. Even more importantly, while LilyPond provides numerous hacks to improve the way its scores look, what the orchestra got from me is basically the raw, untouched output.”
Kieren MacMillan, composer (Toronto, Canada)
“thanks and kudos to the development team for their incredible work. I’ve never seen anything approaching the output that I get from LilyPond – I’m totally confident that my music publishing needs will be fulfilled beyond my expectations using this great application. […] basically untweaked LilyPond output […] looks better than most recent ‘professional’ publications I’ve compared it to (q.v., just about any Warner Bros. score, and even many of the most recent by ‘the old houses’). […]” “Beat that, Finale/Sibelius/Igor/whatever!!!”
Chris Cannam, lead programmer of the RoseGarden project
“LilyPond is obviously the zillion-ton gorilla [of great music typesetting].”
Chris Snyder, Adoro Music Publishing
“The way that music is entered for LilyPond causes me to think in a more musical way – there have been times when I’ve been stumped as to how to tell Lily to engrave something, only to realize that even if I did get it exactly as the composer wanted, the music would be confusing to read. LilyPond makes it much easier for me to work in my dual editor+engraver role.”
“I’ve been using LilyPond exclusively for my fledgling music publishing business. Virtually without exception, every composer has been blown away by the quality of the engraving when presented with the proofs of their music about to be published. I deserve some of the credit for this – I spend a lot of time tweaking output, especially ties (mainly in chords) – but LilyPond gives me an excellent starting point, a very intuitive interface, and the ability to modify absolutely anything if I want to take the time. I’m convinced that no commercial product can come close.”
David Bobroff, Bass Trombone, Iceland Symphony Orchestra
“I think LilyPond is great […] The more I learn about LilyPond the more I like it!”
Vaylor Trucks, Electric guitar player (Yes, related to)
“I am super impressed with LilyPond […]”
“THIS IS THE BEST PROGRAM EVER!!!”
“Thank you all SO MUCH for your hard work and dedication!”
Nicolas Sceaux, Mutopia contributor
“I had a kind of hate-passion relationship with it. Passion because the first score I saw was so amazing! The description of LilyPond lies about its beautifulness, it is too modest! […] as LilyPond is getting always better, and as I look closer how things are done in scheme, I have less and less frustrations. Anyway, what I mean is: thank you for providing LilyPond, it is really good.”
Werner Lemberg, Conductor at the Theatre in Koblenz, Germany and distinguished GNU Hacker
“Anyway, LilyPond does an amazingly good job!”
Paul Davis, developer of JACK and Ardour
“I think [LilyPond is] an incredible program, and it produces wonderful, wonderful output. when i read an interview about it last year, i was raving to several friends of mine about its potential.”
Dr. Mika Kuuskankare, researcher at the Sibelius Academy Finland, composer and author of Expressive Notation Package (ENP)
“I have the deepest respect towards LilyPond and towards its creators and maintainers as I know from personal experience how difficult this kind of software can be.”
David Cameron, Musician, professional typesetter and long time SCORE user
“My heartfelt thanks to everyone who contributes to this project. I was a power SCORE user for big typesetting houses way back in the ’90s, but I feel LilyPond finally makes it possible for me to get exactly what I want on the page, especially when it isn’t "standard" practice.”
If you are aware of any other news articles or testimonals which could be listed here, please let us know by writing a message to the bug-lilypond mailing list. If you’re not subscribed yet you can do so on the list’s info page.
Text input
“Compiling” Music
LilyPond is a compiled system: it is run on a text file describing the music. The resulting output is viewed on-screen or printed. In some ways, LilyPond is more similar to a programming language than graphical score editing software.
You do not write music by dragging notes from a graphical toolbar and placing them on a dynamically refreshing score; you write music by typing text. This text is interpreted (or “compiled”) by LilyPond, which produces beautifully engraved sheet music.
People accustomed to graphical user interfaces might need to learn a new way of working, but the results are definitely worth it!
Note: We present a quick overview of our text input – it’s not as complicated as it sounds! Don’t worry about understanding every detail in these examples; our beginner documentation covers everything at a much more gradual pace.
It’s as simple as A B C
Notes are encoded with letters and numbers. Special commands are entered with backslashes.


Alterations are made with different names: add -is
for
sharp, and -es
for flat (these are Dutch note names, other
languages are available). LilyPond figures out where to put
accidentals.


Pop music
Put chords and lyrics together to get a lead sheet:


Orchestral parts
The input file contains the notes of piece of music. Score and parts can be made from a single input file, so that changing a note always affects the score and parts. To be able to include the same music in multiple places, the music is assigned to a “variable” (a name).

This variable is then used in a single part (here transposed, with condensed rests spanning several measures):


The same variable is used in the full score (here in concert pitch):


Beginner Documentation
We realize that many users find this way of entering music a bit odd. For this reason, we have written extensive documentation to help new users, beginning with Learning. The Learning Manual is the best place to start, as many questions are answered before they come up!
Occasionally new users are unnecessarily confused by some aspects of LilyPond’s behaviour. Please read this manual before doubting whether LilyPond is working correctly.
More in-depth information is available in Manuals.
Ben Lemon, a LilyPond user, has created a range of video tutorials on his blog and which are aimed at new users.
Easier editing environments
LilyPond is primarily concerned with producing top-quality engraved sheet music; creating a Graphical User Interface (GUI) would distract us from this goal. However, there are other projects aimed at making it easier to create LilyPond input files.
Some editing environments include syntax highlighting, automatic command completion, and pre-made templates. Other programs actually provide a GUI which allows direct manipulation of a graphical score. For more information, see Easier editing.
Easier editing
Front-end Applications
Frescobaldi



Frescobaldi is a lightweight, yet powerful, music and text editor with many features added and enhanced particularly for LilyPond. Major features include point-and-click links between the code and music views, detailed score wizards, built-in LilyPond documentation browser, syntax highlighting and automatic completion. Frescobaldi is written in Python, with PyQt4 for its user interface, and will run on all major operating systems (GNU/Linux, Mac OS X and Windows).
Denemo



Denemo is a graphical editor which generates LilyPond source code, and also allows audio playback. It allows users to view the LilyPond source code in parallel to the graphical view. Extra LilyPond tweaks can be attached to notes, chords, etc., and are stored with the Denemo file, so that users can continue to edit graphically.
Moving the cursor in the LilyPond text moves the cursor in the graphical view, and any syntax errors in your LilyPond tweaks are highlighted in the text view when printed from there.
Browser-based editors
LilyBin
A web-based LilyPond editor where you can typeset your scores directly online without needing to install LilyPond. Code snippets are kept available with a unique URL, like on so-called ‘pastebin’ websites. Its code is made freely available under the MIT license; it may be found on its development page.
Hacklily
An online sheet-music editor and publishing tool powered by LilyPond, with additional features such as autocompletion and contextual help. The underlying web hosting code is available under the AGPL license, on its own development page.
www.omet.ca
Since 2010, Online Music Editing Tools (OMET) offers a ready-to-use LilyPond service with a specifically-tailored web interface. Registration is required but free of charge.
WebLily.net
Initiated in 2009, WebLily.net is one of the first web services based on LilyPond, and has been regularly updated since then. It is free of use (although registration is required), and includes a clickable version of LilyPond’s documentation.
Word processor plug-ins
OOoLilyPond
https://extensions.services.openoffice.org/en/project/OOoLilyPond




An OpenOffice.org extension that converts LilyPond files into images within OpenOffice.org documents.
IDE Plug-ins
Elysium




https://github.com/thSoft/elysium
A complete environment for editing scores with LilyPond in Eclipse, offering a rich toolkit for conveniently managing LilyPond.
Text editors




Emacs
https://www.gnu.org/software/emacs/ Emacs is a text editor with language-sensitive capabilities for many different computer languages. Emacs is a highly extensible editor and can be used as an Integrated Development Environment. There is a ‘lilypond mode’ which supplies the language definitions for working with LilyPond source files. A developer has written lyqi, an Emacs major mode.
If you are not already familiar with Emacs then you may probably prefer to use a different editor for writing LilyPond input files.
More information on setting up Emacs can be found in Text editor support.
Vim
https://www.vim.org
Vim is a minimal text editor and is an extension of the older Unix
vi
editor. It is also extensible and configurable.
If you are not already familiar with Vi then you may probably prefer to use a different editor for writing LilyPond input files.
More information on setting up Vim can be found in Text editor support.

TeXShop
https://pages.uoregon.edu/koch/texshop/
The TeXShop editor for MacOS X can be extended to run LilyPond,
lilypond-book
and convert-ly
from within the editor,
using the extensions available at:
http://users.dimi.uniud.it/~nicola.vitacolonna/home/content/lilypond-scripts
Other programs that can export LilyPond code
Score, tab and MIDI editors:
-
bwwtolily attempts to
convert a
.bww
or.bmw
file to LilyPond. While not all of the embellishments may get converted properly (this is especially true with piobaireachd), the program will list them. - Canorus, a score editor, can also export to LilyPond, but is still beta-software. Testers are welcome, though.
- Enc2ly is a GNU/Linux program which converts an Encore music score into a LilyPond one.
- go-enc2ly is a Go tool that converts Encore files to LilyPond. It was created using Felipe Castro’s research and reverse engineering by tweaking existing .enc files and loading them using the 4.55 demo version.
- NtEd, a score editor based on the Cairo library, it has experimental support for exporting to LilyPond.
- NW2LY is a C# program which converts a NoteWorthy composer song into LilyPond.
- Ripple is a program that helps create scores and parts, including a mode for mixing different musical works together in a single score or part.
- Rosegarden, an audio and MIDI sequencer, which also has a score editor for single-staff editing.
Algorithmic code generators
- Abjad, a Python API for Formalized Score Control designed to help composers build up complex pieces of LilyPond notation in an iterative and incremental way.
- FOMUS, (FOrmat MUSic) is a music notation tool for computer music composers. It is written in the Lisp programming language, and has been tested in a variety of interpreters. A C++ port is also available.
- Strasheela, an environment built on top of the The Mozart Programming System.
Other programs no longer being actively developed
- LilyPondTool was created as a plugin for the jEdit text editor.
- LilyKDE has been replaced by Frescobaldi, and exists as LilyKDE3 for KDE 3.5 and lilypond-KDE4 for KDE 4.1 only.
- LilyComp is a graphical note entry program, acting much like a number-pad which produces LilyPond notes.
- MuseScore, a score editor. LilyPond export was dropped in version 2.0 but earlier versions are still available for download at Sourceforge.
- NoteEdit, which imported MusicXML, has been forked into NtEd and Canorus.
- Rumor, a realtime monophonic MIDI-to-LilyPond converter.
- tunefl Typeset your mini-scores directly online without needing to install LilyPond locally. It allows trying out all the program’s features using a convenient web interface.
- TuxGuitar, a multitrack tablature editor and player, includes a score viewer and can export to LilyPond.
Where now?
You are now ready to Download LilyPond.
Still not convinced? Many composers, musicians, and conductors have learned how to write music in our input format. Experienced users even report that they can enter a full score in LilyPond faster than with a piano keyboard or mouse+GUI! Perhaps you would like to review the Features, Examples, or the Freedom that LilyPond provides, or read about users’ Productions and Reviews. In addition, our approach to the computational aesthetics of classical engraving is explained in our Background.
Legalese
All logos and product images are copyright and trademark acknowledged.
Tux the Linux Penguin was created by lewing@isc.tamu.edu with the Gnu Image Manipulation Program.
The FreeBSD logo is a registered trademark of The FreeBSD Foundation.
The “X image” is not a registered trademark. It was created by Nihonjoe and CyberSkull, and placed under the GNU Free Documentation License version 1.2 or later. We found the image on this Wikimedia Commons page.
The “four colored rectangles image” is not a registered trademark. It was created by Rohitbd and placed under the GNU Free Documentation License version 1.2. We found the image on this Wikimedia Commons page.
Download
Downloads for LilyPond 2.22.2
Note: Links for the unstable version of LilyPond can be found at Development.
Note: LilyPond is a text-based music engraver; it is more similar to a programming language than a graphical score editing program. Before downloading LilyPond, please read about our Text input.
For developers
- Source: for packagers
- Old downloads: old versions
- Development: latest unstable version
Legalese
All logos and product images are copyright and trademark acknowledged.
Tux the Linux Penguin was created by lewing@isc.tamu.edu with the Gnu Image Manipulation Program.
The “X image” is not a registered trademark. It was created by Nihonjoe and CyberSkull, and placed under the GNU Free Documentation License version 1.2 or later. We found the image on this Wikimedia Commons page.
The “four colored rectangles image” is not a registered trademark. It was created by Rohitbd and placed under the GNU Free Documentation License version 1.2. We found the image on this Wikimedia Commons page.
Unix
Note: LilyPond is a text-based music engraver; it is more similar to a programming language than a graphical score editing program. Before downloading LilyPond, please read about our Text input.
Generic Packages or Distribution-Specific Packages?
Many distributions include LilyPond within their normal package repositories that are often significantly older than the current stable version. While these older packages may be easier to install, we strongly recommend that you use our generic packages. In this case, check that your LilyPond editor is using the correct version. See Easier editing.
Generic Packages
Download
-
GNU/Linux x86: LilyPond 2.22.2-1 32bit Systems.
-
GNU/Linux 64: LilyPond 2.22.2-1 64bit Systems.
Install
In the shell, type:
cd PATH-TO-DOWNLOAD-DIRECTORY sh lilypond-2.22.2-OS-TYPE.sh
Uninstall
In the shell, type:
uninstall-lilypond
Help
In the shell, type:
sh lilypond-2.22.2-OS-TYPE.sh --help
Compiling a file
Note: These instructions assume that you are familiar with working on the command line. If you are using any of the programs described in Easier editing, consult the documentation for those programs should you have any problems.
Step 1. Create your ‘.ly’ file
Create a text file called ‘test.ly’ with the following contents.
\version "2.22.2" { c' e' g' e' }
Step 2. Compile (on the command line)
To process ‘test.ly’, type the following at the command prompt.
lilypond test.ly
You will see something resembling:
GNU LilyPond 2.22.2 Processing `test.ly' Parsing... Interpreting music... Preprocessing graphical objects... Finding the ideal number of pages... Fitting music on 1 page... Drawing systems... Converting to `test.pdf'... Success: compilation successfully completed
Step 3. View output
You may view or print the resulting ‘test.pdf’ file.
Legalese
All logos and product images are copyright and trademark acknowledged.
Tux the Linux Penguin was created by lewing@isc.tamu.edu with the Gnu Image Manipulation Program.
MacOS X
Note: LilyPond is a text-based music engraver; it is more similar to a programming language than a graphical score editing program. Before downloading LilyPond, please read about our Text input.
Packages
Download
-
Mac OS X x86 32-bit: LilyPond 2.22.2-1 For Mac OS X 10.4–10.14 running on Intel CPUs (for 10.15 see below).
-
Unofficial 64-bit application bundles for macOS 10.15 are available at https://gitlab.com/marnen/lilypond-mac-builder/-/releases.
-
MacPorts, a package manager for Mac OS, has a LilyPond port.
-
Homebrew, another package manager for Mac OS, has a LilyPond formula.
Install
Double-click the downloaded file, then drag it to wherever you want.
Uninstall
Delete the LilyPond.app folder.
Running on the command-line
Note: If you are happy with the GUI instructions below, then please ignore these instructions.
MacOS X on the command line
The most convenient way to run lilypond scripts is by setting up “helper” scripts of your own.
-
Create a directory to store these scripts,
mkdir -p ~/bin cd ~/bin
-
Create a file called
lilypond
which contains#!/bin/bash exec DIR/LilyPond.app/Contents/Resources/bin/lilypond "$@"
Note: DIR will generally be
/Applications/
-
Create similar files
lilypond-book
,convert-ly
, and any other scripts you wish to use, by replacing thebin/lilypond
withbin/convert-ly
(or other program name). -
Make the file executable,
chmod u+x lilypond
-
Now, add this directory to your path. Modify (or create) a file
called
.profile
in your home directory such that it containsexport PATH=$PATH:~/bin
This file should end with a blank line.
Invoking individual scripts
The scripts — such as lilypond-book
, convert-ly
,
abc2ly
, and even lilypond
itself — are included
inside the .app
file for MacOS X.
Scripts can also be run from the command line by invoking them directly:
path/to/LilyPond.app/Contents/Resources/bin/lilypond
The same is true for all other scripts in that directory, such as
lilypond-book
and convert-ly
.
Compiling a file
Note: These instructions assume that you are using the LilyPond application. If you are using any of the programs described in Easier editing, consult the documentation for those programs should you have any problems.
Step 1. Create your ‘.ly’ file
Double-click on LilyPond.app
and an example file will
open.

From the menus along the top left of your screen, select
File > Save
.

Choose a name for your file, for example ‘test.ly’.

Step 2. Compile (with LilyPad)
From the same menus, select
Compile > Typeset
.

A new window will open showing a progress log of the compilation of the file you have just saved.

Step 3. View output
Once the compilation has finished, a PDF file is created with the same name as the original file; it gets automatically opened in the default PDF viewer and displayed on your screen.

Other commands
To create new files for LilyPond, begin by selecting
File > New

or File > Open
to open and edit existing files you have
saved previously.

You must save any new edits you make to your file before you
Compile > Typeset
and if the PDF file is not displayed
check the window with the progress log for any errors.
If you are not using the default Preview PDF viewer that comes with the Mac Operating system and you have the PDF file generated from a previous compilation open, then any further compilations may fail to generate an updated PDF until you close the original PDF file.
Legalese
All logos and product images are copyright and trademark acknowledged.
The “X image” is not a registered trademark. It was created by Nihonjoe and CyberSkull, and placed under the GNU Free Documentation License version 1.2 or later. We found the image on this Wikimedia Commons page.
Windows
Note: LilyPond is a text-based music engraver; it is more similar to a programming language than a graphical score editing program. Before downloading LilyPond, please read about our Text input.
Packages
Download
-
Windows: LilyPond 2.22.2-1 For current versions of Windows.
Install
- Locate the downloaded file and double-click on it to start the installer. Follow the instructions given to you by the installer; we recommend that you leave all the install options checked and use the default installation location. Click the ‘Finish’ button when the installer has completed. LilyPond is now installed.
Uninstall
To uninstall LilyPond either:
- Locate the LilyPond folder from the ‘Start’ menu and click on the ‘Uninstall’ icon. Click the ‘Finish’ button when the uninstaller has completed.
- Or from within the Control Panel, locate and select LilyPond and then choose the option to uninstall/remove the software. Click the ‘Finish’ button when the uninstaller has completed.
Running on the command-line
Note: If you are happy with the GUI instructions below, then please ignore these instructions.
Windows on the command line
The most convenient way to run LilyPond is by adding the folder which contains LilyPond executable files to the environmental variable “Path”.
- Open your “System” on the Control Panel, select Advanced tab and click Environmental Variables button.
-
Select the Variable “Path” from Environmental variables list
and click the Edit button.
You will be presented a window titled “Edit System Variable”;
append to “Variable value” the name of the folder
which contains LilyPond executable files like this:
[pre-set paths];DIR\LilyPond\usr\bin
Note: DIR will generally be
C:Program Files (x86)
for 64 bit orC:Program Files
for 32 bit systems.and click “OK” button to close the window.
Invoking individual executable files
LilyPond executable files – such as lilypond, lilypond-book, convert-ly, and so on – can be run from the command-line by invoking them:
lilypond test.ly
Compiling a file
Note: These instructions assume that you are using the built-in LilyPad editor. If you are using any of the programs described in Easier editing, consult the documentation for those programs should you have any problems.
Step 1. Create your ‘.ly’ file
Double-click on the LilyPond icon on your desktop and an example file will open.

From the menus that appear along the top of the example file,
select File > Save as
. Do not use the File >
Save
for the example file as this does not work until you have
given it a valid LilyPond file name.

Choose a name for your file, for example ‘test.ly’.

Step 2. Compile
To turn your LilyPond file into a music score, you need to compile it. This can be done in a number of ways – using drag and drop, with right-click, double-clicking, or using the command line. We now look at the first three options to start with; the fourth option is introduced later on.
1. Drag and drop the file directly onto the LilyPond icon on the desktop.

Not much will seem to happen, but after a short while, you should see two new files on your desktop – ‘test.log’ and ‘test.pdf’.
2. Right-click on the file, and from the pop-up context menu
select Generate PDF
.

3. Simply double-click on the file ‘test.ly’.
Step 3. View output
‘test.pdf’ contains the engraved ‘test.ly’ file. Double-click on it and it should open in your PDF viewer:

Other commands
To create a new file, begin by selecting File > New
from within any previously created file or select File >
Open
to open and edit any files you have saved before. You can
also edit a file by right-clicking on it and selecting
Edit source
.

You must save any edits you make before you try to compile your file. If the PDF file is not created or the output is not what you expect, check the log file that will have been created during the compilation attempt for any errors.

This log file is overwritten each time you compile your LilyPond file.
If you are viewing your file in a PDF viewer you probably must close the PDF if you wish to try a new compilation as it may fail to create the new PDF while it is still being viewed. This is at least true for Adobe’s Acrobat Reader. Other programs like FoxIt’s PDF reader don’t have this problem.

Legalese
All logos and product images are copyright and trademark acknowledged.
The “four colored rectangles image” is not a registered trademark. It was created by Rohitbd and placed under the GNU Free Documentation License version 1.2. We found the image on this Wikimedia Commons page.
Source
Note: LilyPond is a text-based music engraver; it is more similar to a programming language than a graphical score editing program. Before downloading LilyPond, please read about our Text input.
Note: We do not recommend that you attempt to build LilyPond yourself; almost all user needs are better met with the pre-built version.
Source tarball
Source: lilypond-2.22.2.tar.gz
For an extensive listing of all versions (old and new), see our download site.
Old downloads
Note: LilyPond is a text-based music engraver; it is more similar to a programming language than a graphical score editing program. Before downloading LilyPond, please read about our Text input.
GPL
Software license
GNU LilyPond is published under the GNU General Public License. An introduction to this license, and our reasons for choosing it, is given in Freedom.
GNU General Public License
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. https://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. |
Preamble
The GNU General Public License is a free, copyleft license for software and other kinds of works.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program—to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
For the developers’ and authors’ protection, the GPL clearly explains that there is no warranty for this free software. For both users’ and authors’ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
- Definitions.
“This License” refers to version 3 of the GNU General Public License.
“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.
To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.
A “covered work” means either the unmodified Program or a work based on the Program.
To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
- Source Code.
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
- Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
- Protecting Users’ Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures.
- Conveying Verbatim Copies.
You may convey verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
- Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
- The work must carry prominent notices stating that you modified it, and giving a relevant date.
- The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
- You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
- If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
- Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
- Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
- Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
- Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
- Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
- Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
- Additional Terms.
“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
- Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
- Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
- Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
- Limiting the use for publicity purposes of names of licensors or authors of the material; or
- Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
- Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
- Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
- Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
- Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party’s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
- Patents.
A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor’s “contributor version”.
A contributor’s “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor’s essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient’s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
- No Surrender of Others’ Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
- Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
- Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
- Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
- Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
one line to give the program's name and a brief idea of what it does. Copyright (C) year name of author This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/. |
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
program Copyright (C) year name of author This program comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’. This is free software, and you are welcome to redistribute it under certain conditions; type ‘show c’ for details. |
The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of the General Public License. Of course, your program’s commands might be different; for a GUI interface, you would use an “about box”.
You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see https://www.gnu.org/licenses/.
The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read https://www.gnu.org/licenses/why-not-lgpl.html.
Manuals
Introduction
- Text input: LilyPond is a text-based music engraver. Read this first!
- Learning: a “must-read” gentle introduction to LilyPond. (details of Learning)
- Glossary: (optional reading) musical terms and translations. (details of Glossary)
- Essay: (optional reading) background information about computer engraving. (details of Essay)
Regular use
- Notation: syntax reference. (details of Notation)
- Usage: running the programs. (details of Usage)
- Snippets: short tricks and tips. (details of Snippets)
Infrequent Use
- FAQ: Frequently Asked Questions.
- Web: this document. (details of Web)
- Changes: what’s new? (details of Changes)
- Extending: fancy tweaks. (details of Extending)
- Internals: tweaks reference. (details of Internals)
Other material
- All: previous stable versions and current as a compressed archive.
- Translated: translation status for non-English readers.
- LilyPond Snippet Repository: user-created examples, hints and tips.
- Video Tutorials: Ben Lemon, a LilyPond user, has created a range of video tutorials on his blog and which are aimed at new users.
- LilyPond’s Scheme: an external tutorial to learn Scheme, the language used to program LilyPond.
- Extending Guide: an external documentation resource about extending LilyPond in Scheme.
- Development: manuals for the unstable version.
- FDL: these manuals are published under the GNU Free Documentation License.
Manual formats
The LilyPond manuals generally come in three formats: split HTML, big HTML and
PDF. Split HTML is good for reading online. Big HTML (and some of these can be
very big) contains the whole manual in a single page. PDF is available for
downloading and using offline. To get to these 3 formats, follow the links
that read details of
and then the manual name.
Learning | ||
Glossary | ||
Essay | ||
Notation | Reference. | |
Usage | ||
Snippets | ||
FAQ | ||
Web | ||
Changes | NEWS. | |
Extending | Programming. | |
Internals | ||
Translated | Translation. | |
All | All manuals. | |
FDL | Licence. |
Learning
Learning manual
This book explains how to begin learning LilyPond, as well as explaining some key concepts in easy terms. You should read these chapters in a linear fashion.
There is a paragraph See also at the end of each section, which contains cross-references to other sections: you should not follow these cross-references at first reading. When you have read all of the manual, you may want to read some sections again and follow those cross-references for more information.
Read it
- Learning (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Learning (big HTML) -
read this manual as one huge HTML page.
(large single download) - learning.pdf -
download as a PDF file.
(large single download, 2.1M)
Glossary
Glossary
This explains musical terms, and includes translations to various languages. If you are not familiar with music notation or music terminology (especially if you are a non-native English speaker), it is highly advisable to consult the glossary.
Read it
- Music glossary (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Music glossary (big HTML) -
read this manual as one huge HTML page.
(large single download) - music-glossary.pdf -
download as a PDF file.
(large single download, 684K)
Essay
Essay
This book gives a brief history of music typography, followed by an examination of LilyPond’s engraving techniques. A comparison between LilyPond and other music engraving systems is given.
Note: the detailed typographical examples are easier to analyze in the PDF version due to its higher resolution.
Read it
- Essay (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Essay (big HTML) -
read this manual as one huge HTML page.
(large single download) - essay.pdf -
download as a PDF file.
(large single download, 1.4M)
Notation
Notation reference
This book explains all the LilyPond commands which produce notation.
Note: the Notation reference assumes that the reader knows basic material covered in the Learning manual and is familiar with the English musical terms presented in the glossary.
Read it
- Notation (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Notation (big HTML) -
read this manual as one huge HTML page.
(large single download) - notation.pdf -
download as a PDF file.
(large single download, 6.8M)
Usage
Usage manual
This book explains how to execute the programs, how to integrate LilyPond notation with other programs, and suggests “best practices” for efficient use. It is recommended reading before attempting any large projects.
Read it
- Usage (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Usage (big HTML) -
read this manual as one huge HTML page.
(large single download) - usage.pdf -
download as a PDF file.
(large single download, 528K)
Snippets
Snippets
This shows a selected set of LilyPond snippets from the LilyPond Snippet Repository (LSR). All the snippets are in the public domain.
Please note that this document is not an exact subset of LSR. LSR is running a stable LilyPond version, so any snippet which demonstrates new features of a development version must be added separately. These are stored in ‘Documentation/snippets/new/’ in the LilyPond source tree.
The list of snippets for each subsection of the Notation are also linked from the See also portion.
Read it
- Snippets (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Snippets (big HTML) -
read this manual as one huge HTML page.
(large single download) - snippets.pdf -
download as a PDF file.
(large single download, 4.3M)
FAQ
Introductory questions
Where are the graphical canvas, menus, and toolbars?
LilyPond requires you to write music as text. Please read about our Text input.
There’s a lot of documentation! Do I need to read it?
You need to read the Learning manual. As for the rest of documentation, you only need to read the sections which discuss the notation that you wish to create.
That’s still a lot of reading! Is it worth it?
Please decide for yourself; the reasons why you might want to use LilyPond are given in the Introduction.
Usage questions
Something isn’t working! How do I fix it?
This is explained in Troubleshooting.
Why do you change the syntax?
This is explained in Why does the syntax change?.
Web
Web
This manual supplies general information about LilyPond. It also contains information about various community forums, bug reporting, and development.
Read it
Latest manual
Web manual in 2.23.10
- Web (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Web (big HTML) -
read this manual as one huge HTML page.
(large single download) - web.pdf -
download as a PDF file.
(large single download, 3.3M)
Changes
Changes
This is a summary of important changes and new features in LilyPond since the previous stable version.
Read it
- Changes (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Changes (big HTML) -
read this manual as one huge HTML page.
(large single download) - changes.pdf -
download as a PDF file.
(large single download, 184K)
Extending
Read it
- Extending (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Extending (big HTML) -
read this manual as one huge HTML page.
(large single download) - extending.pdf -
download as a PDF file.
(large single download, 412K)
Internals
Internals reference
This is a set of heavily cross linked pages which document the nitty-gritty details of each and every LilyPond class, object, and function. It is produced directly from the formatting definitions in the source code.
Almost all formatting functionality that is used internally is available directly to the user. For example, most variables that control thickness values, distances, etc., can be changed in input files. There are a huge number of formatting options, and all of them are described in this document. Each section of the Notation Reference has a See also subsection, which refers to the generated documentation.
Read it
- Internals (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Internals (big HTML) -
read this manual as one huge HTML page.
(large single download) - internals.pdf -
download as a PDF file.
(large single download, 5.2M)
Translated
Translations status
Last updated Fri Aug 27 20:46:02 UTC 2021
LilyPond Changes | fr |
---|---|
Section titles
(878) | Jean-Charles Malahieude
translated partially up to date |
LilyPond — \TITLE\
(1141) | Jean-Charles Malahieude
translated up to date |
Essay on automated music engraving | de | es | fr | hu | it |
---|---|---|---|---|---|
Section titles
(95) | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Hegyi Tamás
Harmath Dénes translated partially up to date | Tommaso Gordini
Federico Bruni translated partially up to date |
LilyPond — \TITLE\
(1141) | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Hegyi Tamás
Harmath Dénes translated partially up to date | Tommaso Gordini
Federico Bruni translated partially up to date |
1 Music engraving
(5318) | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
John Mandereau Gauvain Pocentek translated up to date | Hegyi Tamás
Harmath Dénes translated partially up to date | Tommaso Gordini
Federico Bruni translated partially up to date |
2 Literature list
(382) | Till Paala
translated partially up to date | Francisco Vila
translated up to date | Jean-Jacques Gerbaud
Valentin Villenave Jean-Charles Malahieude partially translated (93 %) up to date | Hegyi Tamás
Harmath Dénes translated up to date | Tommaso Gordini
Federico Bruni translated up to date |
A GNU Free Documentation License
(3723) | Till Paala
partially translated (0 %) up to date | Francisco Vila
partially translated (0 %) up to date | Jean-Charles Malahieude
partially translated (0 %) up to date | Hegyi Tamás
Harmath Dénes partially translated (0 %) up to date | Tommaso Gordini
Federico Bruni partially translated (0 %) up to date |
Extending LilyPond | de | es | fr |
---|---|---|---|
Section titles
(110) | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date |
LilyPond — \TITLE\
(1141) | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date |
1 Scheme tutorial
(6332) | Till Paala
partially translated (54 %) partially up to date | Francisco Vila
translated up to date | Jean-Charles Malahieude
translated up to date |
2 Interfaces for programmers
(5771) | Till Paala
translated partially up to date | Francisco Vila
translated up to date | Valentin Villenave
Jean-Charles Malahieude Gilles Thibault translated up to date |
A GNU Free Documentation License
(3723) | Till Paala
partially translated (0 %) up to date | Francisco Vila
partially translated (0 %) up to date | Jean-Charles Malahieude
partially translated (0 %) up to date |
LilyPond Learning Manual | ca | cs | de | es | fr | hu | it | ja | nl | zh |
---|---|---|---|---|---|---|---|---|---|---|
Section titles
(127) | Walter Garcia-Fontes
Walter Garcia-Fontes translated partially up to date | Pavel Fric
translated partially up to date | Till Paala
Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada translated partially up to date | Jan Nieuwenhuizen
translated partially up to date | Chengrui Li
translated partially up to date |
LilyPond — \TITLE\
(1141) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
translated partially up to date | Till Paala
Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada translated partially up to date | Jan Nieuwenhuizen
translated partially up to date | Chengrui Li
translated partially up to date |
1 Tutorial
(2537) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
partially translated (51 %) partially up to date | Till Paala
Reinhold Kainhofer Michael Gerdau Hajo Bäß translated partially up to date | Francisco Vila
translated partially up to date | Nicolas Grandclaude
Ludovic Sardain Gauvain Pocentek Jean-Charles Malahieude Valentin Villenave John Mandereau translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date | Jan Nieuwenhuizen
partially translated (51 %) partially up to date | Chengrui Li
translated up to date |
2 Common notation
(4529) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
partially translated (38 %) partially up to date | ???
Michael Gerdau translated partially up to date | Francisco Vila
translated up to date | Nicolas Grandclaude
Ludovic Sardain Gauvain Pocentek J.-Charles Malahieude Valentin Villenave John Mandereau translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Tomohiro Tatejima
Masamichi Hosoda Yoshiki Sawada Hiroshi Fukuhara translated up to date | Jan Nieuwenhuizen
partially translated (38 %) partially up to date | Chengrui Li
partially translated (0 %) up to date |
3 Fundamental concepts
(11605) | Walter Garcia-Fontes
partially translated (96 %) partially up to date | Pavel Fric
partially translated (96 %) partially up to date | Till Paala
Reinhold Kainhofer Michael Gerdau partially translated (96 %) partially up to date | Francisco Vila
translated up to date | Valentin Villenave
Jean-Charles Malahieude John Mandereau translated up to date | Griechisch Erika
Harmath Dénes partially translated (96 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Masamichi Hosoda
Tomohiro Tatejima Yoshiki Sawada translated partially up to date | Jan Nieuwenhuizen
partially translated (96 %) partially up to date | Chengrui Li
partially translated (0 %) up to date |
4 Tweaking output
(16466) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
partially translated (51 %) partially up to date | ???
Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Nicolas Klutchnikoff Damien Heurtebise Jean-Charles Malahieude John Mandereau translated up to date | Harmath Dénes
partially translated (0 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Tomohiro Tatejima Yoshiki Sawada Hiroshi Fukuhara translated partially up to date | Jan Nieuwenhuizen
partially translated (95 %) partially up to date | Chengrui Li
partially translated (0 %) up to date |
A Templates
(1238) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
partially translated (75 %) partially up to date | Till Paala
Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Harmath Dénes
partially translated (0 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date | Jan Nieuwenhuizen
partially translated (97 %) partially up to date | Chengrui Li
partially translated (0 %) up to date |
B GNU Free Documentation License
(3723) | Walter Garcia-Fontes
Walter Garcia-Fontes partially translated (0 %) up to date | Pavel Fric
partially translated (0 %) up to date | Till Paala
Michael Gerdau partially translated (0 %) up to date | Francisco Vila
partially translated (0 %) up to date | John Mandereau
Jean-Charles Malahieude partially translated (0 %) up to date | Harmath Dénes
partially translated (0 %) up to date | Federico Bruni
Luca Rossetto Casel partially translated (0 %) up to date | Masamichi Hosoda
Yoshiki Sawada partially translated (0 %) up to date | Jan Nieuwenhuizen
partially translated (0 %) up to date | Chengrui Li
partially translated (0 %) up to date |
LilyPond Notation Reference | ca | de | es | fr | it | ja |
---|---|---|---|---|---|---|
Section titles
(364) | Walter Garcia-Fontes
Walter Garcia-Fontes translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Yoshiki Sawada
Tomohiro Tatejima translated partially up to date |
LilyPond — \TITLE\
(1141) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Yoshiki Sawada
Tomohiro Tatejima translated partially up to date |
1 Musical notation
(91) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Yoshiki Sawada
translated partially up to date |
1.1 Pitches
(5720) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Frédéric Chiasson
Jean-Charles Malahieude Valentin Villenave Jean-Charles Malahieude translated up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
1.2 Rhythms
(7387) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Frédéric Chiasson
Jean-Charles Malahieude Valentin Villenave François Martin Xavier Scheuer translated up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
1.3 Expressive marks
(1949) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
1.4 Repeats
(1291) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
1.5 Simultaneous notes
(3007) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Frédéric Chiasson
Valentin Villenave Jean-Charles Malahieude Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
1.6 Staff notation
(3358) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
1.7 Editorial annotations
(2110) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated partially up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
1.8 Text
(4443) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
Valentin Villenave John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Masamichi Hosoda Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
2 Specialist notation
(109) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
2.1 Vocal music
(5260) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Jean-Jacques Gerbaud translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
2.2 Keyboard and other multi-staff instruments
(907) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
2.3 Unfretted string instruments
(281) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Matthieu Jacquot Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
2.4 Fretted string instruments
(3381) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Matthieu Jacquot
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
2.5 Percussion
(1027) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
2.6 Wind instruments
(353) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
2.7 Chord notation
(2182) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Jean-Charles Malahieude John Mandereau translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
2.8 Contemporary music
(557) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
2.9 Ancient notation
(5565) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Hiroshi Fukuhara translated partially up to date |
2.10 World music
(2009) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Jean-Jacques Gerbaud
Valentin Villenave Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
3 General input and output
(14352) | Walter Garcia-Fontes
partially translated (98 %) partially up to date | Till Paala
partially translated (87 %) partially up to date | Francisco Vila
partially translated (98 %) partially up to date | Jean-Charles Malahieude
Valentin Villenave translated up to date | Federico Bruni
partially translated (98 %) partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
4 Spacing issues
(11207) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Frédéric Chiasson
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
5 Changing defaults
(16755) | Walter Garcia-Fontes
translated partially up to date | Till Paala
partially translated (86 %) partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude Gilles Thibault translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
A Notation manual tables
(3927) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Frédéric Chiasson
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Tomohiro Tatejima
Hiroshi Fukuhara translated partially up to date |
B Cheat sheet
(252) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Valentin Villenave
Jean-Charles Malahieude translated up to date | Federico Bruni
translated partially up to date | Yoshiki Sawada
Tomohiro Tatejima translated partially up to date |
C GNU Free Documentation License
(3723) | Walter Garcia-Fontes
Walter Garcia-Fontes partially translated (0 %) up to date | Till Paala
partially translated (0 %) up to date | Francisco Vila
partially translated (0 %) up to date | John Mandereau
Jean-Charles Malahieude partially translated (0 %) up to date | Federico Bruni
partially translated (0 %) up to date | Yoshiki Sawada
Tomohiro Tatejima partially translated (0 %) up to date |
LilyPond snippets | de | es | fr | it | ja |
---|---|---|---|---|---|
Section titles
(342) | Han-Wen Nienhuys
partially translated (58 %) partially up to date | Han-Wen Nienhuys
partially translated (58 %) partially up to date | Jean-Charles Malahieude
partially translated (58 %) up to date | Federico Bruni
partially translated (58 %) partially up to date | Han-Wen Nienhuys
translated partially up to date |
LilyPond — \TITLE\
(1141) | Han-Wen Nienhuys
translated partially up to date | Han-Wen Nienhuys
translated partially up to date | Jean-Charles Malahieude
translated up to date | Federico Bruni
translated partially up to date | Han-Wen Nienhuys
translated partially up to date |
LilyPond Application Usage | ca | de | es | fr | hu | it | ja |
---|---|---|---|---|---|---|---|
Section titles
(138) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada translated partially up to date |
LilyPond — \TITLE\
(1141) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada translated partially up to date |
1 Running lilypond
(7152) | Walter Garcia-Fontes
partially translated (93 %) partially up to date | Reinhold Kainhofer
Till Paala Till Paala partially translated (93 %) partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Harmath Dénes
partially translated (86 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Tomohiro Tatejima Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
2 Updating files with convert-ly
(2097) | Walter Garcia-Fontes
partially translated (89 %) partially up to date | Till Paala
partially translated (89 %) partially up to date | Francisco Vila
translated up to date | Jean-Charles Malahieude
translated up to date | Harmath Dénes
partially translated (89 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Tomohiro Tatejima
Yoshiki Sawada translated up to date |
3 Running lilypond-book
(4477) | Walter Garcia-Fontes
partially translated (0 %) up to date | Reinhold Kainhofer
Till Paala translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Harmath Dénes
partially translated (13 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
4 External programs
(3051) | Walter Garcia-Fontes
partially translated (0 %) up to date | Till Paala
Reinhold Kainhofer partially translated (88 %) partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
translated up to date | Harmath Dénes
partially translated (0 %) up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Masamichi Hosoda
Tomohiro Tatejima Yoshiki Sawada Hiroshi Fukuhara translated partially up to date |
5 Suggestions for writing files
(2798) | Walter Garcia-Fontes
translated partially up to date | Till Paala
translated partially up to date | Francisco Vila
translated partially up to date | Ludovic Sardain
Jean-Charles Malahieude Jean-Yves Baudais Valentin Villenave John Mandereau translated up to date | Harmath Dénes
partially translated (0 %) up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Tomohiro Tatejima
Yoshiki Sawada translated partially up to date |
A GNU Free Documentation License
(3723) | Walter Garcia-Fontes
partially translated (0 %) up to date | Till Paala
partially translated (0 %) up to date | Francisco Vila
partially translated (0 %) up to date | John Mandereau
Jean-Charles Malahieude partially translated (0 %) up to date | Harmath Dénes
partially translated (0 %) up to date | Federico Bruni
Luca Rossetto Casel partially translated (0 %) up to date | Masamichi Hosoda
Yoshiki Sawada partially translated (0 %) up to date |
LilyPond – Music notation for everyone | ca | cs | de | es | fr | hu | it | ja | nl | pt | zh |
---|---|---|---|---|---|---|---|---|---|---|---|
Section titles
(790) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
translated partially up to date | Jonas Hahnfeld
Till Paala Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Masamichi Hosoda Yoshiki Sawada Yoshinobu Ishizaki translated partially up to date | Jan Nieuwenhuizen
Tineke de Munnik translated partially up to date | Rafael Fontenelle
translated partially up to date | Ben Luo
Anthony Fok translated partially up to date |
LilyPond — \TITLE\
(1141) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
translated partially up to date | Jonas Hahnfeld
Till Paala Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | John Mandereau
translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Tomohiro Tatejima
Masamichi Hosoda Yoshiki Sawada Yoshinobu Ishizaki translated partially up to date | Jan Nieuwenhuizen
Tineke de Munnik translated partially up to date | Rafael Fontenelle
translated partially up to date | Ben Luo
Anthony Fok translated partially up to date |
Introduction
(6069) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
translated partially up to date | Jonas Hahnfeld
Till Paala Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | Gauvain Pocentek
Jean-Charles Malahieude John Mandereau Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Tomohiro Tatejima Yoshiki Sawada Yoshinobu Ishizaki translated partially up to date | Jan Nieuwenhuizen
Tineke de Munnik translated partially up to date | Rafael Fontenelle
translated partially up to date | Ben Luo
Anthony Fok translated partially up to date |
Download
(1113) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
translated partially up to date | Jonas Hahnfeld
Till Paala Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
John Mandereau Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada Hiroshi Fukuhara translated partially up to date | Jan Nieuwenhuizen
Tineke de Munnik translated partially up to date | Rafael Fontenelle
translated partially up to date | Ben Luo
Anthony Fok translated partially up to date |
Manuals
(1284) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
translated partially up to date | Jonas Hahnfeld
Till Paala Michael Gerdau translated up to date | Francisco Vila
translated up to date | John Mandereau
Jean-Charles Malahieude translated up to date | Harmath Dénes
translated partially up to date | Federico Bruni
Luca Rossetto Casel translated up to date | Masamichi Hosoda
Yoshiki Sawada translated up to date | Jan Nieuwenhuizen
Tineke de Munnik translated partially up to date | Rafael Fontenelle
translated partially up to date | Ben Luo
Anthony Fok translated partially up to date |
A GNU Free Documentation License
(3723) | Walter Garcia-Fontes
partially translated (0 %) up to date | Pavel Fric
partially translated (0 %) up to date | Jonas Hahnfeld
Till Paala Michael Gerdau partially translated (0 %) up to date | Francisco Vila
partially translated (0 %) up to date | John Mandereau
Jean-Charles Malahieude partially translated (0 %) up to date | Harmath Dénes
partially translated (0 %) up to date | Federico Bruni
Luca Rossetto Casel partially translated (0 %) up to date | Masamichi Hosoda
Yoshiki Sawada partially translated (0 %) up to date | Jan Nieuwenhuizen
Tineke de Munnik partially translated (0 %) up to date | Rafael Fontenelle
partially translated (0 %) up to date | Ben Luo
Anthony Fok partially translated (0 %) up to date |
Community
(2153) | Walter Garcia-Fontes
translated partially up to date | Pavel Fric
partially translated (91 %) partially up to date | Jonas Hahnfeld
Till Paala Michael Gerdau translated partially up to date | Francisco Vila
translated partially up to date | Jean-Charles Malahieude
John Mandereau translated partially up to date | Harmath Dénes
partially translated (92 %) partially up to date | Federico Bruni
Luca Rossetto Casel translated partially up to date | Masamichi Hosoda
Yoshiki Sawada translated partially up to date | Jan Nieuwenhuizen
Tineke de Munnik partially translated (0 %) up to date | Rafael Fontenelle
translated partially up to date | Ben Luo
Anthony Fok translated partially up to date |
All
Previous stable versions
- LilyPond 2.20 Documentation
- LilyPond 2.18 Documentation
- LilyPond 2.16 Documentation
- LilyPond 2.14 Documentation
- LilyPond 2.12 Documentation
- LilyPond 2.10 Documentation
- LilyPond 2.8 Documentation
- LilyPond 2.6 Documentation
- LilyPond 2.4 Documentation
- LilyPond 2.2 Documentation
- LilyPond 2.0 Documentation
- LilyPond 1.8 Documentation
- LilyPond 1.6 Documentation
FDL
Documentation license
The documentation for GNU LilyPond is published under the GNU Free Documentation License. An introduction to this license, and our reasons for choosing it, is given in Freedom.
GNU Free Documentation License 1.1
Version 1.3, 3 November 2008
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. https://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. |
-
PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
-
APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.
The “publisher” means any person or entity that distributes copies of the Document to the public.
A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
-
VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
-
COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
-
MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
- Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
- List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
- State on the Title page the name of the publisher of the Modified Version, as the publisher.
- Preserve all the copyright notices of the Document.
- Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
- Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
- Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.
- Include an unaltered copy of this License.
- Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
- Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
- For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
- Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
- Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.
- Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.
- Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
-
COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”
-
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
-
AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
-
TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
-
TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.
-
FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See https://www.gnu.org/licenses/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document.
-
RELICENSING
“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.
“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.
“Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.
An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (C) year your name. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. |
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with…Texts.” line with this:
with the Invariant Sections being list their titles, with the Front-Cover Texts being list, and with the Back-Cover Texts being list. |
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
Community
Interacting with the community
- Contact: get help, discuss, and keep in touch!
- Tiny examples: these are highly recommended when discussing LilyPond.
- Bug reports: something went wrong.
Making LilyPond better
- Help us: your assistance is requested.
- Sponsoring: financial contributions.
- Development: for contributors and testers.
- Google Summer of Code: ideas for Google Summer of Code (GSoC).
- Authors: the people who made LilyPond what it is today.
Miscellaneous
- Publications: what we wrote, and have had written about us.
- News: news from the LilyPond project.
- Attic: announcements and changelogs from past versions, old news, etc.
Contact | ||
Tiny examples | ||
Bug reports | ||
Help us | ||
Sponsoring | ||
Development | ||
Google Summer of Code | ||
Authors | ||
Publications | ||
News | ||
Attic |
Contact
User Discussions and Help
User mailing list: lilypond-user@gnu.org
This mailing list is the main place for users to discuss and help each other.
Note: When asking questions, please use Tiny examples!
Other languages
LilyPond Snippet Repository
The LilyPond Snippet Repository is a large collection of user-submitted examples, which can freely be copied and used in your own works. See what other people have written, and add your own!
https://lsr.di.unimi.it
Particularly instructive examples from LSR are included in our official documentation, in Snippets.
Developer Discussions and Translations
Developer mailing list: lilypond-devel@gnu.org
Developer discussions take place on this list. Patches can also be sent here.
Bug mailing list: bug-lilypond@gnu.org
Bug reports and discussions should be sent here. Do not send patches to this list.
Note: Before sending a message to the bug list, please read our guidelines for Bug reports.
Release announcements
Releases mailing list: info-lilypond@gnu.org
This mailing list is a low-volume, read-only list that receives notifications of new releases.
IRC
Some level of support is provided on our IRC channel,
#lilypond@irc.libera.chat
This channel has no public archive, so any question that may be useful for others would better be posted to one of the mailing lists.
Tiny examples
Why create them?
- The simpler the example is, the quicker potential helpers can understand it and help you.
- A tiny example demonstrates that you have put effort towards solving the problem yourself. When people send huge portions of input, it looks like they don’t care if we help them or not.
- Creating a tiny example helps you to understand what is happening. Many false problem reports can be avoided by attempting to create a tiny example; if you cannot replicate a “bug” in a tiny example, then the problem was probably an insufficient understanding of LilyPond, not an actual bug!
How to create them?
-
Include the
\version
number. - Make it small! Examples about spacing or page layout might require many bars of music, but most issues can be reproduced using less than a single measure.
-
When trying to create an example, try commenting out (
%
or%{ … %}
) sections of your file. If you can comment something while still demonstrating the main idea, then remove the commented-material. - Avoid using complicated notes, keys or time signatures, unless the bug is about the behavior of those items.
-
Do not use
\override
or\set
commands unless the bug is about those specific commands. - Optionally, attach an image showing the desired graphical output.
How tiny should they be?
Is the code below a minimal example?
\version "2.14.1" \include "english.ly" \score { \new Staff { \key d \major \numericTimeSignature \time 2/4 <cs' d'' b''>16 <cs' d'' b''>8. %% Here: the tie on the D's looks funny %% Too tall? Left-hand endpoint is not aligned with the B tie? ~ <cs' d'' b''>8 [ <b d'' a''> ] } }
Well, it is not very big, but a truly minimal example is here:
\version "2.14.1" { % middle tie looks funny here: <c' d'' b''>8. ~ <c' d'' b''>8 }
Very few tiny examples exceed 10 lines of code - quite often 4 lines are enough to demonstrate the problem!
Bug reports
If you have input that results in a crash or wrong output, then that is a bug.
Step 1: Known bugs
We may already know about this bug. Check here:
https://gitlab.com/lilypond/lilypond/-/issues
Note: Please DO NOT add bug reports directly to the bug tracker. Once an issue has been added to the tracker, feel free to add more information to that report.
Step 2: Creating a bug report
If you have discovered a bug which is not listed, please help us by creating a bug report.
Note: We only accept reports in the form of Tiny examples. We have very limited resources, so any non-minimal example will be rejected. Almost every bug can be demonstrated in four notes or less!
Here is an example of a good bug report:
% Accidentals should be printed for only % the first note in a tie, but this version % prints flats on both notes. \version "2.10.1" \relative c'' { bes1 ~ bes1 }
Step 3: Sending a bug report
Once you have verified that the issue is not already known and created a bug report, please send it to us!
Unfortunately there is no longer an interface for posting to the bug-lilypond list without subscribing; see
https://lists.gnu.org/mailman/listinfo/bug-lilypond
for more information.
Step 4: Wait for a response
Once your bug report has been sent to the list, our Bug Squad will examine it; they may ask you for more information. You will be notified when the report will be added to the bug tracker. Please allow up to 4 days, as we have a limited number of volunteers for this task.
Once a bug has been added to the tracker, you can comment it to add more information about it. In order to be automatically notified about any activity on the tracker issue, you may subscribe by clicking the envelope symbol next to the issue title.
Optional help: show the desired behavior
Once an issue has been added to the tracker, it can be very helpful if we can see the desired output. Feel free to add input code and/or images (possibly created with other tools) which demonstrate what you think it should look like!
Help us
We need you!
Thank you for your interest in helping us — we would love to see you get involved! Your contribution will help a large group of users make beautifully typeset music.
Even working on small tasks can have a big impact: taking care of them allows experienced developers work on advanced tasks, instead of spending time on those simple tasks.
For a multi-faceted project like LilyPond, sometimes it’s tough to know where to begin. In addition to the avenues proposed below, you can send an e-mail to the lilypond-devel@gnu.org mailing list, and we’ll help you to get started.
Simple tasks
No programming skills required!
-
Mailing list support: answer questions from fellow users.
(This may entail helping them navigate the online documentation;
in such cases it may sometimes be appropriate to point them
to version-agnostic URL paths such as
/latest/
or/stable/
, which are automatically redirected.) - Bug reporting: help users create proper Bug reports, and/or join the Bug Squad to organize Issues.
- Documentation: small changes can be proposed by following the guidelines for Documentation suggestions.
- LilyPond Snippet Repository (LSR): create and fix snippets following the guidelines in Adding and editing snippets.
- Discussions, reviews, and testing: the developers often ask for feedback about new documentation, potential syntax changes, and testing new features. Please contribute to these discussions!
Advanced tasks
These jobs generally require that you have the source code and can compile LilyPond.
Note: We suggest that contributors using Windows or MacOS X do not attempt to set up their own development environment; instead, use Lilydev as discussed in Quick start.
Contributors using Linux or FreeBSD may also use Lilydev, but if they prefer their own development environment, they should read Working with source code, and Compiling.
Begin by reading Summary for experienced developers.
- Documentation: for large changes, see Documentation work.
- Website: the website is built from the normal documentation source. See the info about documentation, and also Website work.
- Translations: see Translating the documentation, and Translating the website.
- Bugfixes or new features: read Programming work.
Sponsoring
Bounties
In the past,
- some users have paid for new features
- some developers have added new features for hire
The LilyPond project does not organize such efforts; we neither endorse nor discourage such agreements. Any contracts between private individuals is the business of those individuals, not ours.
Guidelines
Any user wanting to offer money in exchange for work should bear in mind the following points:
- LilyPond developers may advertise their services on the lilypond email lists from time to time.
- Any agreements between private individuals should include the normal precautions when conducting business: who pays, how much do they pay, with what method of payment, and upon what set of conditions. We suggest that any ambiguity or uncertainty in these questions should be resolved before any work begins.
Development
Development for LilyPond 2.23.10
Note: These are unstable development versions. If you have the slightest doubt about how to use or install LilyPond, we urge you to use the stable Download, and read the stable Manuals.
Release numbers
There are two sets of releases for LilyPond: stable releases, and unstable development releases. Stable versions have an even-numbered ‘minor’ version number (e.g., 2.14, 2.16, 2.18). Development versions have an odd-numbered ‘minor’ version number (e.g., 2.15, 2.17, 2.19).
Download
Instructions for git and compiling are in the Contributor’s Guide.
Documentation writers and testers will generally want to download the latest binary:
GNU/Linux x86_64: LilyPond 2.23.10
macOS x86_64: LilyPond 2.23.10
Contributor’s Guide
LilyPond development is a fairly complicated matter. In order to help new contributors, and to keep the whole system (mostly) stable, we have written a manual for development tasks.
- Contributor’s Guide (split HTML) -
the manual is split between many HTML pages.
(small download for each page) - Contributor’s Guide (big HTML) -
read this manual as one huge HTML page.
(large single download) - contributor.pdf -
download as a PDF file.
(large single download, 1012K)
Regression tests
- Regression tests: This release’s regtests. (pdf version)
- MusicXML tests: This release’s musicXML tests. (pdf version)
- abc2ly tests: This release’s abc2ly tests. (pdf version)
- lilypond-book tests: This release’s lilypond-book tests. (pdf version)
All versions
Manuals
Note: These manuals are for LilyPond 2.23.10; the latest manuals can be found at https://lilypond.org
Introduction | ||
---|---|---|
Learning (split HTML) | Learning (big HTML) | learning.pdf |
Glossary (split HTML) | Glossary (big HTML) | music-glossary.pdf |
Essay (split HTML) | Essay (big HTML) | essay.pdf |
Regular | ||
---|---|---|
Notation (split HTML) | Notation (big HTML) | notation.pdf |
Usage (split HTML) | Usage (big HTML) | usage.pdf |
Snippets (split HTML) | Snippets (big HTML) | snippets.pdf |
Google Summer of Code
What is Google Summer of Code?
GSoC is a global program that offers students stipends to write code for free software and open source projects during the summer. For three months students work to complete a given task as part of the project’s community and under the guidance of experienced mentors. The program is an excellent opportunity for students to gain experience with real-world software development and make a contribution that benefits everyone. It brings new contributors to LilyPond and enables students who are already involved to become more involved. LilyPond participates in GSoC as part of the GNU project.
We have had GSoC participants in 2012, 2015, 2016 and 2017. This site is current for the 2018 program.
Project Ideas List
Below is a list of GSoC project ideas (last update: May 2017), but if you have other ideas for a project you may complete within the three months of the program you’re welcome to make a suggestion on our developer mailing list (see Contact). There are a number of areas where LilyPond could be improved, and our development team is always willing to help those who would like to tackle a project similar to those listed below. As mentor availability varies from project to project and from year to year it is wise to get in touch with us as early as possible.
Per 2018 we have installed the new role of “Community Mentor”. We aim at assigning one Community Mentor to each active project who is not responsible for discussing the implementation or reviewing the code. Instead they will on the one hand discuss the design of the planned features from the (power) user perspective, and they will look after the communication between student and mentor, and between the two and the community.
A full list of all the current open issues can be found here.
Adopt the SMuFL music font encoding standard
For several years now a new standard for music fonts has been around: SMuFL, which is also discussed as becoming part of a future W3C standard for music encoding. As a FLOSS tool LilyPond should adhere to such an open standard instead of using an isolated solution like it does today. Adopting SMuFL will help integrating LilyPond with the world of music notation software and eventually give LilyPond users access to a wider selection of notation fonts.
Making LilyPond compliant to SMuFL includes remapping of the glyphs that are built from METAFONT sources, adjusting the glyphs’ metrics to SMuFL’s specifications, and finally updating the way LilyPond looks up and positions the glyphs. As an optional part of this project LilyPond’s font loading mechanism could be modified to use notation fonts installed as system fonts instead of inside the LilyPond installation.
Difficulty: Easy/medium
Requirements: C++ and willingness to get familiar with LilyPond internals.
Recommended: Interest and experience in working with font files. A little bit of METAFONT.
Mentors: Werner Lemberg, Abraham Lee
Adding variants of font glyphs
- Adding ‘on’ and ‘between’ staff-line variants.
- Shorter and narrower variants of some glyphs for example, accidentals. Another, more specific example could be an ancient notation breve notehead coming in two variants one with a small or big ‘hole’ within it.
Difficulty: easy
Requirements: MetaFont, C++, good eye for details
Recommended knowledge: basic LilyPond knowledge
Mentor: Werner Lemberg
Improve/Extend Export to MusicXML
There is experimental support for exporting scores to MusicXML. So far there is limited coverage that should be extended, and the export should become more robust with regard to unconventionally organized input files. Several strategies can be thought of in that regard.
Significant progress in coverage has been made in a GSoC Project hosted by Frescobaldi in 2017, but there is still much to be done that could make a nice GSoC project.
Working in this project will mainly be done in the python-ly repository.
Difficulty: easy to hard (depending on the targeted improvements)
Requirements: Python, MusicXML
Mentor: Peter Bjuhr
Fix Beaming Patterns/Beam Subdivisions and Tuplets
Subdivision is an important way to improve the readability of beamed music. However, despite several attempts at fixing it LilyPond still does not always produce correct results. In order to properly fix this issue it seems necessary to rewrite the responsible code from the ground up. Much work has already been done assessing the issue (see this discussion and this work-in-progress document).
In the course of this assessment it has been found that LilyPond’s conception of tuplets is somewhat flawed as well (see this discussion), and that this has to be fixed as well.
Difficulty: medium
Requirements: C++
Recommended knowledge: Good musical and mathematical understanding of timing issues
Mentors: Urs Liska, Carl Sorensen
Frescobaldi Extensions
Starting with the current release 3.1 Frescobaldi has an extension API that allows the easy integration of arbitrary functionality in the editing environment. These could range from, say, document statistics and accounting functionality to fancy features like a built-in video chat client or a stock market ticker.
We would welcome project suggestions about arbitrary Frescobaldi extensions of appropriate complexity that add substantial functionality for working with LilyPond scores which might not be suitable to be included into Frescobaldi itself.
As suggestions and examples may serve: a project management extension that can manage repetoire of arbitrary complexity, handle the generation of template files and the compilation process. Or an extension to manage the openLilyLib infrastructure.
Difficulty: easy/medium
Requirements: Python, (PyQt)
Optional: GUILE Scheme (if functionality involves LilyPond internals)
Mentor: Urs Liska
Support for Style Sheets
LilyPond’s engraving output can be tweaked to the least detail, and one important addition in recent years was the ability to use alternative notation fonts. It is possible to create reusable modules for “house styles”, but this project aims at bringing this to a new level by creating a convenient extension package with support for creating, applying, and sharing modular style sheets. We are looking for a hierarchical structure that allows to mix and match style elements for “house” (e.g., “my-personal-style”, “client-a”, “client-b”, etc.), score type, paper size etc.
Work can be built upon the existing notation-fonts openLilyLib package. We would like to see a further improvement of the loading mechanism for notation fonts (for example a better separation of loading notation and text fonts) as part of the project, and optionally (this would involve working on Lilypond’s C++ code) support for notation fonts that are installed system-wide.
Difficulty: medium
Requirements: Scheme, aesthetic competence
Recommended: sense of building hierarchical frameworks
Optional: C++ (for font loading internals)
Mentor: Abraham Lee
Community Mentor: Kieren MacMillan
Contemporary Notation
LilyPond is very good at creating non-standard notation. Having to code every graphical element instead of simply drawing it may seem cumbersome but is in fact a strong asset. New notational functionality can be provided with consistent appearance, automatic layout and a natural syntactic interface.
Within the openLilyLib library system the student will create a fundamental infrastructure and building blocks to make creating contemporary notation easier. Additionally (at least) one concrete package is developed to cover specific contemporary notation, such as for example the style of a given composer, extended playing techniques for a specific instrument or a certain category of effects.
Difficulty: medium
Requirements: Scheme (interaction with LilyPond internals), contemporary notation techniques
Recommended: sense of building hierarchical frameworks
Mentors: NN, Urs Liska
Implement a System to Handle Scores System by System
One strategy that may improve the issue of LilyPond’s compilation time is to handle scores in a system-by-system manner through partial compilation. This project explores one approach to achieve this and may lay the ground for future development towards a “LilyPond server”. It is very ambitions because it involves working with LilyPond’s internals and optionally a reference user interface in Frescobaldi.
The idea behind this project is the implementation of a music viewer that doesn’t display pages but sees a scores as a continuous sequence of systems that are stitched together. LilyPond can produce such a sequence of files, and it can be made aware of the moments of each line break. That way only systems have to be recompiled that are affected by a modification, thus saving significant waiting times. Optionally there could be new engraving modes in LilyPond that don’t try to optimize the line breaking, saving even more time, at least while in content editing mode.
The project is fairly complex and has many more aspects than could be listed on this page. So if you are interested in this please get in touch with us as early as possible to evaluate options and discuss the topics before you write an application.
Difficulty: hard
Requirements: LilyPond/Scheme, Python/PyQt
Optional: C++ if it’s necessary to modify LilyPond itself
Mentors: NN (, Urs Liska)
Community Mentor: Kieren MacMillan
Information for Applicants/Participants
In order to have a satisfying experience with GSoC applicants are strongly advised to thoroughly read the following recommendations. Some of these are relevant for the application process, others for the time within the project.
- Read all applicable information on the program’s website, particularly the students’ manual. Make sure you fulfil all of Google’s prerequisites and are willing to join the program as a full-time commitment over the coding period of three months.
- Please get in touch with us as soon as possible if you are interested in applying with a project. Mentor availability may change without notice, project proposals may need fine-tuning, and many other reasons might require us to reject or ignore an application that hasn’t been discussed before.
- We do not know in advance how many “slots” we will have available for projects, so please be aware that you may find yourself in competition with other applicants or not. Interested or even enthusiastic response from our mentors is no guarantee of eventually being accepted, and not being accepted does not necessarily indicate a negative evaluation of your application. If we have to decide between different applicants there may be various aspects to consider.
- Integration in the LilyPond community is a fundamental part of GSoC, and we expect our students to make substantial efforts to become community members. Within the bonding period we expect you to write a blog post about your project (either on Scores of Beauty or on any other blog) and to be active on our mailing lists, introducing yourself but also communicating about unrelated tasks. This goes beyond the mere setting up of a working environment and familiarizing yourself with the relevant code, but we think it is crucial for the GSoC project to be mutually satisfying.
- If you are accepted to the program you will have one mentor explicitly assigned to your project. With this mentor you will have to agree upon a communication strategy, be it emails, chatrooms, issue trackers or voice/video chats. Regular communication is absolutely crucial for the success of a GSoC project so you are stricly required to keep talking to your mentor. But keep in mind that your mentor has explicitly taken over the responsibility for your project, and while unlike you he isn’t paid for this activity you are still entitled to get regular attention from him.
- In order to get support from your mentor you have to give him a chance to follow your progress and efforts. Therefore it is important to regularly commit your changes to the versioning repository you are working on. Don’t hesitate making unfinished code available because you are afraid of criticism, and don’t suppress questions because you think they might be considered stupid. But ideally your code should at any time be accompanied by compatible testing code. Your mentor may not be able to properly assess your code by only reading it without the opportunity to apply it in a real example.
There is a list of inactive projects in the Attic. We list projects there that are still considered valuable but for which there are currently no mentors available.
Authors
Current Development Team
- Jean Abou Samra: jean@abou-samra.fr, Factotum
- Colin Campbell: cpkc.music@shaw.ca, Patch Meister
- Dan Eble: nine.fierce.ballads@gmail.com, Core developer
- Jonas Hahnfeld: hahnjo@hahnjo.de https://www.hahnjo.de/ Core developer, release unbreaker, GitLab manager
- Phil Holmes: mail@philholmes.net http://www.philholmes.net Build unentangler, Bug squad member
- David Kastrup: dak@gnu.org, hard core developer, user and programming interfaces, bug squashing and swamp drainage.
- Werner Lemberg: wl@gnu.org, Fonts, bug squasher
- Han-Wen Nienhuys: hanwen@xs4all.nl, https://www.xs4all.nl/~hanwen/, Main author
- Francisco Vila: Translation Meister
Previous Development Team
- Mats Bengtsson: mats.bengtsson@ee.kth.se, https://www.kth.se/profile/matben/, Support guru
- Bertrand Bordage: bordage.bertrand@gmail.com, Core developer, font designer
- Trevor Daniels: t.daniels@treda.co.uk, Assistant documentation editor
- Colin Hall: Bug Meister
- Ian Hulin: Core developer
- Reinhold Kainhofer: reinhold@kainhofer.com, https://reinhold.kainhofer.com, Core developer, Music2xml wrangler
- Pedro Kroeger: Build Meister
- Jonathan Kulp: Assistant documentation editor
- James Lowe: Documentation, Patch Meister
- Joe Neeman: Core developer
- Jan Nieuwenhuizen: janneke@gnu.org, https://JoyofSource.com, https://AvatarAcademy.nl, Main author
- John Mandereau: john.mandereau@free.fr, Translation Meister
- Patrick McCarty: SVG guru, bug squad member, bug squasher, text handling
- Graham Percival: https://percival-music.ca, Bug Meister, Grand Documentation Project leader
- Mark Polesky: Documentation, Code cleanup
- Neil Puttock: Core developer
- Jürgen Reuter: reuter_j@web.de, https://www.juergen-reuter.de, Ancient notation
- Mike Solomon: mike@mikesolomon.org, Core developer, Frog Meister
- Erik Sandberg: Bug Meister
- Nicolas Sceaux: Core developer, Schemer extraordinaire
- Carl Sorensen: c_sorensen@byu.edu, Core developer
- Valentin Villenave: Core developer
- Janek Warchoł: janek.lilypond@gmail.com, Core developer
Current Contributors
Programming
Erlend E. Aasland, Kevin Barry, Tim Burgess, Thibaut Cuvelier, Jefferson Felix, David Stephen Grant, Masamichi Hosoda, Martin Joerg, Michael Käppler, Thomas Morley, Lukas-Fabian Moser, Martin Neubauer, Knut Petersen, Valentin Petzel, Pete Siddall, Alen Šiljak, Timofey
Font
Johannes Feulner, Owen Lamb
Documentation
Michael Käppler, Thomas Morley, John Wheeler
Translation
Federico Bruni, Dénes Harmath, Guyutongxue, Chengrui Li, Jean-Charles Malahieude
Previous Contributors
Programming
Erlend Aasland, Maximilian Albert, Aleksandr Andreev, Guido Amoruso, Don Armstrong, Guido Aulisi, Joe Austin, Sven Axelsson, Kevin Barry, Robin Bannister, Kristof Bastiaensen, Étienne Beaulé, Davide Bonetti, Frédéric Bron, Federico Bruni, Nathan Chou, Juliusz Chroboczek, Peter Chubb, Angelo Contardi, Vicente Solsona Della, Hajo Dezelski, Michael Welsh Duggan, Hassan Elfatihi, David Feuer, Bertalan Fodor, Richard Gay, Mathieu Giraud, Frederic Gohier, Lisa Opus Goldstein, Adam Good, John Gourlay, David Stephen Grant, Torsten Hämmerle, Yuval Harel, Andrew Hawryluk, Karlin High, Christian Hitz, Karin Hoethker, Rutger Hofmann, Marc Hohl, Masamichi Hosoda, Bernard Hurley, Yoshinobu Ishizaki, Chris Jackson, Felix Janda, David Jedlinsky, Heikki Junes, Michael Käppler, Thomas Klausner, Marek Klein, Mark Knoop, Michael Krause, Tobias Kretschmar, Jean-Baptiste Lamy, John Lemcke, Patrice Levesque, Vincent Le Ligeour, Jonatan Liljedahl, Urs Liska, Peter Lutek, Kieren MacMillan, Andrew Main, John Mandereau, Hendrik Maryns, Malte Meyn, Thomas Morgan, Thomas Morley, Paul Morris, Lukas-Fabian Moser, Alexander Myltsev, David Nalesnik, Matthias Neeracher, Martin Neubauer, Joram Noeck, Keith OHara, Justin Ohmie, Tatsuya Ono, Antonio Ospite, Benkő Pál, Benjamin Peterson, Knut Petersen, Matthew Peveler, Guy Gascoigne-Piggford, Anders Pilegaard, Henning Hraban Ramm, Nathan Reed, Julien Rioux, Johannes Rohrer, Ben Rudiak-Gould, Stan Sanderson, Andreas Scherer, Johannes Schindelin, Patrick Schmidt, Devon Schudy, Boris Shingarov, Kim Shrier, Edward Sanford Sutton, Adam Spiers, Tim Starling, David Svoboda, Simon Tatham, Heikki Taurainen, Piers Titus van der Torren, Owen Tuz, Sebastiano Vigna, Jan-Peter Voigt, Arno Waschk, Bernhard M. Wiedemann, John Williams, Andrew Wilson, Jaap de Wolff, Milan Zamazal, Rune Zedeler, Boris-Chengbiao Zhou, Rodolfo Zitellini
Font
Jay Anderson, Tom Cato Amundsen, Torsten Hämmerle, Marc Hohl, Masamichi Hosoda, Chris Jackson, Alexander Kobel, Daniel Benjamin Miller, Abraham Lee, Keith OHara, Carsten Steger, Arno Waschk, Rune Zedeler
Documentation
Erlend Aasland, Simon Albrecht, Trevor Bača, Kevin Barry, Bernhard Bloechl, Alard de Boer, Frédéric Bron, Federico Bruni, Torsten Hämmerle, Jay Hamilton, Joseph Harfouch, Andrew Hawryluk, Karlin High, Cameron Horsburgh, Geoff Horton, Masamichi Hosoda, Heikki Junes, Michael Käppler, Kurtis Kroon, Davide Liessi, Urs Liska, Dave Luttinen, Kieren MacMillan, Jean-Charles Malahieude, Malte Meyn, Christian Mondrup, Mike Moral, Thomas Morley, Paul Morris, Eyolf Østrem, Ralph Palmer, Pierre Perol-Schneider, François Pinard, Noam Postavsky, David Pounder, Michael Rasmussen, Till Rettig, Pavel Roskin, Patrick Schmidt, Andrej Shadura, Alberto Simoes, Fr. Samuel Springuel, Guy Stalnaker, Greg Swinford, Martin Tarenskeen, Arnold Theresius, Anh Hai Trinh, Eduardo Vieira, Stefan Weil, Rune Zedeler, Rodolfo Zitellini
Bug squad
Simon Albrecht, James E. Bailey, Federico Bruni, Eluze, Phil Holmes, Derek Klinge, Marek Klein, Urs Liska, Kieren MacMillan, Ralph Palmer, Dmytro O. Redchuk
Support
Simon Albrecht, Eluze, Anthony Fok, Christian Hitz, Marc Hohl, Phil Holmes, Chris Jackson, Heikki Junes, Marek Klein, Urs Liska, Alex Loomis, Kieren MacMillan, Tim McNamara, Thomas Morley, Paul Morris, David Nalesnik, Ralph Palmer, Pierre Perol-Schneider, Neil Puttock, David Svoboda, Tao
Translation
Caio Barros, Alard de Boer, Federico Bruni, Luca Rossetto Casel, Felipe Castro, Abel Cheung, Frédéric Chiasson, Simon Dahlbacka, Orm Finnendahl, Rafael Fontenelle, Pavel Fric, Hiroshi Fukuhara, Walter Garcia-Fontes, David González, Tommaso Gordini, Nicolas Grandclaude, Erika Griechisch, Dénes Harmath, Damien Heurtebise, Masamichi Hosoda, Bjoern Jacke, Matthieu Jacquot, Neil Jerram, Heikki Junes, Nicolas Klutchnikoff, Jean-Charles Malahieude, Adrian Mariano, Christian Mondrup, Tineke de Munnik, Steven Michael Murphy, Till Paala, François Pinard, Gauvain Pocentek, Till Rettig, Ludovic Sardain, Yoshiki Sawada, Thomas Scharkowski, Clytie Siddall, August S. Sigov, Roland Stigge, Tomohiro Tatejima, Paco Tomillo, Risto Vääräniemi, Andrea Valle, Ralf Wildenhues, Olcay Yıldırım
Publications
What we wrote about LilyPond
- Server Acim. GNU/LilyPond (Turkish Language). 2013. (PDF 2100k).
- Graham Percival. Sustainability in F/OSS: developers as a non-renewable resource. In Rencontres Mondiales du Logiciel Libre 2010 (RMLL2010), 2010. (PDF 333k).
- Han Wen Nienhuys and Jan Nieuwenhuizen. LilyPond, a system for automated music engraving. In Colloquium on Musical Informatics (XIV CIM 2003), May 2003. (PDF 95k).
- Han Wen Nienhuys. LilyPond, Automated music formatting and the Art of Shipping. In Forum Internacional Software Livre 2006 (FISL7.0), 2006. (PDF 1095k).
- Margarethe Maierhofer Lischka & Florian Hollerweger. Lilypond: music notation for everyone!. In Linux Audio Conference 2013 (LAC2013), 2013. (PDF 890k).
- Reinhold Kainhofer. OrchestralLily: A Package for Professional Music Publishing with LilyPond and LATEX. In The Linux Audio Conference 2010 (LAC2010), 2010. (PDF 767k).
- Erik Sandberg. Separating input language and formatter in GNU LilyPond. Master’s thesis, Uppsala University, Department of Information Technology, March 2006. (PDF 750k).
- Francisco Vila. Tipografía musical para la educación y análisis de la dinámica del software libre (Spanish language). PhD thesis, Universidad de Extremadura, 2015. (PDF 20M).
What people did with LilyPond
- Kevin C. Baird. Real-time generation of music notation via audience interaction using python and GNU LilyPond. In New Interfaces for Music Expression, May 2005.
- Alexandre Tachard Passos, Marcos Sampaio, Pedro Kröger, and Givaldo de Cidra. Functional Harmonic Analysis and Computational Musicology in Rameau. In Proceedings of the 12th Brazilian Symposium on Computer Music, pages 207–210, 2009.
- Graham Percival, Tosten Anders, and George Tzanetakis. Generating Targeted Rhythmic Exercises for Music Students with Constraint Satisfaction Programming. In International Computer Music Conference, 2008.
- Alberto Simões, Anália Lourenço, and José João Almeida. (J. Neves et al., editor). Using Text Mining Techniques for Classical Music Scores Analysis. In New Trends in Artificial Intelligence, 2007.
If you are aware of any other academic papers which could be listed here, please let us know by writing a message to the bug-lilypond mailing list. If you’re not subscribed yet you can do so on the list’s info page.
News
LilyPond 2.23.10 released June 26, 2022
We are happy to announce the release of LilyPond 2.23.10. This is termed a development release, but these are usually reliable. However, if you require stability, we recommend using version 2.22.2, the current stable release.
LilyPond 2.22.2 released! February 22, 2022
We are proud to announce the release of GNU LilyPond 2.22.2 on 2-22-22. LilyPond is a music engraving program devoted to producing the highest-quality sheet music possible. It brings the aesthetics of traditionally engraved music to computer printouts.
This version includes improvements and fixes since the release of the previous stable release in April 2021.
Attic
Announcements
Announcements and news by version: v2.22, v2.20, v2.18, v2.16, v2.14, v2.12, v2.10, v2.8, v2.6, v2.4, v2.2, v2.0, v1.2, v1.0, v0.1
Descriptive list of changes by version: v2.22, v2.20, v2.18, v2.16, v2.14, v2.12, v2.10, v2.8, v2.6, v2.4, v2.2, v2.0, v1.8, v1.6, v1.4, v1.2
Thanks
Thanks to developers, contributors, bug hunters and suggestions for v2.22, v2.20, v2.18, v2.16, v2.14, v2.12, v2.10, v2.8, v2.6, v2.4, v2.2, v2.0, v1.8
Changelogs
Developers’ changelogs by version: v2.10, v2.3, v2.1, v1.5 (1), v1.5 (2), v1.4, v1.3, v1.2, v1.1, v1.0, v0.1, v0.0
Inactive Google Summer of Code project suggestions
The following list describes GSoC projects that had been proposed in recent years and which are still considered valuable but for which we currently don’t have mentors available.
Automated testing and documentation for openLilyLib
openLilyLib is an extension framework for LilyPond code providing a “snippets” repository and a suite of integrated packages such as for example page layout tools or scholarly annotations. It is very powerful and promising, but to really get off the ground two features are missing: automated testing and documentation generation.
Automated testing is necessary to ensure modifications to functionality don’t break other functions within the library. There is already some Automated Testing of the “snippets” repository with Github’s Travis server, but this has to be reconsidered and extended to cover the standalone packages too.
In order to be usable for a wider range of LilyPond users on a “consumer level” openLilyLib needs proper documentation. This documentation has to be generated from the sources, so a system is needed that requires package authors to document the input files and provide additional usage examples, from which documentation is generated. Ideally but not necessarily this is implemented as a Git hook, i.e., automatically upon each update to the repository. We don’t prescribe the tools and approaches to be used, but the most widely used language in the LilyPond domain is Python, so there would be some bias towards that. Alternatively a Scheme solution could be fine so generating the documentation would actually be triggered by “compiling” a certain LilyPond input file. In general it is advisable to make use of proven concepts and tools from other languages.
The eventual output of the documentation should be a static HTML site that can be viewed locally and/or uploaded to a website. But it would be beneficial if the tool would first generate an intermediate representation (e.g., a JSON file with additional media files) from which a Single Page Application could retrieve content for display on openLilyLib’s website. Development of such a SPA can be part of the GSoC project, but is optional.
Difficulty: medium
Requirements: Python or Scheme, static website generator(s) or (Node.js based) dynamic web application technology. Continuous Integration (can be learned during the bonding period)
MusicXML
Improving MusicXML import and export functions:
File interchange between LilyPond and other applications using MusicXML
is still a difficult matter. To import MusicXML it has to be converted
manually by the musicxml2ly
script. Export to MusicXML is
only available as a rudimentary feature inside Frescobaldi. In order to
provide natural interchange between LilyPond and MusicXML based
applications there’s the need of actual import functionality and a
dedicated export backend.
Importing XML shall provide file, line and column to add origin attributes to generated objects. That way point and click can be made available in Frescobaldi or other supported IDEs.
Exporting XML shall be realized with an exporter class like the MIDI export. This may be based on the work already done in GSoC 2015 by David Garfinkle. It should be checked if it is possible to use another XML library than the one provided by guile-2 in order to have this feature available in current LilyPond (which is based on guile-1.8).
Difficulty: medium
Requirements: MusicXML, Python, Scheme, basic LilyPond knowledge
Recommended: Familiarity with other scorewriters (for cross-testing)
Improve slurs and ties
The engraving quality of slurs and ties is often unsatisfactory. Ties ‘broken’ by clef or staff changes are not handled well. The project could include collecting and sorting examples of bad output, deciding on the intended output and writing code to improve them.
Difficulty: hard
Requirements: C++, experience with writing heuristics
Recommended knowledge: LilyPond knowledge, aesthetic sense
Grace notes
Fix problems with synchronization of grace notes. Grace notes can interfere with LilyPond’s timing and cause odd effects, especially when multiple staffs are used where some have grace notes and others don’t. This is one of the longest-standing and one of the more embarrassing bugs in LilyPond.
Difficulty: medium
Requirements: C++, MIDI
Recommended: familiarity with LilyPond internals
Improve default beam positioning
For regular, cross-staff, broken and kneed beams. Beaming should depend on context and neighbor notes (see section 2.2 of this book). If possible also reduce beaming-computation time.
Difficulty: medium
Requirements: C++, experience with writing heuristics
Recommended knowledge: aesthetic sense
Help improve compilation behavior
Automatic code analysis tools, like valgrind memory leak detection or callgrind code profilers, provide valuable information about possible flaws in our C++ code. Cleaning up warnings would allow us to automate the rejection of any patch which introduced extra warnings.
Difficulty: medium
Requirements: C++