| LilyPond | ||||
|---|---|---|---|---|
| Ontwerp en ontwikkeling | ||||
| Categorie | music engraving, muzieknotatiesoftware | |||
| Ontwerper(s) | Han-Wen Nienhuys, Jan Nieuwenhuizen, Graham Keith Percival | |||
| Ontwikkelaar(s) | Ontwikkelgroep LilyPond | |||
| Besturingssysteem | GNU/Linux, BSD, Windows, macOS | |||
| Geschreven in | C++, Python, Scheme | |||
| Status en tijdlijn | ||||
| Uitgebracht | 1 augustus 1997 (29 jaar geleden) | |||
| Recentste versie | 2.26.0 (19 april 2026) | |||
| Recentste bètaversie | 2.27.1 (6 juni 2026) | |||
| Onderdelen | ||||
| Maakt gebruik van | LilyPond notation | |||
| Licentie(s) | GNU General Public License v3.0 or later | |||
| Links | ||||
| Website | https://lilypond.org | |||
| Versiebeheer | Broncode | |||
| ||||
LilyPond is muzieknotatiesoftware die is bedoeld om met zo weinig mogelijk handelingen goed opgemaakte bladmuziek te maken naar voorbeeld van traditioneel gegraveerde muziek. Het idee is dat componisten, bewerkers en uitgevers hun aandacht liever richten op het schrijven van muziek dan op het verbeteren van de leesbaarheid ervan, en dat prettig leesbare bladmuziek uitvoerende musici steunt.
Gebruikers beschrijven muziek in lilypondnotatie, de opmaaktaal van LilyPond. Dan start de gebruiker LilyPond, dat op basis van de beschrijving bladmuziek maakt. LilyPond is vrij en crossplatform.
LilyPond maakt de bladmuziek zonder tussenkomst van de gebruiker. Het programma optimaliseert het aantal maten in een notenbalk en het aantal notenbalken of systemen op een pagina, en ook de plaatsing van noten, tekst, dynamische tekens, wijzigingstekens, waardestrepen en andere muzieksymbolen, en het vermijdt onderlinge botsingen van muzieksymbolen.
De gebruiker kan alle instellingen voor de opmaak en de typografie aanpassen. Aanwijzingen en instellingen zijn mogelijk voor de hele compositie, voor delen ervan en voor individuele noten en muzieksymbolen. Alle instellingen en aanwijzingen voor de opmaak zijn onderdeel van de beschrijving van de muziek.
Later ingevoerde wijzigingen, uitbreidingen en inkortingen zijn niet in het resultaat gemarkeerd of herkenbaar en hebben geen invloed op de kwaliteit van de bladmuziek.
De documentatie van LilyPond suggereert gebruikers om de bestanden met de beschrijving van muziek de bestandsextensie .ly te geven.
LilyPond slaat de aangemaakte bladmuziek standaard op in Portable document format (PDF-bestanden). PostScript (PS-bestanden), Scalable Vector Graphics (SVG-bestanden) of Encapsulated PostScript (EPS-bestanden) zijn ook mogelijk. Ook kan LilyPond Portable network graphics (PNG-bestanden) maken, maar de resolutie van dit bestandsformaat is beperkt.
Daarnaast kan LilyPond geluidsbestanden oftewel Audiobestanden maken. Geluidsbestanden hebben het midi-bestandsformaat.
LilyPond biedt beperkte mogelijkheden voor conversie van MusicXML-bestanden, MIDI-bestanden en Finale-bestanden naar lilypondnotatie.
LilyPond kan muziekbeschrijvingen in ABC-notatie lezen en op basis daarvan bestanden met bladmuziek en geluid maken.
LilyPond biedt geen ondersteuning voor uitvoer of conversie naar bestandsformaten van andere muzieknotatieprogramma's of naar MusicXML.
Gebruikers kunnen de programmeertaal scheme gebruiken om mogelijkheden aan LilyPond toe te voegen of om het programma aan te passen.
De gebruiker beschrijft de muziek in de opmaaktaal van LilyPond, de lilypondnoatie. Muziekbeschrijvingen in lilypondnotatie bestaan uit tekst die voor mensen leesbaar en begrijpelijk is en met een computertoetsenbord ingevoerd kunnen worden.
Alle programma's waarmee platte tekst ingevoerd kan worden zijn geschikt voor het maken van muziekbeschrijvingen. Platte tekst is tekst zonder opmaak. Alle broncode-editors en teksteditors zijn bruikbaar, en vrijwel alle tekstverwerkers. Veel gebruikers gebruiken broncode-editors die syntaxiskleuring bieden. Alle tekens die voor de lilypondnotatie nodig zijn zitten op vrijwel elk toetsenbord. Een muis is niet per se nodig.
Invoeren van muziek via een grafische interface en een realtime previewfunctie is mogelijk via programma's als LilyPondTool, Frescobaldi en Denemo. Sommigen daarvan hebben syntaxiskleuring, automatische aanvulling van sleutelwoorden en/of extra LilyPond-modellen.
Het Mutopia-archief en Musipedia verspreiden vrije bladmuziek en maken hiervoor gebruik van lilypond. De beschrijvingen van de muziek in lilypondnotatie zijn ook beschikbaar. Sommige bladmuziek in de IMSLP Petrucci Partiturenbiliotheek is ook in lilypondnotatie beschikbaar.
In de beschrijving hieronder staan de eerste twee maten van 'Op een grote paddenstoel' in lilypondnotatie.
<score>
\relative c'' {
c4 c c d e e e2
}
\addlyrics {
Op een gro -- te pad -- den -- stoel,
}
</score>
De uitleg hiervan staat verderop onder het kopje lilypondnotatie. Hieronder staat precies dezelfde beschrijving, maar nu zonder de aanduiding dat deze beschrijving als code zichtbaar moet zijn. Dankzij de ondersteuning van de MediaWikisoftware is dit notenschrift het resultaat:
Hieronder een beschrijving van 'Fire Breathers!' van de Finse componist Urpo Lankinen.
<score raw = 1 sound = 1>
\version "2.22"
%% Language upgrade helper.
%% Theme to "Fire Breathers", a homebrew NES game perpetually
%% under development. Composed by Urpo Lankinen.
%% Note: The composer has made this source code available
%% to Wikipedia under the GFDL license. Other versions outside
%% Wikipedia are typically under CC BY-SA license.
%% This file uses Finnish note names (for example, where
%% Americans use "F#" and "Bb", Finns use "Fis" and "B").
%% Dutch note names are used by default.
\language "suomi"
%% The header block defines the titles and texts.
\header {
title = "Theme to ``Fire Breathers!''"
instrument = "For the 2A03 or SID"
composer = "Urpo Lankinen"
enteredBy = "Urpo Lankinen"
updatedBy = "Jan Nieuwenhuizen, Marten de Vries"
date = "June 2005"
tagline = ##f
}
Melody = \relative c'' {
\clef treble
\time 3/4
\key a \minor
\partial 4
a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. | e2
a4 | e'4.( d8[ c]) r8 | d4.( e8[ f]) r8 | e2. | r2
e4 | f4.( e8[ d]) r8 | d4.( c8[ h]) r8 | a2. | e2
a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. ~ a2 r4 | \bar " | ."
}
%% This is the second voice.
SecondVoice = \relative c {
\clef bass
\time 3/4
\key a \minor
\partial 4
r4 | e2. | d2. | a2. | e2
a4 | e'2. | d2 f4 | e2. | r2.
| f2. | d2. | a2. | e2
a4 | e'2. | d2 h4 | a2. ~ a2 r4 | \bar " | ."
}
%% Melodies, lyrics and chords can be assigned to a variable and then
%% be *reused* elsewhere. Here are three different accompaniment
%% ,patterns, which are used throughout the accompaniment melody.
AccompA = \relative c { a4 e'8 a, e' a, | }
AccompB = \relative c { g4 d'8 g, d' g, | }
AccompC = \relative c { e,4 h'8 e, h' e, | }
Accompaniment = {
\clef bass
\time 3/4
\key a \minor
\partial 4
r4 | \AccompA \AccompB \AccompA \AccompA
\AccompA \AccompB \AccompA \AccompA
\AccompC \AccompC \AccompA \AccompA
\AccompA \AccompB \AccompA | a2 r4 | \bar " | ."
}
%% The top level music definition.
\score {
<<
\new StaffGroup \with { midiInstrument = bagpipe } <<
\new Staff \Melody
\new Staff \Accompaniment
\new Staff \SecondVoice
>>
>>
\layout { }
\midi { \tempo 4 = 116 }
}
</score>
Deze beschrijving is met LilyPond omgezet in het notenschrift dat hieronder staat.

De lilypondnotatie is de opmaaktaal van LilyPond. De belangrijke semantische elementen zijn noten, ornamenten, lijnen, commando's, haakjes (tekens voor groepering), commentaar en uitbreidingen.
In het Nederlands noteert de gebruiker de stamtonen met de kleine letters c, d, e, f, g, a en b. Voorbeelden van tonen met wijzigingstekens zijn bes, es en fis. Omdat de namen van tonen per taal verschillen moet de gebruiker aangegeven in welke taal hij tonen noteert. Wat bijvoorbeeld een bes is in het Nederlands, is in het Engels B-flat, in het Duits b en in het Frans si-bémol. LilyPond ondersteunt namen van tonen in twaalf talen.
Komma's of quotes direct na de toonnaam geven het octaaf aan. De toon c' is de centrale c en de laagste stamtoon van het 'eengestreept octaaf'. De toon a' zit ook in het eengestreept octaaf en wordt wel de stemtoon genoemd. De toon c is een octaaf lager dan de toon c', en de toon c, is weer een octaaf lager.
Cijfers geven de duur van een noot aan. Als een volgende noot dezelfde duur heeft als de voorgaande noot, dan is het niet nodig om bij die volgende noot de duur aan te geven.
c'2.. Een punt alleen is niet voldoende, het cijfer moet ervoor.Articulatietekens worden voorafgegaan door een liggend streepje - na de noot.
c4-. geeft een kwartnoot c aan met een staccato-teken. LilyPond bepaalt zelf of dit ornament boven of onder de noot wordt geplaatst. Alternatieven voor het liggende streepje zijn een underscore _ en een los accent circonflexe ^; daarmee dwingt te gebruiker af dat het ornament onder respectievelijk boven de noot wordt geplaatst.De aanduiding van ornamenten oftewel versieringen wordt voorafgegaan door en \, zoals in c'2\trill. Dynamische tekens worden aangegeven met bijvoorbeeld \pp en \mf.
Lijnen, zoals legatobogen en crescendotekens, kennen en begin- en een eindpunt. Het begin respectievelijk het eind van een legatoboog wordt aangegeven met ronde haakjes, ( en ). Voor een crescendoteken zijn dit \< respectievelijk \!. Een overgebonden noot wordt aangegeven met een tilde: ~, bijvoorbeeld b~ b.
Wat tussen accolades { en } genoteerd wordt, wordt na elkaar afgespeeld. Als muziek meerstemmig is, dan worden muziekpartijen gelijktijdig gespeeld. Dat wordt aangegeven met dubbele groter-dan of kleiner-dan tekens << en >>.
Commando's bestaan uit een backslash \, gevolgd door een woord en vaak nog meer. Met \time wordt een maatsoort aangegeven (bijvoorbeeld \time 3/4, met \key de toonsoort (altijd gevolgd door \major of \minor en met \clef de muzieksleutel.
Let wel: key betekent dus niet sleutel.
Met \relative wordt aangegeven dat het octaaf van de volgende noten niet absoluut wordt aangegeven, maar relatief ten opzichte van de voorgaande noot. Dan is het interval tussen de stamtoon van een noot en de stamtoon van de vorige noot een kwart of minder. De gebruiker kan dat interval naar beneden of naar boven bijstellen met komma's repectievelijk quootjes.
Het commando \addlyrics voegt een liedtekst toe. Lettergrepen worden gescheiden door een spatie, twee afbreekstreepjes en weer een spatie -- . Dat stelt LilyPond in staat om de woorden correct onder de noten te plaatsen. LilyPond heeft meerdere mogelijkheden om melismes, klanken over meerdere noten, te noteren.
Met \markup kan de gebruiker teksten opmaken.
Kort commentaar begint met een procentteken %. Als commentaar meerdere regels omvat begint het met %{ en eindigt het met %}.
De gebruiker kan naast de lilypondnotatie ook gebruik maken van de scripttaal waarin LilyPond zelf voor een belangrijk deel is geschreven. Gebruikers kunnen hiermee zelf extra mogelijkheden aan LilyPond toevoegen. Dit biedt gebruikers ook een weg om door te groeien naar ontwikkelaar.
LilyPond is vrije software. Dat betekent onder andere dat het gebruik ervan kosteloos is, ook bij commercieel gebruik.

LilyPond werkt op de besturingssystemen GNU/Linux, MacOS X en Windows.
De gebruiker kan LilyPondmuziek invoegen in LaTeX en HTML. Met behulp van OOoLilyPond kan dat ook in OpenOffice.org en er zijn Plug-ins voor het gebruik van lilypondnotatie in verschillende blogs. De Wiki-software MediaWiki, die voor Wikipedia gebruikt wordt, ondersteunt LilyPond sinds 2013. Zo kan met de lilypondnotatie notenschrift toegevoegd worden aan teksten.
De kern van LilyPond bestaat uit modules die in C++ zijn geprogrammeerd. De meeste mogelijkheden die LilyPond biedt zijn geprogrammeerd met de ingebouwde scripttaal Guile, die deze modules gebruikt en combineert. Guile is een dialect van Scheme. De omvang van de code is bijna 600.000 regels, waarvan bijna 240.000 regels in C++ en ruim 100.000 regels in Guile.
De muzieksymbolen van het standaardnotenschrift van LilyPond zijn gemaakt met Metafont en de documentatie van LilyPond is gegenereerd met Python en Make. Flex en GNU Bison ontleden of 'parsen' de beschrijvingen en zetten daarmee de eerste stappen van het vertalen van de beschrijving naar de uitvoer. PostScript en SVG worden gebruikt bij het maken van van de uitvoer.
Lilypond is een consoletoepassing. Dat betekent dat de gebruikersinterface volledig op tekst is gebaseerd en dat gebruiker het programma start met een startcommando dat hij invoert in de commandoregel van het besturingssysteem van de computer. Het startcommando om bevat minimaal de naam 'lilypond' en de naam van het tekstbestand met de muziekbeschrijving. Nadat invoeren van het startcommando interpreteert en verwerkt het programma de muziekbeschrijving zonder verdere tussenkomst van de gebruiker. Het resultaat is een logbestand met een beschrijving van de stappen van het compileren oftewel het maken van de bladmuziek. Het programma controleert de beschrijving en schrijft eventuele waarschuwingen en foutmeldingen ook in het logbestand. Als het geen fouten vindt maakt het ook de bladmuziek en audiobestanden zoals de beschrijving dat aangeeft.
Bij een computer met een grafisch besturingssysteem, zoals MS-Windows, kan het starten ook door te (dubbel)klikken op de bestandsnaam van het tekstbestand met de beschrijving van de muziek.
De softwarevoetafdruk van LilyPond is klein. De gebruiker plaatst de bestanden met de software in het vaste geheugen van de computer om LilyPond gebruiksklaar te maken. De gebruiker hoeft geen instellingen van de computer te wijzigen en er is geen installatieprogramma.
Han-Wen Nienhuys en Jan Nieuwenhuizen begonnen de ontwikkeling van LilyPond in 1996 en presenteerden de eerste versie, met versienummer 0.1, op 1 augustus 1997. De naam is terug te voeren op Rosegarden, een eerder project, en op een kennis van Nienhuys, Suzanne. Haar naam komt uit het Hebreeuws en betekent lelie.
LilyPond 1.0 verscheen op 31 juli 1998. Vanaf die versie heeft het een eigen muziekschrift, Feta. LilyPond 2.0 verscheen op 24 september 2003. Deze versie bracht een vereenvoudigde syntaxis en veel nieuwe mogelijkheden om verschillende muziekstijlen weer te geven. In 2026 heeft LilyPond een actief ontwikkelteam en een actieve gebruikersgemeenschap.
LilyPond heeft stabiele versies en ontwikkelversies. Stabiele versies hebben een versienummer met een even nummer na de eerste punt, zoals 2.20, 2.22 en 2.24. Ontwikkelversies hebben een versienummer met een oneven nummer na de eerste punt, zoals 2.21, 2.23 en 2.25.
De pakketten Dorico van Steinberg en MuseScore zijn bekende muzieknotatieprogramma's die nog actief ontwikkeld worden en waarvoor gebruikersondersteuning is.