绪论


近期发现很多小伙伴在使用软件生成MML曲谱后经常出现力不从心的情况

才发现许多人都不理解MML代码的意义,在此特别撰写一篇文章

简单的介绍一下MML代码的构成,没有乐理知识也能看懂哦

何为MML

mml是「Music Macro Language」音乐标记语言 的简称

打个比方,比如一个人去演奏钢琴,那他肯定需要一个乐谱,这时候五线谱简谱等书面乐谱就是最好的,因为大家都可以快速的知道每个小节需要按下什么键,要按多久,要怎么按。

但是在计算机中,让计算机去读五线谱显然不太现实,所以便产生了MML代码这种文本语言,这种通用文本可以被所有电脑读取,从而播放出来。

简单来说,MML就是乐谱表示的一种形式,只不过这个乐谱是给计算机去读取的,而不是人类。所以游戏内使用的皆为MML乐谱。

MML代码的构成

现在我们知道了MML代码是一串交给电脑阅读的文本,但是我们人类也需要对其进行修改,所以我们也应该去学习如何阅读他。

注意: MML代码不区分大小写 同时也会忽略错误的字符(所以在乐谱中夹杂中文或者其他符号不会影响乐谱播放)

乐理基础知识 - 快速看懂MML代码
*游戏《上古世纪》 说明书

下面我会讲解一些基础的构成

Part1 音阶

大家都知道 乐谱是由 Do Re Mi Fa Sol La Si 七个基础音阶组成

这七个音阶在MML代码中分别对应为

C D E F G A B

由此可得 以下MML代码可以翻译为

dgabc (DGABC) =读作=> Re Sol La Si Do (唻 嗖 拉 西 哆)

再次注意 MML代码中不区分大小写

Part2 时值

光有基础的音阶还不够 我们写出的乐谱太单调了 我们需要将他们改成不同的时值(长度)

因此 我们需要对它们进行修饰

音符的长度通常被分为

1分音符 2分音符 4分音符 8分音符 16分音符 ····

乐理基础知识 - 快速看懂MML代码
从第二个开始 音符的时值依次是前面的一半(二分之一)

举个不恰当的例子 (其实这和节拍有关 比较难理解 我就举时间的例子了)

比如一个 一分音符的Do 时值是1秒(也就是Do~这个音要弹奏1秒)


那么之后的 二分音符的Re 的时值也就是0.5秒(Re~这个音要弹奏0.5秒)


在代码里只需要在 音阶后面跟上数字 即可表达音符的时值

一分音符的Do =写作=> C1 (c1)

二分音符的Re =写作=> D2 (d2)


大概理解了吧?  等等,我们这里还有一个点没有说

对的 就是一个点 -> . <-

这个在乐理中叫做附点音符 加在任何音符之后便可以延长其50%的长度

不需要理解哦 你现在知道为什么代码中总是有一堆莫名其妙的点了吧

让我们来总结一下

c2 d8 e32 a128.  (c2d8E32A128.) =读作=> Do(2分) Re(8分) Mi(32分) La(128分附点)

Part3 音调

我们现在写出来的乐谱长短不一了 看起来很有节奏感(动次打次) 但是还是太单调了 因为所有的音都是一样高的!

音调(o1~o10) 数字越高表示的音调也越高


这里要参考游戏的设置 或者乐器的设置 因为不是所有乐器的音域都足够饱满 可以演奏出所有的音调的!


我们再加入一点改变 让他们表示不同的音调

我们只需要在一个段落前加上表示 这样就可以让后面所有的音符都使用这个音调

o1 cdf o2 cdf o3 cdf =读作=> 1调的 Do Re Mi 2调的 Do Re Mi 3调的 Do Re Mi

当然 一般情况下 不会总是使用 o1~o10 来标记 因为一个乐谱的音符很少跨那么大的音域 所以我们一般只在开头标识一下标准的音域是多少

然后我们使用 > 和 < 来修改音符的音调(升或降八度)

比如

o4 cd ><<f =读作=> 4调 Do Re 5调 Mi 3调

Part4 小结

好了 让我们尝试将三个东西组合到一起

o4 c2 d8 <a4 >>b16. c2  / (o4c2D8<A4>>B16.c2)

请试着翻译一下上方的代码(括号内的是不含空格且大小写随机的 显得更加混乱)

o4 c2 d8 <a4 >>b16. c2  =读作=>

 4调 Do(二分) Re(八分) 3调 La(四分) 5调 Re(附点十六分) Do(二分)

Part5 乐谱的基础属性

乐谱除了由上面的音符构成 还拥有其他属性哦

曲速(Tempo)

曲速 BPM 用于衡量这首曲速到底以多少速度来演奏 越小的数值越慢 反之亦然

在 MML中 以 (t32~t255) 来表示 在曲目开头部分一定会有标识 并且多轨音乐的情况下要使用一样的曲速 不然多轨就会出现不同步的情况

少数音乐会进行变速 也就是在乐谱中穿插曲速标识 注意识别


t128 o4c2D8<A4>>B16.c2  (128BPM)

音量(Volume)

音量 字如其名 表达不同的响度

在MML中以(v1~v1000) 来表示 这个由游戏设置或软件设置不同而改变

比如在天谕中 音量的范围是 (v1~v15)

而在 上古世纪中 音量的范围是 (v1~v127)

请根据游戏或者软件设置 灵活调整这个值

同曲速一样 这个会在开头进行标记 一般主旋律的声音会比和弦大一些 用于突出重点

少数曲子也会全局变音 也就是在代码中穿插一堆的 vXX 注意识别

t128 v15 o4c2D8<A4>>B16.c2 (音量 : 15)

注意

以上没有固定的顺序 可以曲速在前或者音量在前 甚至音调在前也是可以的

Part6 拓展内容

以下内容属于拓展内容 可以自行阅读

乐理基础知识 - 快速看懂MML代码
乐理基础知识 - 快速看懂MML代码
乐理基础知识 - 快速看懂MML代码
乐理基础知识 - 快速看懂MML代码


Per Aspera Ad Astra