Skip to content

Latest commit

 

History

History
128 lines (71 loc) · 6.07 KB

help.md

File metadata and controls

128 lines (71 loc) · 6.07 KB

怎麼用 Music Code Player

Music Code Player 是個網頁程式,可以讓你只用純文字就打出音樂。

要播放音樂,你要使用 MML 語法描述音樂

MML 語法

MML 是 Music Macro Language 的縮寫。本程式使用的 MML 語法不分大小寫,所以說 A4a4 是同樣的意思

  • CDEFGAB

    音符,格式為 音高 升降號 長度 附點。 音高是 A ~ G 中的一個字母,C 是 Do,D 是 Re,E 是 Mi,以此類推。

    升降號是 0 或多個 +#-=+# 是升記號,- 是降記號,= 是還原記號。

    長度是個正整數,如 4 代表四分音符。可選擇性增加1個附點,效果和附點音符一樣,是延長至原本長度的 3/2。

    以上的各部分,除了音高外都可以省略。而且各部分可用空格分隔,也可以完全不分隔。

    A + 2 .A+2. 都表示升 A (La) 附點二分音符

  • PR

    休止符,和音符的格式很相似,但沒有音高、升降號。如 P 4R4 都表示四分休止符

  • O

    指定八度,後面的數字表示接下來的音符在哪個八度。O4 是涵蓋中央Do的八度範圍。數字越大,音高越高。

    如果沒有用 O 指定八度範圍,那麼八度範圍就會預設為 O4

    O 指令的效果只延續一個音軌,所以每個音軌都要設定一次,才不會套用到預設的「O4

  • <

    往後的音符降八度

  • > 往後的音符升八度

  • L

    設定音符和休止符沒有指定長度時的預設長度,例如 L8 C C C C L16 D D D D 表示 4 個八分音符 Do 後面跟著 4 個十六分音符 Re

    可以加上附點,如 L4. 表示往後沒有指定長度的音符都是附點四分音符。

    如果音符沒有長度,也沒有用 L 設定長度,那麼音符的長度就會預設為四分音符。

    L 指令的效果只延續一個音軌,所以每個音軌都要設定一次,才不會套用到預設的「四分音符」

  • T

    設定節拍速度,例如 T120 是以每分鐘 120 拍來播放。一拍是四分音符的長度。 如果沒有用 T 指定速度,那麼速度預設為 120。

    T 指令的效果會套用到所有的音軌上,因此不論 T 指令放在何處,各音軌的節拍都能保持同步。還有,一個音樂可以有多個T 指令

  • N 用數字來輸入音高,格式為 N 音高 附點,音高是非負整數,以半音階為單位,並定義 N48 表示中央Do。

    N 可以加附點,但是不能指定長度,如果要改變 N 音符的長度,請使用 L 長度 指令

  • V

    設定音量大小。後面接著的數字表示音量,可以是 0~127 之間的整數。

    在 MML 相容模式時,音量只能是 0~15 之間的整數

    如果沒有用 V 指定音量,那麼音量就會預設為音量上限的一半,無條件捨去至整數。

    V 指令的效果只延續一個音軌,所以每個音軌都要設定一次,才不會套用到預設的「V 音量上限的一半

  • &

    和樂譜中的連接線一樣,可以把同音高的音符連起來,如 C2 & C4. 表示把二分音符 (2拍) 和附點四分音符 (1.5拍) 連起來,總共 3.5 拍

  • MML@

    進入 MML 相容模式。在 MML 相容模式中,你可以用逗號 , 分隔音軌

  • ; 離開 MML 相容模式,另外 ; 是單行註解,所以 ; 右邊的文字不會當成音樂播放

指令之間可用空格分隔,但這不是必要的,所以可以視版面需求,在音符間塞入幾個空格。還有,所有指令都不分大小寫


以下的指令是本程式特有的功能

  • , (逗號)

    往後的音符降八度。如果在 MML 相容模式下,則會進入下一個音軌

  • ' (單引號)

    往後的音符升八度

  • /

    和弦,用法是音符 / 音符 ... / 音符,如 C/E/G 是同時播放 Do、Mi、Sol。只有第一個音符需要指定長度,其他音符的長度會等於第一個音符的長度

  • K 調性名稱

    設定調號。調性名稱都視為大調解讀。如 KD 表示音樂以 D 大調演奏。設定調號後,往後沒有升降號的音符都會加上調號所指定的升降記號,如 D 大調的 Do 和 Fa 會升半音,這時 KD D E F G A B C 會演奏成 D E F+ G A B C+

    如果要指定為小調,請將調性名稱設定為它的關係大調,例如一個音樂是 d 小調,它的關係大調是 F 大調,則輸入 KF

    調號名稱可以輸入升降號,如降 B 大調可用 KB- 表示

    調號的設定會延續到所有的音軌

  • K 升降記號

    設定移調,如 K++ 表示把往後的音符全部升兩個半音。移調效果發生在音符加上調號和升降號之後,所以 KD K++ F 會演奏升 F 再往上兩個半音,也就是升 G。

    可以用這個指令把整個音樂轉調,而且和前一個指令「設定調號」一樣,設定會延續到所有的音軌

    如果同一個音軌有多個移調指令 (注意不是設定調號),則移調效果會疊加。例如 K++ K- 會造成音樂升兩個半音,再降一個半音,總效果就是升一個半音。另外 K= 是沒有效果的,因為本程式把它解讀成「升 0 個半音」,不是「消除移調效果」

  • ! 音軌編號

    可以切換到其他音軌,是的,這個程式可以支援多音軌。音軌編號是 0 或正整數。例如 !0 C !1 F 會同時播放 Do 和 Fa。

    各音軌可以交錯排列,如 !0 C D !1 E !0 F !1 G A 會解讀成 !0 C D F !1 E G A

    進入 MML 相容模式時的音軌編號是 0,每輸入一個逗號 (,),就會跳到目前音軌編號 + 1 的音軌,不過並不建議將 MML 相容模式的 , 和這個功能混用

  • ~

    功能和樂譜中的連結線一樣,不過和先前講到的 & 指令有些許不同。在搭配和弦指令 / 使用時,& 會嘗試連結所有在同一和弦的音符,而 ~ 需要緊接在音符之後,並且只連結它緊接著的音符。如 c4/e4 & c4/e4 效果如同 !0 c4 & c4 !1 e4 & e4,而 c4/e4~ c4/e4 效果如同 !0 c4 c4 !1 e4 & e4 (注意第 0 音軌的 C 沒有連接線)