說明:樂譜

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

標籤<score>...</score>可以生成樂譜(五線譜)。默認使用GNU LilyPond標記語言,也可以用ABC記譜法。詳見Extension:Score

本文就LilyPond的語法作簡單說明,關於LilyPond的語法細節,參見LilyPond文檔。語法錯誤的文檔被歸類在Category:有樂譜生成錯誤的頁面

標籤屬性

屬性 描述
lang="ABC" 使用ABC記譜法
lang="lilypond" 使用LilyPond(默認)
midi="1" 在曲譜圖片上生成鏈接,鏈接至其自動生成的MIDI文件
vorbis="1" 在曲譜下方生成播放器,播放自動生成的Ogg Vorbis文件
raw="1" 作為完整的LilyPond文件編譯(要求lang屬性為lilypond)
override_midi="…" 在曲譜圖片上生成鏈接,鏈接至指定的MIDI文件
override_ogg="…" 在曲譜下方生成播放器,播放指定的Ogg文件

案例

簡單

<score>
{c' d' e' f' f' fes' eis' e'}
</score>

生成


{c' d' e' f' f' fes' eis' e'}


略複雜

<score>
  \transpose c g \relative c' {
  \key c \minor
  \time 4/4
    c4 e8 e g4 g              % 百分比號後是註釋
    <c es g>2 <c es g>        % 單書名號生成和弦
    es4 d( ces b)             % 括號生成連結線
    a4. r8 a4 a               % r 代表休止
    e-- e-> e-. g\fermata     % 重音和其他音樂符號
    \bar "|."
  }
</score>

生成


  \transpose c g \relative c'{
  \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( ces b)         % parentheses create ties
    a4. r8 a4 a           % r creates rests
    e-- e-> e-. g\fermata % accents and other signs
    \bar "|."
  }
% This is just a comment line

語法

LilyPond代碼衍生自LaTeX,大小寫敏感,無視連續空格和換行。代碼必須用<score>...</score>圍起來。音符必須放在大括號裡面 {...}。百分比號 % 後的代碼視為注釋

音高

輸入字母音名來表示音高(如a b c ),中間用空格隔開。
後綴 -is表示升半音(aisbiscisdiseisfisgis)。
後綴 -es表示降半音 (aesbescesdeseesfesges)。

所有音符默認是在中央C向下一個八度中英語Helmholtz pitch notation。如c 會生成

\new Staff \with { \remove "Time_signature_engraver" }{c}

\new Staff \with { \remove "Time_signature_engraver" }{\clef bass c}

。 上撇號(')用來升八度,逗號(,)用來降八度。如中央C的表示方法是c'

\new Staff \with { \remove "Time_signature_engraver" }{ c'}

 <score>
  {
   a,, c, e, a,
   c e a c'
   e' a' c'' e''
   a'' c''' e''' g'''
   \bar "||"
   aes'' bes'' gis'' dis''
  }
 </score>

 {a,, c, e, a, c e a c' %Middle C
  e' a' c'' e'' a'' c''' e''' g''' \bar "||" aes'' bes'' gis'' dis''}

用相對音高可以減輕工作量。在大括號前加上\relative進入相對音高模式,根據前一個音符來推算八度。全譜第一個音符的八度則從\relative 標籤後的標識音推算。如 \relative c

相對音高模式計算八度時,默認視為前音符上下三度的內的八度(不計算半音),並使用 ', 來跨八度。

 <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>

 \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 "|."
  }

註明音調

樂譜默認為C大調。用\key g \major\key c \minor或直接寫上調式\key c \dorian\key c \mixolydian來轉調。任何地方都可以轉調。

需要注意一點,調式與音高無關。轉調只會影響變音記號的顯示,不會改變音高。在轉調的音高上的每一個音符仍必須用 (-is) 和 (-es) 來表示半音升降。如果不寫,會被當成還原音。舉一個升C大調上的例子:

<score>
 \relative c' {
   \key cis \major
   \time 6/8

% -is 后缀代表升半音
   cis8 dis eis fis gis ais

% 不带后缀代表还原音
   b c d e f g
  }
</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
  }

節奏

字母音名後的數字代表音符時值,中間不加空格 (a4 b8)。1代表全音符,2代表二分音符,4是四分音符,8是八分音符,以此類推。如果不寫明時值,默認用和前一個音符一樣的時值。如果前面沒有音符,則默認為4分音符。

字母 r 代表休止符。小數點代表附點(將音符時值延長一半) (c4.)。

 <score>
   \relative c''{b1 b2 b4 b8 c r4 b4. b}
 </score>

\relative c''{b1 b2 b4 b8 c r4 b4. b}

拍號

樂譜默認拍號是4/4拍。 用 \time 命令來設定其他的拍號。 若要設置成二二拍,輸入\time 2/2,三四拍(華爾茲節奏)則輸入\time 3/4。大多數時候拍號可以隨便改。

隱藏拍號

有些音樂的譜例中,拍號可能多餘。輸入\remove "Time_signature_engraver" 隱藏拍號。

<score>
{
  \new Staff \with { \remove "Time_signature_engraver" }
  <d' fis' a'>2
}
</score>
{ \new Staff \with { \remove "Time_signature_engraver" } <d' fis' a'>2 }

速度

如果需要用vorbis = "1"等屬性來提供試聽功能,則需要定義樂曲速度。使用\tempo來定義速度。\tempo 4= 135定義為每分鐘135個四分音符,每分鐘播放音符越多,樂曲速度越快。樂曲中間可以改變速度。

試聽不同速度的歡樂頌。

<score vorbis="1">
\relative c' {
  \tempo 4 = 70
  e4 e f g g f e d
  \tempo 4 = 160
   c c d e d4. c8 c2
}
</score>
 \relative c'  {  \tempo 4 = 70  e4 e f g g f e d   \tempo 4 = 160  c c d e d4. c8 c2 }

弱起小節

\partial 4會生成一個包括一個四分音符的弱起小節。\partial 4*2 會生成一個包括兩個四分音符的弱起小節。以此類推。Help:樂譜#添加歌詞里有一個例子。

自定義符杆


\relative c'' {
   \time 3/4
   r4. g8 a8 b8
}

程序會自動生成符槓。如果覺得自動生成的符槓不好看或者不想要,可以把\noBeam放在被劃槓的音符中間來刪除,如g a b \noBeam g。若要在一段區間內完全關閉自動劃槓,用\autoBeamOff\autoBeamOn 開關。

<score>
  \relative c'' {
     \time 3/4
     r4. g8 \noBeam a8 b8
  }
</score>

\relative c'' {
   \time 3/4
   r4. g8 \noBeam a8 b8
}

若要手動劃槓,在符槓開始和結束的音符輸入一對方括號。a8 b[ c d e] f這樣把最先和最後的兩個音符撇開,b、c、 d和e劃成一槓。

 \relative c''{a8 b[ c d e] f}

添加歌詞

\addlyrics可以添加歌詞。讀LilyPond文檔詳細了解歌詞的對齊方式。

<score>
  \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 {
     祝你 生 日 快 樂
     祝你 生 日 快 樂
     祝你 生 日 快 樂 -
     祝你 生 日 快 樂
   }
  </score>

  \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 {
     祝你 生 日 快 樂
     祝你 生 日 快 樂
     祝你 生 日 快 樂 -
     祝你 生 日 快 樂
   }

對齊中文歌詞比英文略簡單。因為中文一個字符對應一個音節,所以一般用空格將每個字隔開即可,不需要用到--來連接單詞。_用來跳過一個音符。

和弦名

和弦名可以加在單獨的ChordNames譜中,附在五線譜邊(上述至此講的都是五線譜),方法如下:

<score>
<<
  \new ChordNames \chordmode {
    \set chordChanges = ##t       % 设置只在和弦变化时显示(本例中为不重复显示Am)
    a4:m a4:m         |                         % 第一小节 - A7的话是 a:7
    g2                       |                          % 第二小节
  }
  \new Staff \relative c''{
    \key a \dorian
    \time 2/4
    a8 a16 a a8 a16 a |   % 第一小节
    b8 a g4           |           % 第二小节
  }
>>
</score>

<<
\new ChordNames \chordmode {
  \set chordChanges = ##t
  a4:m a4:m         |% measure 1
  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
}
>>

注: 在ChordNames譜中可以用字母 s 而不是 r (休止符)表示沒有和弦。

r 會把「沒有和弦」直接

<<\new ChordNames \chordmode {r2} \new Staff \with { \remove "Time_signature_engraver" } \relative c''{c}>>

寫出來。而 s 只空出和弦名,不會顯示。

在五線譜中用 s 表示一個不印刷的休止符。

強調和其他符號

LilyPond中還能用各種符號,如\fermata (自由延長符號)。還有 {e-> f-- g-+ a-. b-^ c-_ d-|}等。^-_表示符號的位置,後面直接輸入要標註的文字。

<score>
  \relative c' {
  e-> f-- g-^ a-.
  b_"Joyfully" c^"渐强" d-! e\fermata
  }
</score>

生成


 \relative c' {
 e-> f-- g-^ a-.
 b_"Joyfully" c^"漸強" d-! e\fermata
 }

簡譜使用者

維基媒體不直接支持用代碼顯示簡譜,但是針對習慣寫簡譜的編輯使用本標籤,可以利用以下幾個技巧。

首調唱名

對於習慣使用首調而不是固定調的編輯,寫移調後的樂譜可能遇到困難。如E大調中的七個音符需要寫成e fis gis a b cis dis e,必須正確地寫上固定調中變化半音的後綴-is-es,否則會被當成還原音。

\transpose可以減輕工作量。\transpose本為直接移調,利用這個語法可以在沒有變化音的C大調上寫上首調,再轉到其他調上。如

<score>
\relative e' {
   \key e \major     
  e fis gis a b cis dis e   %固定调写法
}
</score>
<score>
\transpose c e {   %将C调转为E调,显示效果与固定调写法相同
  \relative c' {
     \key c \major     
     c d e f g a b c 
  }                                 
}
</score>

生成


\relative e' {
 \key e \major 
 e fis gis a b cis dis e %固定調寫法
}

\transpose c e { %將C調轉為E調,顯示效果與固定調寫法相同
 \relative c' {
 \key c \major 
 c d e f g a b c 
 } 
}


參見

維基文庫中相關的原始文獻: