Help:Score
This help page is a how-to guide. It details processes or procedures of some aspect(s) of Wikipedia's norms and practices. It is not one of Wikipedia's policies or guidelines, and may reflect varying levels of consensus and vetting. |
<score> has been turned off since July 2020 because of several security problems with LilyPond. This results in the error message "Musical scores are temporarily disabled" when attempting to include a new example. See the talk page for more information. |
The <score>...</score>
element displays a musical score out of GNU LilyPond (the default) or ABC markup syntax; see Extension:Score. It also produces a MIDI file of the music and optionally display an audio player that plays the music. This is part of MediaWiki, intended to be installable consistently across Wikipedia languages.
For details on the LilyPond syntax, see its notation documentation. As of May 2020[update], the extension on Wikipedia is using LilyPond v2.18.2.
Importantly, note that the documented LilyPond syntax applies when the extension is invoked with <score raw="1">
. Calling just <score>
will invoke a simplified implementation that is not fully consistent with the LilyPond documentation.
Element attributes[edit]
Attribute | Description |
---|---|
lang="ABC" |
use ABC notation |
lang="lilypond" |
use LilyPond notation (default) |
sound="1" |
add an audio player beneath the score image to play an automatically-generated Ogg Vorbis audio file |
raw="1" |
interpret the markup within the score tag as a complete LilyPond file, allowing more complex scores
|
midi="1" |
obsolete This used to control whether the score image links to an automatically-generated MIDI file; clicking the score now always shows a JavaScript pop-up with a link to the MIDI file. |
override_midi="…" |
deprecated replace the automatically-generated MIDI file by the given one |
override_audio="…" |
deprecated replace the automatically-generated audio file by the given one |
override_ogg="…" |
deprecated alias for override_audio
|
vorbis="1" |
deprecated alias for sound
|
If there is a MIDI file or audio file of superior quality to the MIDI or audio generated by the Score extension, you can provide a [[File::]]
wikilink to it after the closing </score>
tag.
Examples[edit]
Simple
<score> {c' d' e' f' f' fes' eis' e'} </score>
gives
More elaborate[edit]
<score sound="1">
\transpose c g \relative c' { % display G for C, etc. and one octave higher
\key c \minor
\time 4/4
c4 e8 e g4 g % (text after the % is just a comment)
<c es g>2 <c es g> % angle brackets create chords
es4 d( c b) % parentheses create slurs
a4. r8 r8 a8 ~ a4 % r creates rests; ~ creates ties
e-- e-> e-. g\fermata % accents and other signs
\bar "|."
}
</score>
gives
Syntax[edit]
The score section must be surrounded by <score>...</score>
. The notes must be within a set of curly braces {...}
.
Comments in the markup start with a percentage sign %
and end at the end of the line.
Pitch[edit]
To display a note, type the letter (a b c
etc.) Separate each letter with a space. The bare note name refers to the natural note irrespective of key signature (see "setting the key" below).
Sharps and flats are formed by using the German suffixes "is" and "es" respectively. To avoid "ees", the note E♭ is simply written as es
. The simple accidentals are thus ais bis cis dis eis fis gis
for the sharps and aes bes ces des es fes ges
for the flats. English language editors may prefer to include the line \language "english"
in the script, after which s
for sharp and f
for flat can be used: as bs cs ds es fs gs
and af bf cf df ef ff gf
. Double sharps are formed with the suffix isis
and double flats with eses
, or in English notation with ss
or x
and ff
. Semi-sharps, -flats and sesqui-sharps and -flats are also supported in both English and German. See: #Accidentals.
By default, each note name refers to the note below middle C. For example, c
would be displayed as
or
.
Use the apostrophe ('
) to go up an octave and a comma (,
) to go an octave down. Middle C would be c'
.
<score>
{
a,, c, e, a, c e a c' % Middle C
e' a' c'' e'' a'' c''' e''' g''' \bar "||"
aes'' bes'' gis'' dis'' aeses'' beses'' gisis'' disis'' \bar "||"
aeh'' beseh'' gih'' disih'' \bar "||"
\language "english"
af'' bf'' gs'' ds'' aff'' bff'' gss'' bx'' \bar "||"
aqf'' btqf'' gqs'' dtqs''
}
</score>
A much easier way is to use relative coding. If you include \relative
before the braces, each note will refer to the note closest to the previous one, and the first one will refer to the note closest to the one mentioned after the \relative
tag. ("Closest" ignores sharps and flats.) Use '
to go up an extra octave and ,
to go down.
<score>
\relative c' {
e f <c e g>2
a'4( b c) c,
d8 e f16 g a b
c4. a8 e' f g, f r \autoBeamOff e d c
b4 a g b-> c2.-> r4
\bar "|."
}
</score>
Setting the key[edit]
By default there is no key signature (no sharps or flats). You can indicate the key with \key g \major
, \key c \minor
, or even a mode such as \key c \dorian
or \key c \mixolydian
. The key can be changed at any point.
Keep in mind that even with a key signature, you must still include sharps (-is) and flats (-es) for each individual note name. If you omit one, it will be considered a natural. For example, this is the key of C# major:
<score>
\relative c' {
\key cis \major
\time 6/8
% Notes with -is suffixes indicating sharps
cis8 dis eis fis gis ais
% Notes without accidentals (naturals)
b c d e f g
}
</score>
Accidentals[edit]
Accidentals may be indicated by following the note name with the appropriate text:
♭ | ♮ | ♯ | |||||||
---|---|---|---|---|---|---|---|---|---|
De | eses | eseh | es | eh | ! | ih | is | isih | isis |
En | ff | tqf | f | qf | qs | s | tqs | ss or x |
Note that E♭ is "es" alone, rather than "ees". "q" and "tq" refer to "quarter" and "three-quarter" (rather than "hf" for "half flat" and "thf" for "three-half flat"), as in "quarter tone". However, the "quarter flat/sharp" is not a quarter of a flat/sharp, but instead half of a flat/sharp, and the "three-quarter flat/sharp" is 1.5 flats not 0.75 flats. Notes outside of the quarter-tone scale are not supported.
German:
<score lang="lilypond"> {
\override Score.TimeSignature
#'stencil = ##f
\relative c'' {
\time 4/4
aeses1 aeseh aes aeh a! aih ais aisih aisis
} }
</score>
English:
<score lang="lilypond"> {
\override Score.TimeSignature
#'stencil = ##f
\relative c'' {
\time 4/4
\language "english"
aff1 atqf af aqf a! aqs as atqs ass
} }
</score>
Both result in:
Transposition[edit]
If, for some reason, a piece needs to be transposed to a different key, it is possible to do so without having to transcribe it manually. This also affects the key signature. The syntax for this is:
\transpose frompitch topitch musicexpr
For example:
<score lang="lilypond">\transpose c es {
\relative c' {
\key c \major \time 4/4
c4 d e f g a b c
}
}
</score>
Results in:
Rhythm[edit]
Note duration is indicated by a number following the pitch with no space between (a4 b8
). Use the number 1 for a whole note (breve), 2 for a half note (semibreve), 4 for a quarter note (crotchet), 8 for an eighth note (quaver), and so on. If a note does not have an explicit duration, it will either default to a quarter note or use the duration of the note preceding it.
Rests are indicated by using the letter r
instead of a pitch. Dotted notes are formed simply by following the duration number with a period (c4.
).
Tuplets are indicated using the \times
command, for example \times 2/3 {c8 c c}
gives a triplet of three eight-notes (quavers).
<score>
\relative c''{b1 b2 b4 b8 c r4 b4. r8 \times 2/3 {a8 g f}}
</score>
Setting the time signature[edit]
The default time signature is 4/4. To set another time signature, one may use the \time
command. For example to set the time signature to cut-time one would use \time 2/2
and waltz time would be \time 3/4
. The time signature may be changed at almost any point.
Removing the time signature[edit]
For some music examples, removing the time signature may be desirable; the code \remove "Time_signature_engraver"
can be used in that case:
<score>
{
\new Staff \with { \remove "Time_signature_engraver" }
<d' fis' a'>2
}
</score>
Pick up measure[edit]
The code \partial 4
will create a pickup measure (anacrusis) of one quarter note, \partial 4*2
would create a pickup measure of two quarter notes, etc. See an example in the Adding Lyrics section of this article.
Customizing beams[edit]
The software occasionally combines beamed notes in places that are not desired or look awkward. To override the automatic beams, use \noBeam
between the notes that would otherwise be beamed: g a b \noBeam g
. To turn off beaming for many notes, use \autoBeamOff
and then \autoBeamOn
.
<score>
\relative c'' {
\time 3/4
r4. g8 \noBeam a8 b8
}
</score>
To manually beam notes, use square brackets inserting the first one after the first note to be beamed: a8 b[ c d e] f
. This would beam the notes b, c, d, and e, but leave the first and last notes without beams.
Adding lyrics[edit]
You can add lyrics to the score using \addlyrics
. See the LilyPond Manual for more information about how to align the lyrics to the score.
<score raw="1">
\header {
tagline = "" % no footer
title = "Good Morning"
composer = "trad."
}
\relative g' {
\key g \major \time 3/4
\partial 4 d
e d g
fis2 d4
e d a'
g2 d4
d' b g
fis e c'
b g a
g2 \fermata
\bar "|."
}
\addlyrics {
Good mor -- ning to you,
Good mor -- ning to you,
Good mor -- ning dear chil -- dren,
Good mor -- ning to all.
}
</score>
Adding chord names[edit]
Chord names can be added as a separate ChordNames staff as follows:
<score>
<<
\new ChordNames \chordmode {
\set chordChanges = ##t % Only display chord when there is a change (e.g., don't repeat the Am here)
a4:m a4:m |% measure 1 - A7 would be a:7
g2 |% measure 2
}
\new Staff \relative c''{
\key a \dorian
\time 2/4
a8 a16 a a8 a16 a |% measure 1
b8 a g4 |% measure 2
}
>>
</score>
Note:
The letter s
can be used in the ChordNames staff in place of r
(the code for a rest) when there is no chord.
An r
will result in an explicit "No Chord" notation
, whereas the s
will result in correct spacing, but no chord name notation will appear.
Accents and other symbols[edit]
There are a number of symbols to attach to notes, such as \fermata
. There are also {e-> f-- g-+ a-. b-^ c-_ d-!}
<score>
\relative c' {
e-> f-- g-+ a-.
b-^ c-_ d-! e\fermata
}
</score>
producing
Color[edit]
<score lang="lilypond">
{
\override Score.TimeSignature #'stencil = ##f
\relative c' {
\clef treble
\time 7/4 \once \override NoteHead.color = #red c4 d \once \override NoteHead.color = #red e f \once \override NoteHead.color = #red g a b \time 2/4 c2 \bar "||"
\time 4/4 <c, e g>1 \bar "||"
} }
</score>
produces
MIDI instruments[edit]
MIDI instrument sounds can be assigned with \set Staff.midiInstrument = #"instrument"
as documented in section 3.5.2 of LilyPond's Notation Reference. Trial and error may be necessary: some instruments may not work unless the # is omitted, and some may not work with or without the #.
Markup |
|
Renders as | Musical scores are temporarily disabled.
|
Markup |
|
Renders as | Musical scores are temporarily disabled.
|
Hiding tempo[edit]
Metronome marks, as shown above, may be hidden with \set Score.tempoHideNote = ##t
.
Markup |
|
Renders as |
Global staff size[edit]
The default staff size is 20 points. This can be change with #(set-global-staff-size nn)
. Using #(set-global-staff-size 14)
, the example above renders as:
For more intricate details, see "Setting the staff size" in the LilyPond manual.
Image frame[edit]
Alignment[edit]
Use {{Image frame}} to align scores to the left, center, or right.
For example:
{{Image frame |content = <score> \relative c' { \clef treble \time 7/4 \hide Staff.TimeSignature c4 d e f g a b c2 } </score> |width=|caption = Diatonic scale on C, a "white note" scale }}
results in the image to the right.
Grouping[edit]
{{Image frame}} may also be used to group score images together. The text below creates the group of images to the right:
{{Image frame|content=<score>
{
\override Score.TimeSignature #'stencil = ##f
\relative c' {
\clef treble \time 4/4
e4^\markup { Enharmonic genus } feh geses a b ceh deses e
} }
</score>
<score>
{
\override Score.TimeSignature #'stencil = ##f
\relative c' {
\clef treble \time 4/4
e4^\markup { Chromatic genus } f ges a b c des e
} }
</score>
<score>
{
\override Score.TimeSignature #'stencil = ##f
\relative c' {
\clef treble \time 4/4
e4^\markup { Diatonic genus } f g a b c d e
} }
</score>|width=300|caption=The three genera of the Dorian [[octave species]] on E}}
See also[edit]
Wikisource has complementary help pages at: |
- Wikipedia:Lyrics and poetry
- Special:PagesWithProp/score, pages where
<score>...</score>
is used - Pages with errors are shown in Category:Pages with score rendering errors
- For some of the history of attempts to add LilyPond support, see Wikipedia:GNU LilyPond support/historical proposal
- Help:Music
- {{Music}}
- Sinuhe20/Spielwiese presents dozens of helpful examples, even for those who cannot read the German headings