Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 History  



1.1  Version 1.0  





1.2  Version 2.0  







2 Design  





3 Software features  





4 Overview of input syntax  





5 Example of LilyPond input file  



5.1  Corresponding output  





5.2  More complex output  







6 Collaboration with other projects  



6.1  Integration into MediaWiki  





6.2  Integration into text using lilypond-book  





6.3  Integration into LaTeX  







7 Comparison to other scorewriters  





8 See also  





9 References  





10 External links  














LilyPond






العربية
Català
Čeština
Deutsch
Español
Esperanto
Euskara
فارسی
Français

Italiano
Latina
Latviešu
Magyar
Bahasa Melayu
Nederlands

Norsk bokmål
Polski
Português
Русский
Suomi
Türkçe
Українська


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from GNU LilyPond)

LilyPond
Developer(s)David Kastrup, Werner Lemberg, Han-Wen Nienhuys, Jan Nieuwenhuizen, Carl Sorensen, Janek Warchoł, et al.[1]
Initial release1 August 1997; 26 years ago (1 August 1997)
Stable release

2.24.3[2] Edit this on Wikidata / 19 November 2023

Preview release

2.25.17[3] Edit this on Wikidata / 15 June 2024

Repository
Written inC++, Scheme, Metafont, PostScript, Python[4]
Operating system
  • Mac OS X 10.4 and later
  • Linux
  • FreeBSD[5]
  • Size20–100 MB
    Standard(s)EPS, MIDI, MusicXML, PDF, PS, SVG
    Available inCatalan, Dutch, English, French, German, Hungarian, Italian, Japanese, Spanish
    TypeMusic software, scorewriter
    LicenseGPL-3.0-or-later[6]
    Websitelilypond.org Edit this on Wikidata

    LilyPond is a computer program and file format for music engraving. One of LilyPond's major goals is to produce scores that are engraved with traditional layout rules, reflecting the era when scores were engraved by hand.

    LilyPond is cross-platform, and is available for several common operating systems; released under the terms of the GNU General Public License, LilyPond is free software and part of the GNU Project.

    History[edit]

    The LilyPond project was started in 1996 by Han-Wen Nienhuys and Jan Nieuwenhuizen, after they decided to abandon work on MPP (MusiXTeX PreProcessor), a project they began collaborating on in 1995.[7][8] Its name was inspired both by the Rosegarden project and an acquaintance of Nienhuys and Nieuwenhuizen named Suzanne, a name that means lily in Hebrew (שׁוֹשַׁנָּה).[9]

    Version 1.0[edit]

    LilyPond 1.0 was released on July 31, 1998, highlighting the development of a custom music font, Feta, and the complete separation of LilyPond from MusiXTeX.[10]

    Version 2.0[edit]

    LilyPond 2.0 was released on September 24, 2003, announcing a simplified syntax model and a much more complete set of facilities for notating various styles of music.[11]

    Design[edit]

    Screenshot of LilyPond running on Linux

    LilyPond is mostly written in C++ and uses Scheme (interpreted by GNU Guile) as its extension language, allowing for user customization.[12] It has a relatively large codebase; as of March 10, 2017, the source includes over 600,000 lines of C++, 140,000 lines of Scheme, and 120,000 lines of Python code.[13]

    It uses a simple text notation for music input, which LilyPond interprets and processes in a series of stages.[14] In the final stage, music notation is output to PDF (via PostScript) or other graphical formats, such as SVGorPNG. LilyPond can also generate MIDI files that correspond to the music notation output.

    LilyPond is a text-based application, so it does not contain its own graphical user interface to assist with score creation. (However, a text-editor based "LilyPad" GUI for Windows and MacOS is included by default on these systems.) It does, however, have a flexible input language that strives to be simple, easing the learning curve for new users. LilyPond adheres to the WYSIWYM paradigm; the workflow for typesetting music notation with LilyPond is similar to that of preparing documents with LaTeX.

    LilyPond supports experimental musical notation. Its guitar facilities support alternative tunings, such as major-thirds tuning.[15]

    Software features[edit]

    Beethoven's Symphony No. 5 music sheet printed from a digitally engraved PDF file produced by LilyPond; released by the Mutopia Project

    LilyPond's primary goal is to produce output comparable to professionally engraved scores instead of output that looks mechanical and computer-generated. An essay from the LilyPond website, written by LilyPond developers, explains some typographical issues addressed by LilyPond:[16]

    Overview of input syntax[edit]

    The native input language for LilyPond is comprehensive, and consists of many commands needed for expressing any sort of articulation, dynamic, meter, etc. It is similar to that of TeX. The ability to embed Scheme code within a LilyPond source file permits arbitrary extensions to the input language and assists with algorithmic composition. Some general syntactic features are listed below.

    LilyPond's interface with Pango requires the input character encoding to be UTF-8.[23] One benefit of this is that more than one language can be included in the same source file.

    Example of LilyPond input file[edit]

    \version "2.22.2"
    
    \include "english.ly"
    
    \header {
      title = \markup { "Excerpt from" \italic "fibonacci" }
      composer = "Patrick McCarty"
      %  copyright = \markup \fontsize #-5 
      %  {
      %    Copyright © 2009.
      %    Typeset with GNU LilyPond.
      %    Released into public domain by the composer.
      %  }
    }
    
    \paper {
      paper-height = 4.6\in
      paper-width = 8.5\in
      indent = #0
      system-count = #2
    }
    
    \score {
      \new PianoStaff = "pianostaff" <<
        \new Staff = "RH" \relative c' {
          \accidentalStyle Score.piano
          \clef "treble"
          \time 2/4
          \set Score.currentBarNumber = #51
          \tempo "Slow and steady" 4 = 60
          <e gs,>4 \acciaccatura { cs16[ ds] } <e gs,>4 | % m. 51
          <ds gs,>4 \acciaccatura { e16[ ds] } <cs gs>4 | % m. 52
          <cs gs>4 \acciaccatura { ds16[ cs] } <c g>4  | % m. 53
          <cs gs>4 \acciaccatura { ds16[ e] } <es bs gs>4 | % m. 54
    
          <e gs,>4 \acciaccatura { cs16[ ds] } e16 f gs a | % m. 55
          <gs c,>8 \acciaccatura { as16[ gs] }
          <es b>8 ~ <es b>16 ds b as | % m. 56
    
          b16 d8 bf32 f' g16 af bf c | % m. 57
          <df df,>16 ( c af ) <e' e,> ( ds b ) <g' g,> ( ds | % m. 58
    
          \time 3/4
          <gs gs,>16 ) \noBeam d,16 f gs
          a16 e f b
          c16 d, ( f gs | % m. 59
    
          a16 b ) e, ( f
          gs16 b c ) f, (
          gs16 as b c ) | % m. 60
        }
    
        \new Dynamics = "Dynamics_pf" {
          s4 \p \< s4 | % m. 51
          s4 s4 | % m. 52
          s4 \mp \> s4 | % m. 53
          s4 s4 \! | % m. 54
          s4 \p s4 | % m. 55
          s1 * 2/4 | % m. 56
          s4 \< s4 | % m. 57
          s4 s4 | % m. 58
          \override DynamicText.extra-spacing-width = #'(-0.75 . 0.75)
          s16 \mf s16 \p s8 s4 s4 | % m. 59
          s2. | % m. 60
        }
    
        \new Staff = "LH" \relative c, {
          \clef "bass"
          \time 2/4
          cs4. cs8 | % m. 51
          cs4. d8 | % m. 52
          f4. a8 | % m. 53
          f4. d8 | % m. 54
    
          cs4. cs8 | % m. 55
          d4 ds | % m. 56
          gs4. bf,8 | % m. 57
          f'4 b, | % m. 58
    
          \time 3/4
          d4. d8 ~ d4 | % m. 59
          ef2 f4 | % m. 60
        }
      >>
    }
    

    Corresponding output[edit]

    Rendered output

    More complex output[edit]

    Lilypond can also create extensively customised output. An example is the short extract of a Karlheinz Stockhausen piano piece below.

    Excerpt from “Klavierstück II” by Stockhausen as a rendering example

    Collaboration with other projects[edit]

    First measuresofAdeste Fideles, generated by LilyPond.

    Several graphical scorewriters—such as Rosegarden, NoteEdit, Canorus, Denemo, and TuxGuitar—can export files directly to LilyPond format. Other graphical applications serve as front ends to LilyPond, including Frescobaldi and the LilyPondTool plugin for jEdit. Denemo integrates the PDF output of LilyPond in its display, allowing some editing operations on the final typeset score.

    The Mutopia Project, which distributes free content sheet music, uses LilyPond to typeset its music, as does Musipedia, a collaborative music encyclopedia.

    Emacs' org-mode contains support for embedding LilyPond scores into documents.[24]

    OOoLilyPond, a LibreOffice extension provides support for calling LilyPond to embed scores into documents.[25]

    Integration into MediaWiki[edit]

    Lilypond is available in MediaWiki via the Score extension code. This, for example, transforms the notation

    <score sound="1">\relative c' { f d f a d f e d cis a cis e a g f e }</score>
    

    into

    \relative c' { f d f a d f e d cis a cis e a g f e }

    The above excerpt is a simplified version of Solfeggio in C Minor by C.P.E. Bach. More complex scores, including lyrics, are also possible within MediaWiki wikis. See Pastime with Good Company for an example of this.

    Integration into text using lilypond-book[edit]

    Integration of LilyPond musical elements into various document formats (both TeX-based systems such as LaTeX and Texinfo, and also DocBook and HTML pages) is natively supported through the companion program lilypond-book, developed and maintained by the LilyPond community.[26] This allows users to embed musical elements within texts, such as musicology, song booklets, work sheets for teaching, and school examinations.

    Integration into LaTeX[edit]

    For integration into the LaTeX document preparation system, lyLuaTeX has been developed as a LuaLaTeX package to embed musical elements within texts. It includes features for matching layout and appearance of the musical elements with the surrounding text document.[27] Music elements may consist of music symbols, song lyrics, guitar chords diagrams, lead sheets, music excerpts, guitar tablatures, or multi-page scores.

    Comparison to other scorewriters[edit]

    Finale and Sibelius are two proprietary scorewriters often compared to LilyPond. Andrew Hawryluk, a LilyPond user, wrote a series of articles comparing output quality between Finale and LilyPond.[28]

    Another scorewriter with comparable features to LilyPond is SCORE, but SCORE relies on manual positioning more than Lilypond does.

    See also Comparison of scorewriters.

    See also[edit]

  • Common Music Notation
  • Denemo
  • Frescobaldi
  • GUIDO music notation
  • Impro-Visor
  • MuseScore
  • MusicXML
  • MusiXTeX
  • NoteEdit
  • Philip's Music Scribe
  • Rosegarden
  • SCORE (software)
  • List of music software
  • List of scorewriters
  • References[edit]

    1. ^ "Authors". LilyPond Development team. Retrieved March 21, 2015.
  • ^ Jonas Hahnfeld (November 19, 2023). "LilyPond 2.24.3 released!".
  • ^ Jonas Hahnfeld (June 15, 2024). "LilyPond 2.25.17".
  • ^ "Source tarball". lilypond.org. Retrieved March 4, 2016.
  • ^ "Downloads for LilyPond 2.18.2". lilypond.org. Retrieved March 4, 2016.
  • ^ "LICENSE - lilypond.git - GNU LilyPond". git.savannah.gnu.org.
  • ^ "GNU LilyPond Learning Manual: Preface". Retrieved December 23, 2017.
  • ^ "MusiXTeX PreProcessor README". GitHub. Retrieved March 31, 2010.
  • ^ Kroger, Pedro (2004). "Re: The origin of the name lilypond". lilypond-user mailing list. lists.gnu.org. Retrieved March 19, 2014.
  • ^ Nienhuys, Han-Wen (July 31, 1998). "GNU LilyPond 1.0 released". gnu-music-discuss (Mailing list). Retrieved February 16, 2010.
  • ^ Nienhuys, Han-Wen (September 24, 2003). "LilyPond 2.0 – make beautiful music prints". info-lilypond (Mailing list). Retrieved February 16, 2010.
  • ^ "LilyPond programming languages". Retrieved March 21, 2015.
  • ^ "GNU LilyPond Music Typesetter – Code Analysis". Retrieved July 25, 2017.
  • ^ "Overview of LilyPond architecture". Retrieved March 21, 2015.
  • ^ Griewank, Andreas (January 4, 2010). "Tuning guitars and reading music in major thirds". Matheon Preprints. 695. Berlin, Germany: DFG research center "MATHEON, Mathematics for key technologies". Retrieved January 14, 2020.
  • ^ "LilyPond - Essay on automated music engraving". Retrieved December 23, 2017.
  • ^ "Proportional notation". Retrieved March 21, 2015.
  • ^ "LilyPond Learning Manual: 1.2.2 Working on input files". Retrieved March 21, 2015.
  • ^ "LilyPond Notation Reference: 1.1.1 Writing pitches". Retrieved March 21, 2015.
  • ^ "LilyPond Notation Reference: 1.3.1 Expressive marks attached to notes". Retrieved March 21, 2015.
  • ^ "LilyPond Notation Reference: 1.3.2 Expressive marks as curves". Retrieved March 21, 2015.
  • ^ "LilyPond Notation Reference: 1.2.4 Beams". Retrieved March 21, 2015.
  • ^ "LilyPond Notation Reference: 3.3.3 Text encoding". Retrieved March 21, 2015.
  • ^ "org-babel lilypond language module". December 17, 2018. Retrieved November 30, 2019 – via GitHub.
  • ^ Klaus Blum (April 18, 2017). "OOoLilyPond: Creating musical snippets in LibreOffice documents". Retrieved October 12, 2017.[permanent dead link]
  • ^ LilyPond community (1996–2020). "LilyPond Usage manual".
  • ^ Peron, Fr. Jacques; Liska, Urs; Springuel, Br. Samuel (May 27, 2019). "LyLuaTeX 1.0f" (PDF). Comprehensive TeX Archive Network (CTAN). Retrieved April 16, 2020.
  • ^ Hawryluk, Andrew. "Finale and LilyPond". Retrieved February 15, 2010.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=LilyPond&oldid=1188635622"

    Categories: 
    LilyPond
    1996 software
    Cross-platform software
    Free music software
    Free software programmed in C++
    Free typesetting software
    GNU Project software
    Music notation file formats
    Scorewriters
    Scorewriters for Linux
    Hidden categories: 
    Pages using the Score extension
    All articles with dead external links
    Articles with dead external links from March 2023
    Articles with permanently dead external links
    Articles with short description
    Short description matches Wikidata
    Use mdy dates from November 2019
    Articles containing Hebrew-language text
     



    This page was last edited on 6 December 2023, at 18:12 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki