撥子 [LilyPond] 用 jianpu-ly 命令稿製作簡譜

LilyPond簡譜
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

由於簡譜未成為西樂主流的記譜方式之一,簡譜軟體甚少。本文介紹一個用來製作簡譜的 Python 腳本 jianpu-ly.py 。這個腳本本身是命令列程式,不會有視覺化編輯器。本文會一併介紹使用此腳本的方式和該腳本的簡譜語法。

建置環境

LilyPond

jianpu-ly 本身不輸出樂譜,而是透過 LilyPond 來產出樂譜,故需要在系統上建置撰寫 LilyPond 文檔的環境。請參考這篇文章來建置 LilyPond 環境,此處不重覆說明。

Python

jianpu-ly 需要 Python (直譯器) 才能使用。單純使用該腳本,不修改腳本內容的話,不需要學 Python 語法。

請到 Anaconda 官網下載個人版的安裝程式。其實 Anaconda 是設計給資料科學家 (data scientist) 使用的 Python 發行版。但我們不會用到進階的功能,所以用最基本的版本即可。本小節展示在 Windows 上安裝 Anaconda 的過程。

一開始出現的是 Anaconda 的歡迎訊息:

Anaconda 安裝程式的歡迎畫面

繼續下一步即可。

展示 Anaconda 的授權文件:

Anaconda 的授權文件

繼續下一步即可。

選擇安裝方式:

選擇安裝 Anaconda 的方式

這裡建議選擇「Just Me」。日後要為 Anaconda 新增套件時,就不需要管理員權限。

選擇安裝位置:

選擇安裝 Anaconda 的位置

除非有特殊理由,使用預設位置即可。

選擇進階選項:

選擇安裝 Anaconda 的進階選項

除非有明確理由,使用建議選項即可。

開始安裝:

開始安裝 Anaconda

安裝完畢:

結束安裝 Anaconda

這時候還有一些收尾的動作,所以還有下一步。

這裡是工商服務時間,推薦 Anaconda 的使用者去購買 PyCharm (用來開發 Python 程式的軟體):

Anaconda 推薦 PyCharm

這裡當然不需要這項專業軟體,所以繼續下一步。

完成安裝 Anaconda 的流程:

完成安裝 Anaconda 的流程

有這些選項的話,會自動連到相關的教學網站。如果沒有要用 Python 寫程式的話,不需要勾選。

jianpu-ly 腳本

jianpu-ly.py 本身是小型 Python 腳本,直接下載即可使用。到該腳本的官網,在腳本連結上按右鍵:

按右鍵下載 jianpu-ly 腳本

選擇「另存連結為...」即可下載同名腳本。建議下載到 C:\Users\user\Downloads (註) 或其他容易記憶的位置,之後輸入指令比較方便。

(註) 此處假定系統使用者為 user。請根據自身實際情境修改。

撰寫第一個範例

若樂友有按照本文的建議流程,系統上應該會有 VS Code 可用。開啟編輯器,建立名為 little-stars.txt 的文字檔案。建議存到和 jianpu-ly.py 腳本相同的位置。輪入以下內容:

% jianpu-ly.py 文檔
title=小星星
1=C
4/4

1 1 5 5
6 6 5 -
4 4 3 3
2 2 1 -
5 5 4 4
3 3 2 -
5 5 4 4
3 3 2 -
1 1 5 5
6 6 5 -
4 4 3 3
2 2 1 -

先不要在意該文檔的語法,輸入一模一樣的內容即可。

打開「Anaconda Prompt」(Anaconda 命令提示字元)。將工作目錄 (working directory) 轉換到腳本所在的位置:

> cd C:\Users\user\Downloads

輸入以下指令:

> python jianpu-ly.py < little-stars.txt > little-stars.ly

這步應該是全文最複雜的步驟。這裡將其獨立出來講解:

  • python:Python 主程式
  • jianpu-ly.py:腳本本身
  • <:表示輸入檔案
  • little-stars.txt :輸入文檔的名稱
  • >:表示輸出檔案
  • little-stars.ly :輸出文檔的名稱

文檔的名稱請依實際情境修改。輸出文檔不一定要和輸入文檔同名,但副檔名一定要是 .ly ,因為轉出來的檔案為 LilyPond 文檔。

對轉換出來的 LilyPond 文檔按右鍵,選擇「Generate PDF...」即可產生簡譜:

按右鍵編譯樂譜

輸出的樂譜如下:

小星星 (簡譜版)

這裡補充一個小技巧。如果覺得轉出來的簡譜的字體過小,可以修改轉出來的 LilyPond 文檔。用編輯器開啟轉出的 LilyPond 文檔,其第二行如下:

#(set-global-staff-size 20)

將數字 20 改為 30 應該就可以了。

基本概念

檔案名稱

jianpu-ly 只是一個小型腳本,沒有專用的副檔名 (file extension)。使用一般文字檔案的 .txt 做為副檔名即可。

該腳本不限制檔案名稱,使用中文來命名文檔亦可。

大小寫敏感性 (Case Sensitivity)

官網未提及。建議按照官網所提供的語法的大小寫來撰寫文檔。

空白、縮進、換行

官網未提及。實際上是相對自由的。撥子自己的習慣是每小節換一行。視需求用空白行隔開段落。

註解 (Comment)

承襲 LilyPond,在 % 後方的文字是註解。註解文字會自動被該腳本及 LilyPond 忽略,可使用自由文字記錄事項。

音符 (Musical Note)

按照簡譜的習慣,採用首調唱名法 (movable do solfege)。使用 1234567 來記錄相對音高。

1 是樂曲的 Do,實際音高由調性決定。升降八度 (octave) 的方式如下:

  • 升兩個八度:1''
  • 升一個八度:1'
  • 原音高:1
  • 降一個八度:1,
  • 降兩個八度:1,,

升降音如下:

  • 升半音:#1
  • 降半音:b2

休止符使用 0

節奏 (Rhythm)

只寫數字的話,代表四分音符。常用節拍如下:

  • 全音符:1 - - -
  • 二分音符:1 -
  • 四分音符:1
  • 八分音符:q1 (quaver)
  • 十六分音符:s1 (semiquaver)
  • 三十二分音符:d1 (demisemiquaver) (少用)
  • 六十四分音符:h1 (hemidemisemiquaver) (少用)

附點音符如下:

  • 二又二分之一拍:1 - -
  • 四又二分之一拍:1.
  • 八又二分之一拍:q1.

三連音 (tuplet) 的範例如 3[ q1 q1 q1 ]

休止符的節奏如同其他音符。

和弦 (Chord)

將音符緊密並排即可,像是 135,排出來的就是特定調性下的一級和弦。

調性 (Key Signature)

大調音階的根音在 1。以下是範例:

  • 1=D (D 大調)
  • 1=G (G 大調)

小調音階 (自然小調) 的根音在 6。以下是範例:

  • 6=A (A 小調)

國樂大部分使用大調音階來記譜,較少用小調來記譜。即使音階組成相同,關係小調和大調在氛圍上相異,還是要知道兩者的差異。

拍子記號 (Time Signature)

使用 / 來記拍子記號。像是 4/42/43/4 等。弱起 (anacrusis) 的例子如 4/4,8

表達性符號

以下是一些表達性符號:

  • 前綴裝飾音:g[#45] 1
  • 後綴裝飾音:1 ['1]g
  • 連結線 (tie):1 ~ 1
  • 圓滑線 (slur):1 ( 2 )
  • 強弱符號:\p \mp \f (修飾前一個音)

反覆記號

  • 長反覆:R{ 1 1 1 } A{ 2 | 3 }
  • 短反覆:R4{ 1 2 } (少於一小節的反覆)

其他功能

以下是其他功能性指令:

  • NextScore:用來隔開多聲部
  • OnePage:抑制換頁
  • NoBarNums:去除小節計數
  • WithStaff:同時展示簡譜和五線譜

我們延用先前的例子,加入功能性指令:

% jianpu-ly.py 文檔
title=小星星
1=C
4/4

NoBarNums
WithStaff

1 1 5 5
6 6 5 -
4 4 3 3
2 2 1 -
5 5 4 4
3 3 2 -
5 5 4 4
3 3 2 -
1 1 5 5
6 6 5 -
4 4 3 3
2 2 1 -

轉出來的樂譜如下:

小星星 (簡譜附線譜版)

jianpu-ly 的限制

雖然 jianpu-ly 使用 LilyPond 做為樂譜排版系統,但該腳本刻意使用簡譜的記譜法,無法相容於 LilyPond 文檔,故無法一檔兩用。

關於作者

撥子為資訊碩士及音樂愛好者,曾學習中阮、烏克麗麗、吉他、鋼琴等樂器。

除了對音樂的愛好,撥子喜歡黑咖啡和日本料理,會簡單的日文,有時會閱讀,有時會自助旅行。