夜光 MML 공방

마비노기 MML 문법 가이드

처음부터, 읽고 쓸 수 있을 때까지

  1. MML이란
  2. 음표와 쉼표
  3. 길이와 점음표
  4. 옥타브
  5. 템포: 곡 전체가 공유
  6. 벨로시티
  7. 이음줄과 n 명령
  8. 트랙과 글자 수 상한
  9. 다른 도구와 표기가 다른 점
  10. 가장 흔한 네 가지 실수

MML이란

MML(Music Macro Language, 음악 매크로 언어)은 악보를 순수한 텍스트로 쓰는 방법입니다. 마비노기와 마비노기 모바일의 작곡 시스템이 바로 이런 텍스트를 읽습니다 —— t120 l4 cdefg 같은 문자열을 게임의 빈 악보에 붙여넣으면 캐릭터가 그대로 연주합니다.

오선보도 숫자보도 아니고, "각 음을 어떻게 낼지 명령으로 적는다"에 가깝습니다. 장점은 복사해서 붙일 수 있고 텍스트 도구로 처리할 수 있다는 점, 단점은 틀려도 아무도 알려 주지 않는다는 점입니다. 보통은 재생해 봐야 압니다.

아래 각 절은 그대로 에디터에 붙여넣어 재생할 수 있습니다. 읽으면서 고쳐 보세요. 글을 이해하는 것보다 차이가 들리는 것이 더 중요합니다.

음표와 쉼표

일곱 음이름이 도부터 시까지에 대응합니다:

표기표기
cg
da
eb
fr쉼표(소리 없음)

올림표는 + 또는 #, 내림표는 -를 씁니다:

c+   도♯(레♭과 같음)
d-   레♭

대문자와 소문자 모두 되고, 이 사이트는 같은 음으로 취급합니다.

길이와 점음표

음이름 뒤의 숫자가 그 음의 길이이고, 이 숫자는 분모입니다:

표기
c1온음표
c22분음표
c44분음표
c88분음표
c1616분음표

모든 음에 숫자를 쓰기는 번거로우니 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박이 아닙니다. c만 쓴 것이 1.5박입니다. 이 점을 오해하는 사람이 많고, 긴 악구에서 박이 어긋나는 원인이 여기에 있습니다.

옥타브

o 뒤에 1부터 7까지를 붙이면 음높이가 어느 옥타브에 놓일지 정해집니다. o4c가 가운데 도입니다.

<는 한 옥타브 내리고 >는 한 옥타브 올립니다 —— 선율이 위아래로 움직일 때는 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    온음표 두 개 길이의 도, 중간에 끊기지 않음

마디를 넘는 긴 음, 그리고 길이로는 나타낼 수 없는 박(예를 들어 다섯 박)은 모두 이것에 의지합니다.

n 뒤에 숫자를 붙이면 절대 음높이가 되고, n48o4c와 같습니다. o의 영향을 받지 않으며 이후의 옥타브 상태도 바꾸지 않습니다. 손으로 쓸 일은 거의 없고, 주로 도구가 만든 악보에 나타납니다.

트랙과 글자 수 상한

마비노기의 빈 악보는 6트랙입니다: 주선율 하나에 화음 트랙 다섯. 트랙 사이는 쉼표로 나누고, 곡 전체 앞에 MML@, 끝에 ;를 붙입니다:

MML@t120l4cdefg,l4ceg,l4egc;

한 트랙에 최대 2,400자입니다. 이것은 게임 쪽의 단단한 제한이라 넘으면 붙여넣을 수 없습니다. 셀 때 공백은 넣지 않습니다 —— 줄바꿈과 들여쓰기는 몫을 쓰지 않으니, 마디마다 줄을 바꿔 악보를 읽기 좋게 만들어도 됩니다.

이 사이트의 에디터는 탭을 15개 열 수 있지만 게임에 들어가는 것은 앞의 6개뿐입니다. 나머지 아홉 개는 편곡하는 동안 소재를 잠시 두는 곳입니다. 탭의 위치가 그 탭의 신분이므로, 끌어서 순서를 바꾸면 내용과 악기도 함께 옮겨집니다.

2,400자를 넘으면 글자 수가 빨갛게 되지만 편집을 막지는 않습니다. 줄이는 방법은 자주 묻는 질문의 그 절을 보세요.

다른 도구와 표기가 다른 점

MML을 쓰는 것은 마비노기만이 아니고, 구현마다 세부가 조금씩 다릅니다. 이 사이트의 파서는 마비노기의 표기를 따르면서, 바깥에서 온 표기도 몇 가지 처리해 다른 곳에서 얻은 악보도 읽어 들일 수 있게 했습니다:

표기이 사이트의 처리
hb로 취급합니다. 독일식 표기로, 3MLE 악보에 이따금 있습니다
@로 시작하는 악기 명령읽지만 적용되지 않습니다. 여기서 음색은 탭의 악기 드롭다운이 정합니다
[ceg]4 화음중단되었습니다. []는 알 수 없는 다른 문자와 함께 버려지고, 안의 음이름은 단음으로 차례대로 읽힙니다 —— 옛 악보의 화음은 선율이 됩니다
한 트랙 안의 쉼표"붙여넣기"를 쓰라고 알려 줍니다. 그쪽이 여러 트랙으로 제대로 나눕니다
MML@ 접두사와 끝의 ;탭 하나에 붙여넣어도 괜찮습니다. 해석과 내보내기가 알아서 처리합니다

가장 흔한 네 가지 실수

  1. t가 자기 트랙에만 적용된다고 생각하기 —— 곡 전체에 적용됩니다. 트랙마다 다른 템포를 쓰면 재생했을 때 반드시 어긋납니다.
  2. 점음표가 겹친다고 보고 박을 잘못 세기 —— l4. 뒤의 c.도 여전히 1.5박입니다.
  3. [ceg] 화음 표기가 아직 된다고 생각하기 —— 이미 중단되어 그 세 글자는 차례로 울리는 세 음으로 읽힙니다. 진짜 화음은 트랙을 나눠야 합니다.
  4. 글자 수만 세고 트랙을 세지 않기 —— 2,400은 트랙마다의 상한이고 곡 전체의 상한이 아닙니다. 여섯 트랙을 합치면 1만 4천 자를 넘습니다.

완성된 곡을 한 음씩 치지 않고 MML로 만들고 싶다면 MIDI를 MML로 바꾸는 가이드를 보세요.