MIDI 轉 MML
把現成的曲子變成瑪奇能演奏的樂譜
為什麼不能直接轉
MIDI 與 MML 表達能力差很多,這是整件事的根源:
| MIDI | 瑪奇 MML | |
|---|---|---|
| 同時發聲 | 一個聲部可以同時響好幾個音 | 一軌同時只能響一個音 |
| 聲部數量 | 16 個 channel,各自不限 | 6 軌 |
| 樂器 | 同一軌中途可以換 | 一軌一個樂器,中途不能換 |
| 時間精度 | 非常細,可以記錄真人演奏的微小誤差 | 要落在格子上才寫得出來 |
所以轉換的本質是取捨:從每個瞬間好幾個音裡挑一個留下來。轉出來的東西一定比原曲少,問題只在於「少掉的是不是你在意的那些」——而那正是採樣模式在決定的事。
操作步驟
- 在編輯器標題列點檔案
- 在匯入區塊選你的
.mid檔 - 檔案框會自己關掉,換成音軌清單
- 勾選要匯入的列,每一列各自選一種採樣模式
- 按匯入
匯入不是取代,是追加——現有的軌不會被蓋掉。想分次匯入不同聲部,重複做幾次就好。
音軌清單怎麼讀
清單上每一列會顯示 Ch 3 · Bright Acoustic Piano 這樣的格式。兩個地方值得說明:
一列不是一個 channel
一列代表一組(MIDI 音軌, channel)的組合,不是單純照 channel 分。原因是鋼琴譜常常把左右手寫成兩個音軌卻共用同一個 channel——照 channel 合併會把左右手混在一起,採樣器要在兩隻手之間挑,採出來的東西沒辦法聽。
同樣地,也不會因為一軌中途換了樂器就把它拆開。瑪奇本來就做不到軌中途換樂器,拆了也表達不出那個變化,只會白白佔掉兩個軌位而且兩軌都半空。這種列會標上「▸ N 種音色」提醒你。
顯示的是 GM 音色名,不是軌名
這是刻意的。軌名是人打的自由文字,GM 音色是機器寫的、播放器真的會照著發聲的值。實際遇過的檔案:
| 檔案裡的軌名 | 實際的 GM 音色 |
|---|---|
MIDI main | Vibraphone(鐵琴)——從軌名完全看不出來 |
MIDI violin | String Ensemble 1——軌名是錯的,那是弦樂群奏 |
©MidiStar(整份 12 軌都一樣) | 各不相同——軌名只是匯出工具的浮水印 |
你要靠這一列決定採樣模式(鋼琴用哪一種、貝斯用哪一種),照一個可能是錯的名字選就會選錯。檔案沒有寫音色時才退回顯示軌名。
Channel 10 是打擊組,會標「打擊」而且預設不勾。瑪奇沒有對應的鼓組,硬轉出來只會是一串莫名其妙的音高。
三種採樣模式
模式只決定一件事:同一瞬間響了好幾個音的時候,留下哪一個。
| 模式 | 留下 | 適合 |
|---|---|---|
| 旋律重視 | 最高的音 | 主旋律、右手、長笛、獨奏 |
| 根音重視 | 最低的音 | 貝斯、左手和弦的根音 |
| 旋律 + 根音 | 兩種各跑一次,產生兩軌 | 鋼琴編曲 |
兩個推論值得記住:
- 單音的聲部兩種模式結果完全一樣。 貝斯、主旋律、獨奏本來就同時只有一個音,選哪個都沒差。
- 「長音被丟掉」不是壞掉,是選錯模式。 一個全音符上面壓一個八分裝飾音:旋律重視採出裝飾音那條線,根音重視採出長音那條線。你要哪一條是你決定的,不是程式猜的。
「旋律 + 根音」是鋼琴譜的正解。 最常見的匯入素材是鋼琴編曲,整首只有一到兩個 channel——照一對一匯入,六個瑪奇軌位會閒置四個。用這個模式,一份鋼琴 MIDI 可以變成「右手旋律、右手內聲部、左手和弦、左手根音」四軌,聽起來厚很多。
分解和弦會被正確採到
採樣規則是任何新的音進場都切斷目前那個音,不管新的音比較高還是比較低。所以錯開進場、一起放開的分解和弦(C → E → G)會採成 c16 e16 g2..,而不是整段都是最高的那個 G。如果規則寫成「每一段取最高音」,琶音會整個消失。
軌數額度
一次最多匯入 15 軌,而且算的是加總——「旋律 + 根音」的列一列算兩軌。超額時會顯示紅字告訴你超了幾軌,匯入鈕會停用。
提醒一次:只有前 6 個分頁會進遊戲。 匯入 15 軌是可以的,但你最後要自己決定哪六軌留下、把它們排到前面。
匯入之後要檢查什麼
- 先按演奏聽一遍。 採樣規則沒有「錯誤」這種狀態,採歪了不會報錯,只會聽起來怪。
- 看字數。 匯入的結果通常會超過 2400。超了看下一點。
- 需要壓字數就用工具列的「優化」。 它是整個編輯器唯一會改變聲音的功能——動的是音符長度(延音或收音),不會動到任何一個音的進場時間,所以節奏在結構上不可能被改壞。三種規則一次只能選一個,跑完會告訴你省了幾個字。
- 檢查樂器。 匯入不會自動選瑪奇的音色,那要你在分頁上自己挑。
- 調力度。 伴奏軌壓低幾格,主旋律才浮得出來。
已知的限制
- 三連音會被打歪。 匯入時所有音會先對齊到 1/32 音符的格子上——這是為了讓真人彈的和弦(三個音差幾個 tick)能被認成「同時」,也讓鋼琴捲軸的每一格都對得上。代價是八分三連音落不到格子上。這是刻意的取捨:與其採進來一個捲軸修不了的音,不如讓它對齊。
- 不處理彎音、踏板、力度曲線。 瑪奇的 MML 沒有這些東西。
- 速度變化會保留,但記得速度是整首共用的(見 MML 語法教學)。
- 匯入的結果不需要再壓縮。 匯入器產生 MML 的最後一步就是壓縮器本身,所以按無損壓縮不會再少任何一個字。顯示超過 2400 就是真的超過,只能用「優化」或自己刪。
還沒看過 MML 語法?先讀 瑪奇 MML 語法教學,匯入之後要手動修的時候會用到。其他問題看常見問題。