說明:樂譜

維基百科,自由的百科全書
跳至導覽 跳至搜尋

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

生成

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


略複雜

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

生成

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

語法[編輯]

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

音高[編輯]

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

所有音符預設是在中央C向下一個八度中英語Helmholtz pitch notation。如c 會生成<score>\new Staff \with { \remove "Time_signature_engraver" }{c}</score>或<score>\new Staff \with { \remove "Time_signature_engraver" }{\clef bass c}</score>。

上撇號(')用來升八度,逗號(,)用來降八度。如中央C的表示方法是c' <score>\new Staff \with { \remove "Time_signature_engraver" }{ c'}</score>。

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

<score>

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

</score>

用相對音高可以減輕工作量。在大括號前加上\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>

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

註明音調[編輯]

樂譜預設為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>

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

節奏[編輯]

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

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

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

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

拍號[編輯]

樂譜預設拍號是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>

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

速度[編輯]

如果需要用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>

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

弱起小節[編輯]

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

自訂符杆[編輯]

<score> \relative c {

  \time 3/4
  r4. g8 a8 b8

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

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

<score> \relative c {

  \time 3/4
  r4. g8 \noBeam a8 b8

} </score>

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

<score> \relative c{a8 b[ c d e] f}</score>

添加歌詞[編輯]

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

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

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

和弦名[編輯]

和弦名可以加在單獨的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>

<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

} >> </score>

注: 在ChordNames譜中可以用字母 s 而不是 r (休止符)表示沒有和弦。 r 會把「沒有和弦」直接<score><<\new ChordNames \chordmode {r2} \new Staff \with { \remove "Time_signature_engraver" } \relative c{c}>></score> 寫出來。而 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>

生成

<score>

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

</score>

簡譜用戶[編輯]

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

首調唱名[編輯]

對於習慣使用首調而不是固定調的編輯,寫移調後的樂譜可能遇到困難。如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>

生成

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


參見[編輯]