포스트

MML : Music Macro Language

MML : Music Macro Language

요즘 마비노기 모바일이라는 게임을 플레이중인데, 이 게임에는 특별한 컨텐츠가 있다

바로 플레이어가 음악을 작곡하고 이를 연주할 수 있는 기능인데

이는 원작인 마비노기(2004)부터 이어져 온 대표적인 컨텐츠다

Image

그런데 막상 인게임에서 작곡 화면을 보면 오선지는 안보이고

MML 코드를 입력할 수 있습니다 라고만 적혀있다

MML 코드는 무엇이고, 어떻게 이를 통해 음악을 재생할 수 있는걸까?


MML이란?

MML이란 Music Macro Language의 약자로, 음악을 텍스트 기반으로 표현한 언어이다

문자와 숫자를 조합하여 음표, 길이, 옥타브, 템포 등을 지정하여

컴퓨터나 게임 콘솔에서 음악을 재생할 수 있도록 했다


🎮 아케이드 게임과 전자음악의 등장

1970년대 중반, 아케이드 게임에서 전자 음악이 도입되기 시작했다

건파이트(Taito, 1975)와 서커스(Exidy, 1977)는 초기 게임 음악의 예로,

컴퓨터 사운드를 활용한 자동 음악 생성 기능을 사용하여 게임의 배경음악을 제작했다

일본 전자음악 밴드 옐로 매직 오케스트라(YMO) 는 “스페이스 인베이더”와 “서커스”의 사운드를 샘플링하여

아날로그 신디사이저로 재현, 게임 음악을 음악 예술로 끌어올렸다고 한다


🖥️ 초기 마이크로컴퓨터와 음악 생성

mz-40k

1978년, SHARP의 MZ-40KIntel 8253 프로그래머블 타이머를 사용해 음악을 생성할 수 있었다

이 시스템은 BASIC 언어의 MUSIC, TEMPO, BEEP 명령어를 통해

음악을 직접 코드로 제어할 수 있었고, 이는 MML의 초기 형태로 간주되었다


🧩 오픈 아키텍처와 MML의 발전

MZ-40K는 오픈 아키텍처공개된 프로그램 소스를 특징으로 하며,

사용자가 직접 음악 코드를 작성하고 실행해볼 수 있는 환경을 제공하였다

이는 후속 시스템들과 개발자 커뮤니티에 MML의 발전 기반을 제공하였으며,

이후에도 다양한 기종에서 MML 스타일의 음악 제어 문법이 등장하게 됨

MZ-80Manual 샤프사의 1987년 MZ-80 BASIC 매뉴얼. MML 구문의 기원을 설명한 문서의 일부.

이러한 역사적 배경속에서 MML은 발전하여,

현재까지도 다양한 플랫폼과 도구에서 음악을 프로그래밍하는데 사용되고 있다


✅ MML의 버전별 발전

🎼 초창기 MML (Classical MML)

1978년 SHARP의 MZ-80K 컴퓨터에서 SP-5001 BASIC OS를 통해 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 1 PRINT "TOORYANSE"
 2 PRINT "ARRANGED BY"
 3 PRINT " (C)2012 MOTOI KENKICHI"
 4 PRINT " THANKS ALL WIKIPEDIANS."
 10 TEMPO 4
 20 A$="E5R1E3R0D3R0E3R0E1R0D1R0-G4R1"
 30 B$="F3R0F1R0F1R0A3R0F1R0E1R0D1R0D1R0E5R0"
 40 C$="C3R0C1R0C1R0E3R0C1R0-B1R0C1R0-B1R0-A1R0-A1-B5R0"
 50 D$="E1R0E1R0E1R0E1R0E1R0E1R0D1R0E1R0E1R0E1R0D1R0-A1R0-A1R0B3R1"
 60 E$="-A1R0-B1R0C1R0D1R0E1R0F1R0E1R0F3R1A3R1B1R0A1R0F3R0E3R0E1R0E4R0"
 100 MUSIC A$+B$+B$
 110 MUSIC C$+C$+B$
 120 MUSIC C$+D$+E$

도랸셰라는 곡을 재생하는 MML

`MUSIC`, `TEMPO`, `BEEP` 등의 명령어로 간단한 음악 시퀀스를 작성할 수 있었음

이와 같은 형태가 초기의 MML 텍스트 포맷으로, BASIC 코드와 결합된 형태였음


🎹 현대 MML (Modern MML)

1980년대 NEC, SHARP 등 일본 8비트/16비트 PC에서 Microsoft BASIC 기반으로 널리 사용되었다

NEC PC-6001, PC-8801 등의 기종에 내장된 PSG(Programmable Sound Generator)와 함께 사용했으며,

2001년에는 NES용 음악 컴파일 툴킷인 MCK (Music Creation Kit) 가 등장했다

MML 문법으로 작성한 코드를 NES 사운드칩에서 재생 가능한 바이너리로 컴파일하는 용도로 사용되었다

FamiTracker, PPMCK, 3MLE 같은 툴과 함께 칩튠 음악가들에게 많은 사랑을 받았다

현재도 레트로 게임 음악, 도트 스타일 게임, 전자 음악 작곡 등에 사용된다

✅ 2. 🎯 현재 MML이 사용되는 곳

일반 상업용 게임이나 현대 음악제작에는 거의 사용되지 않지만

마비노기, 로스트아크, 메이플스토리2 등 일부 MMORPG에서

MML 기반 작곡 기능을 유저에게 제공하기도 한다

레트로적인 감성 이나 개인 창작용으로 일부 사용되기도 한다

혹은 레트로 감성의 칩튠(Chiptune)음악 제작할 때 사용된다

FamiTracker, MCK, 3MLE 등을 통해 NES/Famicom 등의 사운드칩에 맞춘 음악을 제작한다

거의 쓰이진 않지만 임베디드 시스템 및 교육용 보드에도 일부 사용된다고 한다

Arduino, micro:bit, IchigoJam, BASIC Stamp 등에서 MML과 유사한 문법으로 사운드 제어가 가능하여, 소형 스피커/버저를 제어하며 간단한 음악 연주 가능하다

리소스를 아껴야 하는 환경에서 간단한 사운드 출력 방식으로 사용할 수 있을지도 모르겠다


다음글에서는 MML의 간단한 문법 특징과 이를 이용한 작곡 방법을 알아보겠음

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.