Music Macro Language

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
Music Macro Language
Developer: N/A
Header: N/A
Content: N/A
Instruments: N/A
Target Output
Output - Digital Audio - No.png Output - MIDI - No.png Output - FM Synthesis - No.png Output - PSG - No.png
Released: N/A
First Game: N/A
  • *.mml
  • *.bas
  • *.pas

Music Macro Language or Music Markup Language is an abstract digital notation format for music. Because digital music can be made on numerous audio chips, each with unique capabilities, there is no standard format to MML. The format has always been dictated by the interpreting program and attempts to create a standard format have met with only limited success. MML can be seen in many different early computer programming languages and variations of it have been created by various game developers. Versions of it have been made for pretty much every early audio chip found in arcade games, home computers, and gaming consoles.

Specific companies like Beam Software and Color Dreams used custom forms for their Nintendo games, and even some modern day trackers use it to send audio data to the various audio chips.

List of Music Macro Languages

This is a list of known music macro languages. Where possible, a brief example is shown.


FMP is an MML for creating audio on the PC-8801 and PC-9801 by targeting the YM2608 and YM2203 chips.

Macro Music Kit (MCK)

Macro Music Kit is an MML for the NES created by Izumi in 2001. It includes a collection of support programs for generating audio with the MML and a compiler that converts your MML music into NSF to be added to an NES game. It supports the RP2A03, RP2C33, NAMCO163, VRC VI, VRC VII, and 5B chips. MCK is mostly in Japanese, but has some English documentation.

MCK was later updated with an extension called Pseudo Macro Music Kit (PMCK) which added features.

MCK was reworked again as the Pseudo Pseudo Macro Music Kit (PPMCK) which allows for simultaneous external sound chip support for all the NES chips. It was originally developed by h7 with additions written by BouKiCHi and AoiMoe.

Microsoft BASIC

This will play Ode to Joy on the PC Speaker.

10 PLAY "O2 T120 E8 E8 F8 G8 G8 F8 E8 D8 C8 C8 E8 E8 E8 D12 D4"
20 PLAY "E8 E8 F8 C8 G8 F8 E8 D8 C8 C8 D8 E8 D8 C12 C4"
30 PLAY "D8 D8 E8 C8 D8 E12 F12 E8 C8 D8 E12 F12 E8 D8 C8 D8 P8"
40 PLAY "E8 E8 F8 G8 G8 F8 E8 D8 C8 C8 D8 E8 D8 C12 C4"

MSXMusic Editor

MSXMusic Editor/Player is a program that plays music on the MSX and MSX2 with its own MML. It allows music to be played on the MSX PSG, YM2413, and YM8950. It supports importing from existing MuSICa, MSXBASIC, XM, ROL, SBI, and BNK files.


MuSICa is an MML program for the MSX and MSX2 that allows music to be created on the MSX PSG and YM2413.

Music-V Language

Music-V is a special type of MML used on audio chip in the Atari 8-bit. It is similar to that of composing on a staff. You write the note, the octave, and the length. For example, C3Q (Note: C, Octave 3, Quarter Note).

NES Sound Driver & Library (NSD.Lib)

The NES Sound Driver & Library (NSD.Lib) is a program used to create music for the NES using a custom MML. It supports the RP2A03, RP2C33, NAMCO163, VRC VI, VRC VII, and 5B chips. All the instructions are in Japanese.


NRTDRV is a custom MML and software compiler and driver for the Sharp X1. All the instructions are in Japanese.


OFGS (Famicom Sound Driver) is an program for making audio for the NES. It uses a custom MML and supports some expansion chips and the DPCM channel. It's entirely in Japanese.

Professional Music Driver (PMD)

Professional Music Driver (PMD) is a program for creating audio on the PC-8801, PC-9801, X68000, and FM Towns. It uses a custom MML to utilize the YM2608 and YM2203 chips.


This plays the Japanese song "Toryanse" on the PC Speaker in Sharp MZ-731.

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"
70 MUSIC A$+B$+B$
80 MUSIC C$+C$+B$
90 MUSIC C$+D$+E$


This program will play the first couple bars of J.S. Bach's Fantasia and Fugue In C Minor on the Tandy 3 Voice using Advanced BASIC format.

10 DIM A$(3)
20 DIM B$(3)
30 DIM C$(3)
50 PLAY "MLv15T80", "MLv14T80", "MNv15T80"
60 A$(0)="o2l6p6p6go3el12p12dl6ecl3fl12fl24edl12eagal6dl3gl12gl24fel12fco2bo3f"
70 B$(0)="o2l6p6p6p6p6p6cal12p12gl6ago3l3cl12cl24o2bal12bo3edel6o2al3o3d"
80 C$(0)="o1l1ccc"
90 A$(1)="o3l12fel3al12al24gfl12edegl6bl12agl6fl2o4c"
100 B$(1)="o3l12dl6co2l12bo3cdo2l3bl6bo3l12dcl3cl12cdefge"
110 C$(1)="o1l1cc"
120 A$(2)="o4l6cl12p12co3bo4co3l6bl12o4co3bagfl3gl6fp6e"
130 B$(2)="o3l12fcl3fl12fl24edl3el12el24dcbcbcl6dl12dl24cbl6cl12db"
140 C$(2)="o1l1cl2cl3cl6o2c"
150 FOR N = 0 TO 2
160 PLAY A$(N), B$(N), C$(N)
170 NEXT
180 END



PC-Engine / TG16 (HuC6280) Sound Tool by BouKiCHi


XPMCK is a music (expressed in MML) compiler kit targeted towards various video game systems. It currently supports the following systems:

   Amstrad CPC
   Atari 8-bit (400/800/XL/XE)
   Capcom Play System (VGM output only)
   Commodore 64
   MSX (KSS output only)
   Nintendo Gameboy / Gameboy Color
   PC-Engine / TurboGrafx
   SEGA Master System
   SEGA Game Gear
   SEGA Genesis


most VGM formats with unofficial extension for NES expansion chips


mckc for ksr - A DOS utility working as a part of KSR system. It's a mckc variant optimized to MSX music, and allows you to convert your MML (text-based sequence data) to actual numeric data in KSS format. Developed by BouKiChi.


KSR being developed by BouKiChi from Japan is a sort of MSX version of mck, the text-based NES music editor running on DOS/Windows. Depending on the same MML style, it generates executable or KSS music file for for Z80 + AY-3-8910 systems. KSR is provided with MML converter kmckc.


A DOS utility working as a part of mck system. It allows you to convert your MML (text-based sequence data) to actual numerical music data in NSF format. Developed by Manbow-J.


A Windows utility which efficiently helps music making on DOS-based chiptune editors such as mck (including pmck/ppmck), HuSIC and KSR. It detects updated MML file, It converts your MML file to the actual music data whenever the MML is updated, then automatically plays it. Developed by Rophon from Japan.


A DOS/Windows software which allows you to make Genesis/Mega Drive music. It converts sound informations described on MML text to its own MMD music format. MMD files are playable on the real platform and emulators when combined with mmdp.bin. The package includes Windows player mmdplayer.exe so that you can check your song via sound emulation. Developed by Uchuusen.


MML-based music edit system for MSX, being developed by Mega from Japan. SCMD supports internal PSG, MSX-MUSIC, SCC, and even allows you to use two SCC cartridges simultaneously. Although turboR is recommended for use, it's the first Japanese music editor featuring sample playback via SCC's five wave channels, and rich effect command sets are also attractive.


Wonder Swan Total Sound Driver - A set of DOS/Windows softwares to make sound data for WonderSwan. Or the file format of the music data by the driver. Based on MML.

WTD music files are played on the real console via WonderWitch, and also on emulators like OSWAN if you convert a WTD file to ROM file by "WSMAKE.COM" offered with the driver.

The only publicly available sound editor for WonderSwan except WTD is WonderWitch, and WTD is much more powerful. You can also use MIDI device concurrently with the internal wave channels. Developed by S.W.


Since this isn't a specific format, there are no specific players.