瑪奇 MML 語法教學
從零開始,看得懂也寫得出來
MML 是什麼
MML(Music Macro Language,音樂巨集語言)是用純文字寫樂譜的方法。瑪奇(Mabinogi)與瑪奇 Mobile 的作曲系統就是吃這種文字——你把一串像 t120 l4 cdefg 的字貼進遊戲的空白樂譜,角色就照著演奏。
它不是五線譜也不是簡譜,比較接近「把每個音怎麼彈寫成指令」。好處是可以複製貼上、可以用文字工具處理;壞處是寫錯了不會有人提醒你,通常要播出來才知道。
底下每一節都可以直接複製到編輯器按演奏試聽。建議一邊看一邊改,聽得到差別比讀得懂更重要。
音符與休止符
七個音名對應到 Do 到 Si:
| 寫法 | 音 | 寫法 | 音 |
|---|---|---|---|
c | Do | g | Sol |
d | Re | a | La |
e | Mi | b | Si |
f | Fa | r | 休止符(不發聲) |
升記號用 + 或 #,降記號用 -:
c+ Do 升(等於 Re 降)
d- Re 降
大小寫都可以,本站一律當成同一個音。
長度與附點
音名後面接數字就是那個音的長度,數字是分母:
| 寫法 | 意思 |
|---|---|
c1 | 全音符 |
c2 | 二分音符 |
c4 | 四分音符 |
c8 | 八分音符 |
c16 | 十六分音符 |
每個音都寫數字很囉唆,所以有 l(length)可以設預設長度——後面沒寫數字的音都用它:
l8 cdefg 跟 c8 d8 e8 f8 g8 完全一樣
l8 cde4 fg 只有 e 是四分音符,其餘八分
後面加一個點是附點,長度變 1.5 倍:
c4. 四分音符 × 1.5
c4.. 四分音符 × 1.75
附點吃在數字上,不會疊加。 寫了 l4. 之後,接著的 c. 是 1.5 拍不是 2.25 拍;單寫 c 才是 1.5 拍。這一點很多人會誤會,寫長樂句時算錯拍就是從這裡來的。
八度
o 後面接 1 到 7 決定音高在哪個八度,o4c 是中央 Do。
< 降一個八度、> 升一個八度——旋律上下跑的時候用這兩個比一直寫 o 短很多:
o4 cde >c 最後那個 c 高一個八度
遊戲寫得出來的範圍是 o1 到 o7。超出去的音本站會夾回範圍內並在狀態列警告,不會靜靜地播出一個遊戲裡不存在的音。
速度:整首歌共用
t 後面接數字設定速度(BPM),例如 t120。
這是最容易搞錯的一件事:t 不屬於某一軌,它對整首歌生效。
任何一軌寫的 t,從那個位置起所有軌都跟著變。同一個位置有多軌都寫,以軌號小的為準。
會踩到的情境是這樣:只在第一軌寫了 t100,如果播放器讓每軌各自帶速度,第一軌會是 100、其餘維持預設的 120——聽起來就是越播越歪。本站照遊戲的行為做,先把所有軌的 t 合併成一張速度表再換算,所以不會有這個問題。狀態列的「速度」欄會把合併後的結果印出來,對不上一眼就看得到。
要改速度時建議用工具列的速度按鈕,它會把整首實際生效的速度收斂到主旋律那一軌並清掉其他軌的 t——出口只有一個,就不會出現「兩軌互相打架」的譜。
力度
v 後面接 0 到 15 決定音量,數字越大越響。它跟 l 一樣是持續生效的——設了之後,後面所有音都用這個力度,直到下一個 v。
v12 cde v8 fga 前三個音較響,後三個較輕
多軌合奏時,伴奏軌調低幾格會讓主旋律浮出來。工具列的力度按鈕可以整段調整,不用一個一個改。
連結線與 n 指令
& 把前後兩個同音高的音接成一個長音:
c1&c1 連續兩個全音符長度的 Do,中間不斷開
跨小節的長音、或是長度表達不出來的拍子(例如五拍)都靠它。
n 後面接數字是絕對音高,n48 等於 o4c。它不受 o 影響,也不改變之後的八度狀態。手寫很少用得到,主要是工具產生的譜會出現。
軌與字數上限
瑪奇的空白樂譜吃 6 軌:一個主旋律加五個和弦軌。多軌之間用逗號分隔,整首前面加 MML@、結尾加 ;:
MML@t120l4cdefg,l4ceg,l4egc;
每一軌最多 2400 個字,這是遊戲的硬限制,超過就貼不進去。計算時不含空白——換行與縮排不佔額度,所以可以放心用換行分小節,讓譜好讀一點。
本站的編輯器開得出 15 個分頁,但只有前 6 個會進遊戲;後面九個是給你編曲時暫放素材用的。分頁的位置就是它的身分,拖曳排序會連內容帶樂器一起搬。
超過 2400 字時字數會變紅但不會擋住你繼續編輯。要壓下來看常見問題那一節。
與其他工具的寫法差異
MML 不只瑪奇在用,各家實作的細節不完全一樣。本站解析器照的是瑪奇的寫法,另外對幾個外來寫法做了處理,讓你從別的地方拿到的譜也讀得進來:
| 寫法 | 本站的處理 |
|---|---|
h | 當成 b。德式記法,3MLE 的譜偶爾會有 |
@ 開頭的樂器指令 | 讀得進來但不生效。本站的音色由分頁上的樂器下拉決定 |
[ceg]4 和弦 | 可以播,方便試和聲——但這不是遊戲原生語法,貼回瑪奇不會動 |
| 單軌裡的逗號 | 會提醒你改用「貼上」功能,那才會正確拆成多軌 |
MML@ 前綴與結尾的 ; | 貼進單一分頁沒關係,解析與匯出都會自己處理掉 |
最常見的四個錯誤
- 以為
t只影響自己那一軌——它影響整首。多軌各寫各的速度,播出來一定歪。 - 附點疊加算錯拍——
l4.之後的c.還是 1.5 拍。 - 用了
[ceg]和弦寫法才發現貼不回遊戲——那是本站的試聽便利功能,不是遊戲語法。真正的和弦要拆到不同軌。 - 只算字數不算軌——2400 是每一軌的上限,不是整首。整首六軌加起來可以到一萬四千多字。
想直接把現成的曲子變成 MML,不用一個音一個音打——看 MIDI 轉 MML 教學。