雖然上網很方便,在網路上看資料無法取代真正的音樂養成教育。時間和經濟許可的話,仍建議找老師學習音樂,會少走許多彎路。
若本文內容有誤,請詢問你的音樂老師。
本網站未代理文章及贊助商連結中提及的樂器、器材及其他產品。
前言
由於簡譜未成為西樂主流的記譜方式之一,簡譜軟體甚少。本文介紹一個用來製作簡譜的 Python 腳本 jianpu-ly.py 。這個腳本本身是命令列程式,不會有視覺化編輯器。本文會一併介紹使用此腳本的方式和該腳本的簡譜語法。
建置環境
LilyPond
jianpu-ly 本身不輸出樂譜,而是透過 LilyPond 來產出樂譜,故需要在系統上建置撰寫 LilyPond 文檔的環境。請參考這篇文章來建置 LilyPond 環境,此處不重覆說明。
Python
jianpu-ly 需要 Python (直譯器) 才能使用。單純使用該腳本,不修改腳本內容的話,不需要學 Python 語法。
請到 Anaconda 官網下載個人版的安裝程式。其實 Anaconda 是設計給資料科學家 (data scientist) 使用的 Python 發行版。但我們不會用到進階的功能,所以用最基本的版本即可。本小節展示在 Windows 上安裝 Anaconda 的過程。
一開始出現的是 Anaconda 的歡迎訊息:
繼續下一步即可。
展示 Anaconda 的授權文件:
繼續下一步即可。
選擇安裝方式:
這裡建議選擇「Just Me」。日後要為 Anaconda 新增套件時,就不需要管理員權限。
選擇安裝位置:
除非有特殊理由,使用預設位置即可。
選擇進階選項:
除非有明確理由,使用建議選項即可。
開始安裝:
安裝完畢:
這時候還有一些收尾的動作,所以還有下一步。
這裡是工商服務時間,推薦 Anaconda 的使用者去購買 PyCharm (用來開發 Python 程式的軟體):
這裡當然不需要這項專業軟體,所以繼續下一步。
完成安裝 Anaconda 的流程:
有這些選項的話,會自動連到相關的教學網站。如果沒有要用 Python 寫程式的話,不需要勾選。
jianpu-ly 腳本
jianpu-ly.py 本身是小型 Python 腳本,直接下載即可使用。到該腳本的官網,在腳本連結上按右鍵:
選擇「另存連結為...」即可下載同名腳本。建議下載到 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/4
、2/4
、3/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 文檔,故無法一檔兩用。