마비노기 MML 문법 안내
처음부터, 읽을 수 있고 쓸 수 있을 때까지
MML이란
MML(Music Macro Language, 음악 매크로 언어)은 악보를 그냥 텍스트로 쓰는 방법입니다. 마비노기의 작곡 시스템이 받는 것이 바로 이 형식입니다 —— 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 | 2분음표 |
c4 | 4분음표 |
c8 | 8분음표 |
c16 | 16분음표 |
모든 음에 숫자를 쓰는 건 번거로우므로 l(length)로 기본 길이를 정할 수 있습니다. 뒤에 숫자가 없는 음은 이것을 씁니다:
l8 cdefg c8 d8 e8 f8 g8 과 완전히 같습니다
l8 cde4 fg e만 4분음표이고 나머지는 8분
뒤에 점을 하나 붙이면 점음표가 되어 길이가 1.5배가 됩니다:
c4. 4분음표 × 1.5
c4.. 4분음표 × 1.75
점은 숫자에 붙는 것이지 겹쳐지지 않습니다. l4.이라고 쓴 뒤의 c.은 1.5박이고 2.25박이 아닙니다. 1.5박이 되는 것은 c라고만 쓴 쪽입니다. 여기서 착각하는 분이 많고, 긴 악구에서 박이 어긋나는 원인은 대개 이것입니다.
옥타브
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, 중간에 끊기지 않습니다
마디를 가로지르는 긴 음이나, 길이로는 나타낼 수 없는 박(예를 들어 5박)은 이것에 기댑니다.
n 뒤에 숫자를 붙이면 절대 음높이가 됩니다. n48은 o4c와 같습니다. o의 영향을 받지 않고, 뒤의 옥타브 상태도 바꾸지 않습니다. 손으로 쓸 때 쓸 일은 드물고, 주로 도구가 만든 악보에 나옵니다.
트랙과 글자 수 상한
마비노기의 빈 악보는 4트랙을 받습니다: 멜로디, 화음1, 화음2, 노래. 트랙끼리는 쉼표로 나누고, 전체 앞에 MML@, 끝에 ;를 붙입니다:
MML@t120l4cdefg,l4ceg,l4egc;
이것은 악기 악보로, 앞의 세 트랙(멜로디/화음1/화음2)을 씁니다. 노래 악보는 네 번째만 씁니다.
트랙마다 따로 글자 수 상한이 있습니다. 숫자는 게임이 정하며 움직일 수 없는 상한입니다. 넘으면 붙지 않습니다. 셀 때 공백은 들어가지 않으므로 줄바꿈과 들여쓰기는 상한을 쓰지 않습니다. 줄바꿈으로 마디를 나눠 읽기 좋게 만들어도 됩니다.
게임이 정한 글자 수를 넘으면 글자 수가 빨개지지만 편집을 막지는 않습니다. 줄이는 방법은 자주 묻는 질문의 그 절을 보세요.
다른 도구와의 표기 차이
MML은 마비노기만 쓰는 것이 아니고, 구현마다 세부가 완전히 같지는 않습니다. 이 사이트의 해석기는 마비노기를 따르되, 다른 곳에서 가져온 악보도 읽히도록 몇 가지 외래 표기를 처리합니다:
| 표기 | 이 사이트의 처리 |
|---|---|
h | b로 다룹니다. 독일식 표기로, 3MLE 악보에 가끔 나옵니다 |
@로 시작하는 악기 명령 | 읽히지만 적용되지 않습니다. 이 사이트의 음색은 탭의 악기 드롭다운이 정합니다 |
[ceg]4 화음 | 없앴습니다. [와 ]는 알 수 없는 문자로 버려지고, 안의 음 이름은 단음으로 차례차례 읽힙니다 —— 그래서 옛 악보의 화음은 선율로 바뀝니다 |
| 한 트랙 안의 쉼표 | 「붙여넣기」를 쓰라고 알려 줍니다. 그쪽이 여러 트랙으로 제대로 나눠 줍니다 |
MML@ 접두사와 끝의 ; | 탭 하나에 붙여도 문제없습니다. 해석과 내보내기 모두 알아서 처리합니다 |
가장 흔한 네 가지 실수
t가 자기 트랙에만 적용된다고 여기기 —— 곡 전체에 적용됩니다. 여러 트랙이 각각 템포를 갖고 있으면 울릴 때 반드시 어긋납니다.- 점을 겹쳐서 박을 잘못 세기 ——
l4.뒤의c.은 여전히 1.5박입니다. [ceg]가 아직 된다고 여기기 —— 화음 표기는 없어졌고, 그 세 글자는 차례로 울리는 세 음으로 읽힙니다. 화음은 트랙을 나눠야 합니다(자주 묻는 질문).- 글자 수만 보고 트랙을 보지 않기 —— 상한은 트랙마다이지 곡 전체가 아닙니다. 한 트랙이 넘었다면 다른 트랙에 여유가 있어도 통과되지 않습니다.
한 글자씩 치고 싶지 않다면 마우스로 그릴 수도 있습니다 —— 편집기 입문을 보세요. 그린 것이 그대로 위의 텍스트가 됩니다. 기존 곡을 통째로 변환하고 싶다면 MIDI를 MML로를 보세요.