英雄联盟正规
![]() |
|
![]() |
|
Developer(s) | David Kastrup, Werner Lemberg, Han-Wen Nienhuys, Jan Nieuwenhuizen, Carl Sorensen, Janek Warchoł, et al. [1] |
---|---|
Initial release | 1996 |
Stable release |
2.22.2
[2]
![]() |
Preview release |
2.23.11
[3]
![]() |
Repository | |
Written in | C++ , Scheme , Metafont , PostScript , Python [4] |
Operating system |
|
Size | 20–100 MB |
Standard (s) | EPS , MIDI , MusicXML , PDF , PS , SVG |
Available in | English, Catalan, Dutch, French, German, Hungarian, Italian, Japanese, Spanish |
Type | Music software , scorewriter |
License | GPL-3.0-or-later [6] |
Website |
lilypond
![]() |
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 ]
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 SVG or PNG . 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 ]
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]
- Optical font scaling : depending on the staff size, the design of the music font is slightly altered; this is a feature that Donald Knuth's Computer Modern font is known for. As a result, note heads become more rounded, and staff lines become thicker.
- Optical spacing : stem directions are taken into account when spacing subsequent notes.
- Special ledger line handling : ledger lines are shortened when accidentals are nearby, thus enhancing readability.
- Proportional spacing : notes can be positioned in such a way that exactly reflects their duration. For example, with this setting, the space between consecutive quarter notes is four times greater than between consecutive sixteenth notes . [17]
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.
-
Single-line
comments
begin with a percent sign
%
. [18] -
Notes
are represented in
pitch-duration
format:
pitch
is specified with
Helmholtz pitch notation
, and
duration
is specified with a
numeral
based system. The semantics of the
pitch-duration
format change depending on the active input mode; this is explained in depth in the LilyPond manual. For example, in absolute mode,
a'4
is an A, one octave up from the base A (A3 in scientific pitch notation ), of quarter note length. [19] -
Commands usually begin with a backslash (such as
\time
, or\slurUp
). The function of the command in question determines where the command is placed; for example, if the command is used to indicate a fixed dynamic on a specific note, it is placed after the note. [20] -
Some common commands are represented symbolically to ease typing. One example is with
slurs
, where
(
and)
indicate the beginning and ending of a slur, respectively. [21] Another example is with manual beaming , where[
and]
indicate the extent of the beam. [22]
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
4
\acciaccatura
{
cs16[ ds]
}
4 |
% m. 51
4
\acciaccatura
{
e16[ ds]
}
4 |
% m. 52
4
\acciaccatura
{
ds16[ cs]
}
4 |
% m. 53
4
\acciaccatura
{
ds16[ e]
}
4 |
% m. 54
4
\acciaccatura
{
cs16[ ds]
}
e16 f gs a |
% m. 55
8
\acciaccatura
{
as16[ gs]
}
8 ~
16 ds b as |
% m. 56
b16 d8 bf32 f' g16 af bf c |
% m. 57
16 ( c af )
( ds b )
( ds |
% m. 58
\time
3/4
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 ]
More complex output [ edit ]
Lilypond can also create extensively customised output. An example is the short extract of a Karlheinz Stockhausen piano piece below.
Collaboration with other projects [ edit ]
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
sound=
"1"
>
\relative c' { f d f a d f e d cis a cis e a g f e }
into

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.
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, ly LuaT e X has been developed as a LuaL a T e X 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 ]
References [ edit ]
- ^ "Authors" . LilyPond Development team . Retrieved March 21, 2015 .
- ^ http://lilypond.org/news.html#LilyPond-2_002e22_002e2-released-February-22_002c-2022 .
- ^ https://lilypond.org/news.html .
- ^ "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 . Berlin, Germany: DFG research center "MATHEON, Mathematics for key technologies". 695 . 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 .
- ^ 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 ]
-
Official website
- "lyluatex – Commands to include lilypond scores within a (Lua)LATEX document" . Retrieved April 16, 2020 .