雖然上網很方便,在網路上看資料無法取代真正的音樂養成教育。時間和經濟許可的話,仍建議找老師學習音樂,會少走許多彎路。
若本文內容有誤,請詢問你的音樂老師。
本網站未代理文章及贊助商連結中提及的樂器、器材及其他產品。
前言
本文提供一份小型原聲流行樂團 (acoustic pop ensemble) 可用的 LilyPond 免費模板樂譜,讓樂友藉此觀察 LilyPond 代碼的整體架構,比較快上手這套樂譜軟體。
雖然是給原聲樂團使用的樂譜,稍微改一下配置,也可以給使用電子樂器的樂團用。
完整程式碼
為節約篇幅,我們不在這篇文章展示完整程式碼,僅說明其原理。
有興趣的樂友可以到這裡追蹤程式碼及下載樣板樂譜來用。
樂團配置
本著四弦琴緣的核心精神,這個樂團使用輕便、可攜的原聲樂器 (acoustic instrument)。其預設設置如下:
- 旋律 (melody):歌唱或吉他麗麗 (guitalele)
- 和聲 (harmony):baritone 烏克麗麗 (baritone ukulele)
- 低音 (bassline):木貝斯 (acoustic bass guitar) 或烏克麗麗貝斯 (ukulele bass)
- 節奏 (beat):木箱鼓 (cajon)
一般來說,旋律會使用烏克麗麗。這裡改用吉他麗麗是因為後者音域比較寬。兩者音色相近。如果有音色上的考量,還是可以改回烏克麗麗。
和聲一般是用原聲吉他。這裡使用 baritone 烏克麗麗是因為後者比較輕便。兩者音色也是相近的。
低音不論是使用木貝斯還是烏克麗麗貝斯,兩者的配置 (定弦) 是相同的。視音樂上的需求來選樂器即可。
流行樂團的鼓通常會用爵士鼓 (drum kit)。這裡則改用音色接近但輕便許多的木箱鼓。有些比較輕柔、和緩的樂曲可能完全不用鼓。這時候可以改用其他小型打擊樂器,像是沙鈴 (shaker)。
撰寫各部分譜
這份樣板樂譜原本是先總譜再分部譜。為了便於閱讀,我們將原始碼拆開、分段展示。沒有完全按照原本的順序。
樂譜架構
每份樂譜會以 \score
區塊包住。以下同。其架構如下:
% 虛擬碼
% 這份樂譜實際上無法使用
\score {
\header {
% 設置樂譜標題、作曲者等元資訊
}
<<
\new Staff {
% 撰寫樂譜
}
>>
\layout {
% 設置樂譜的版面
}
% 加入此區塊,LilyPond 會自動產生 MIDI
\midi {
% 設置 MIDI
}
}
對樂譜代碼的架構有概念後,看到比較長的樂譜代碼就不會感到害怕。
旋律分部譜
以下是旋律分部譜的代碼:
% Create the melody part.
\score {
\header {
piece = "The Title (Melody Part)"
}
<<
% Create the chord name part.
\new ChordNames {
% Recall the chord names we wrote.
\chord
}
\new Staff {
\clef treble
\piece-parameter
\melody
}
\new Lyrics \lyricmode {
\lyric
}
\new TabStaff \with {
% Set the tuning as a guitalele.
stringTunings = #guitalele-tuning
} {
\melody
}
>>
\layout {}
}
這份樂譜有很多地方都用到變數。因為總譜和分譜都會重覆用到同一份資料,重覆撰寫容易導致前後不一致。以下同。
如果單純只有歌唱,可以把 TAB 譜的部分刪掉。輸出樂譜時只是少掉 TAB 譜的部分而已。
TAB 譜預設採用吉他定弦,這裡是用吉他麗麗定弦,所以要另行設置。對於如何用 LilyPond 撰寫 TAB 譜,可以參考這篇文章。
和弦分部譜
以下是和弦分部譜的代碼:
% Create the harmony part.
\score {
\header {
piece = "The Title (Harmony Part)"
}
<<
% Create the chord name part.
\new ChordNames {
% Recall the chord names we wrote.
\chord
}
\new Staff {
\clef "treble_8"
\piece-parameter
\harmony
}
\new TabStaff \with {
% Set the tuning as a baritone ukulele.
stringTunings = #baritone-ukulele-tuning
} {
\harmony
}
>>
\layout {}
}
這裡的代碼在很多概念上和前一小節雷同。樂友可試著讀讀看。
注意這裡採用高音譜號,但是高八度記譜。吉他、baritone 烏克麗麗、中阮等中音域樂器時常會採用這種記譜方式。
一般來說,會在分譜採用五線譜和六線譜並排的方式來記譜。這樣可以讓演奏者比較快熟悉指法,但仍可以透過五線譜來觀察音型變化。
注意我們在五線譜及六線譜都呼叫同樣的音符 (harmony
),這樣就不會重覆撰寫。這是 LilyPond 很常見的撰碼方式。
低音分部譜
以下是低音分部譜的代碼:
% Create the bassline part
\score {
\header {
piece = "The Title (Bassline Part)"
}
<<
% Create the chord name part.
\new ChordNames {
% Recall the chord names we wrote.
\chord
}
\new Staff {
\clef bass
\piece-parameter
\bassline
}
\new TabStaff \with {
% Set the tuning as a bass guitar,
% either electric or acoustic.
stringTunings = #bass-tuning
} {
\bassline
}
>>
\layout {}
}
貝斯的音域較低,使用低音譜號以外的方式記譜會導致過多加線 (ledger line),反而不易閱讀。其他的代碼在概念上和前面相同,請自行閱讀。
節奏分部譜
以下是節奏分部譜的代碼:
% Create the beat part.
\score {
\header {
piece = "The Title (Beat Part)"
}
<<
\new DrumStaff \with {
% Use a cajon as if it is a drum kit.
drumStyleTable = #drums-style
} \drummode {
\clef percussion
\piece-parameter
\beat
}
>>
\layout {}
}
注意節奏分部譜的變化較大,會因使用不同打擊樂器採用不同記譜方式。以本例來說,此分部譜是設計給木箱鼓使用的,但沿用爵士鼓的記譜方式。
撰寫總譜 (Full Score)
以下是總譜的代碼:
% Create the MIDI for a piece.
%
% We can explore a piece freely
% before your ensemble play it.
\score {
% Keep the chord names from the MIDI output.
\removeWithTag #'chord
\piece
\midi {}
}
% Create the full score.
\score {
\piece
% Set the layout of a sheet music.
\layout {}
}
這裡用到了一個小技巧。我們製作了兩次總譜。第一次製作該總譜的 MIDI,第二次則是製作該總譜的電子檔。製作 MIDI 時會把和弦名稱 (chord name) 的部分去除,才不會在每次換和弦時出現不必要的和弦聲音。
總譜寫在 piece
變數中。該變數的內容如下:
% Record the piece.
piece = {
\new StaffGroup <<
% Create the chord name part.
\tag #'chord \new ChordNames {
% Recall the chord names we wrote.
\chord
}
% Create the melody part.
\new Staff \with {
instrumentName = "Melody"
midiInstrument = "voice oohs"
} {
% Use treble clef.
\clef treble
% Recall the parameters of the piece.
\piece-parameter
% Recall the melody we wrote.
\melody
}
\new Lyrics \lyricmode {
% Recall the lyrics we wrote.
\lyric
}
% Create the chordal part.
\new Staff \with {
instrumentName = "Harmony"
midiInstrument = "acoustic guitar (nylon)"
} {
% Use treble clef.
% Record the notes higher in an octave.
\clef "treble_8"
% Recall the harmony we wrote.
\harmony
}
% Create the bass part.
\new Staff \with {
instrumentName = "Bassline"
midiInstrument = "acoustic bass"
} {
% Use bass clef.
\clef bass
% Recall the bassline we wrote.
\bassline
}
% Create the beat part.
\new DrumStaff \with {
instrumentName = "Beat"
\override MidiInstrument #'midiInstrument = #"drum kit"
% Assume a cajon here.
% Record the sheet music as if a drum kit.
%
% Change the style table if you
% use other percussion instrument.
drumStyleTable = #drums-style
} \drummode {
% Recall the beats we wrote.
\beat
}
>>
}
由於總譜的代碼比較長,而且和分譜有部分重疊,所以列在後面。實際上,在一份樂譜中,會先列出總譜,再分別列出分部譜。
總譜的重點在於理解各個分部間如何合作及整體的音樂性,而不是技術上的細節,所以會省略 TAB 譜。這樣可以節省一些空間。
使用 LilyPond 製作樂譜的額外好處是可以順便製作 MIDI。在實際演奏前先用電腦模擬,初步感受樂譜有沒有什麼問題。但 MIDI 本身無法發出聲音,要使用 MIDI 播放器播放或是再轉換成聲音檔。可參考這篇文章 來轉換 MIDI。
和數位音樂工作站結合
我們改良了這個樣板樂譜,每個聲部會輸出獨立的 MIDI 檔案。日後要使用數位音樂工作站製作音樂時,只要將 MIDI 檔案匯入並微調即可,不用輸入兩次音符。
比起 DAW 檔案,大部分樂友應該會比較想保存樂譜,所以我們設計了這樣的工作流程。有些商業樂譜軟體可以和特定 DAW 結合,但軟體選擇就會被綁死。藉由匯入 MIDI 或 MusicXML 等開放格式檔案,就可以將樂譜軟體和 DAW 分開。