Early automatic music generation functions were used in arcade video games, which used many computer sounds. Early examples of arcade video game music chiptunes include Gun Fight (1975) and Circus (1977).
The boom in Japanese video games was heralded in 1978 by the appearance in Japanese game centers (Amusement arcades) of Space Invaders by Taito.1
The music was all proprietary (closed source). The 1978 release of the Programmable interval timer by Intel was significant. The Intel 8253 Mode 3 Square Wave generator was used for music, in the Kit computer MZ-40K (Microcomputer Doctor (マイコン博士/まいこんはかせ, Maikon Hakase)) by SHARP Corporation, made in Japan at May 1978. Another Micro computer BASIC MASTER MB-6880(ja) BASIC Master (ベーシックマスター, BASIC Master) used a 5Bit D/A converter music automated reference signal. Also important was the development of a method to generate using BASIC software.2 The machine was assembled by Hitachi and made in Japan in September 1978. The MZ-40K used an open architecture and program sources, was therefore a kind of open source software.
The first commands for classical MML appeared in the internal architecture of the SP-1002 MONITOR IOCS3 and SP-5001 BASIC Operating Systems on the MZ-80K 8-bit4 computer. Made by SHARP Corporation at 1978 in Japan.5 It incorporated Intel 8253 hardware and memory mapped I/O. The sound-related BASIC Statements were MUSIC, TEMPO, and BEEP. 6
Classical MML as used in BASIC is described here. "MML Commands" are supplied to the MUSIC statement. Notes are specified in a three-octave range. A song is a sequence of mono single tones.
"+" (or in some old code, " ̄") indicates upper octave, "- " (or in some old code, "_") indicates the lower octave. The characters "CDEFGAB" correspond to a scale ("Doremi Faso Lassi"). A semitone is indicated by following the note with a '#' character. The note names are followed by a tone length, indicated by a number from 0–9. Similarly, R indicates a rest, and is also followed by a number from 0-9 indicating length. Sound length Internal value × TEMPO values.Tone length Demisemiquaver is 0 (SP-1002 Internal value is 1)- Whole note is 9 (SP-1002 Internal value is 32). Music played on Call to $0030 SP-1002 IOCS program routine.7
Statements TEMPO n is 1–9, the slowest 1.TEMPO 4 is similar T=120.
Below is the popular Japanese song "tōryanse" written using MML in MZ-731 SHARP S-BASIC 1Z-007B (SP-5001 Upper compatible).8
Modern MML originally appeared in Microsoft BASIC and was common in the early 1970s and 1980s on 8-bit and 16-bit era Japanese personal computers. The NEC PC-6001 included Microsoft BASIC and the Programmable Sound Generator in 1981. The MML was especially popular on NEC's personal computers, such as the NEC PC-8801.9 With the 2001 release of the mck (Music Creation Kit) software for compiling MML to play music on the Nintendo Entertainment System,10 awareness and use of MML increased.11 MML is presently popular among Japanese electronic musicians12 and musicians who create chiptunes13 as a way to write music for the Nintendo Entertainment System.
Modern MML originated as a sub-language of BASIC, then generally included in ROM on micro-computers. A PLAY statement uses an argument to define a string of tones that the sound-chip played. MML code has a simple text format whereby letters and numbers are used to describe the musical notes to be played.14 In addition, various implementations of MML add system extensions allowing parameters of audio synthesis to be altered with specialized commands or to simplify the entry of common musical figures such as arpeggios.
Though many platforms feature custom extensions and letter case requirements and other minor syntactical features vary slightly in some implementations, the fundamental syntax rules, commands and features that define MML and are present in whole or in part in all implementations are as follows:1516
In addition to these, most implementations add their own keywords and symbols for system-specific enhancements or extensions.
Below is a Modern MML transcription of Dance of the Cuckoos (with white-space for clarity, though some MML interpreters will require this to be stripped before playing).
Below is the popular Japanese song "tōryanse" written using MML in PC-6001( NEC PC-6000_series ) N60-BASIC.It is listed for comparison with Classical MML. 19
Standard Musical eXpression (SMX) is a variant of Modern MML provided by Microsoft in QBASIC, BASICA, and GW-BASIC's PLAY statement.20 The version used by GW-BASIC is part of the modern BSDs, FreeBSD,21 NetBSD, OpenBSD, and MirOS; see speaker(4) for the language.22
Compiled by "Tomohiro Nishikado" (西角友宏/にしかどともひろ) worked in the Pacific Industrial Co., Ltd. All compiled alone. /wiki/Tomohiro_Nishikado ↩
PDF file;Micro Computer BASIC MASTER MB-6880 Music method[permanent dead link] - Kunihiko, Nagai; Teruhiro, Takezawa; Kazuma, Yoshimura; KaTsutoshi, Tajima (26 April 1979). "Hitachi Hyoron April 1979 Special Features:A micro-computer, the application method". Hitachi. Archived from the original on 8 May 2015. Retrieved 26 August 2013. http://digital.hitachihyoron.com/pdf/1979/04/1979_04_26.pdf ↩
"SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. Archived from the original on 2015-09-26. Retrieved 2012-09-19. https://web.archive.org/web/20150926201920/http://www.sharpmz.org/mz-80k/monisubprg.htm ↩
CPU is Z-80 Zilog Licensed Secondary source /wiki/CPU ↩
Nobuaki Ohishi (2012-09-20). "Nibbles lab.SHARP Museum,MZ-80K Photo and Catalog". http://www.retropc.net/ohishi/museum/mz80k.htm ↩
SHARP Corporation; nagusa_kei (1978). MZ-80 BASIC SP-5030 マニュアル. SHARP Corporation. p. 110.-Document(validation) Upper Version SP-5030 "twitter oec_Nibbleslab". 2012-09-22.-"twitter PlayTrueName". 2012-09-22. Retrieved 2012-09-22."twitter(twilog) PlayTrueName". 2012-09-22. Retrieved 2012-12-28. SHARP Corporation (1978). MZ-80 BASIC マニュアル. SHARP Corporation. p. 110. https://mobile.twitter.com/oec_Nibbleslab/status/249167231089528833#!/oec_Nibbleslab/status/249167231089528833 ↩
"SHARP MZ.org MZ-80K monitor sub $0030". 2012-09-20. Archived from the original on 2015-09-26. Retrieved 2012-09-19./"SHARP MZ.org MZ-700 monitor sub $0030". 2012-09-20. Archived from the original on 2015-05-09. Retrieved 2012-09-19. https://web.archive.org/web/20150926201920/http://www.sharpmz.org/mz-80k/monisubprg.htm ↩
Motoi, Kenkichi. "Viewpoint of the eye. She said "you playing" I'm crying/Awamomo Office". Archived from the original on 2013-02-18. Retrieved 2012-09-20. Programmed and arranged by Motoi, Kenkichi. "Twitter @PlayTrueName Σ:D『So long time wake up to the◎Programming to sound of music". Retrieved 2012-09-22. Licensed #AAAP(Including Creative Commons CC-BY-SA and Text of GNU Free Documentation License.). https://archive.today/20130218184235/http://d.hatena.ne.jp/awamomo/20120919 ↩
Selfridge-Field, Eleanor (1997). Beyond Midi: The Handbook of Musical Codes. Cambridge: MIT Press. ISBN 0-262-19394-9. 0-262-19394-9 ↩
"VORC Internet Chiptune Encyclopedia - mck". Archived from the original on 2008-01-03. Retrieved 2008-02-13. https://web.archive.org/web/20080103010234/http://www.vorc.org/en/info=mck ↩
"VORC Internet Chiptune Encyclopedia - MML". Archived from the original on 2007-11-23. Retrieved 2008-02-13. https://web.archive.org/web/20071123185143/http://www.vorc.org/en/info=MML ↩
"VORC: VGM or Chiptune of The Year 2001". 2001-12-31. http://www.vorc.org/en/columns/hally/2001best10e.html ↩
Johnson, Jeremiah. "MCK/MML Beginners Guide". Archived from the original on 2007-12-14. Retrieved 2008-02-13. /wiki/Nullsleep ↩
"IBM BASIC manual, Second Edition (May 1982), Version 1.10" (PDF). Archived from the original (PDF) on 2015-06-15. Retrieved 2016-03-26. https://web.archive.org/web/20150615202528/http://maben.homeip.net/static/S100/IBM/software/languages/IBM%20B.pdf ↩
MirBSD speaker device documentation https://web.archive.org/web/20190403115246/http://www.mirbsd.org:80/htman/i386/man4/speaker.htm ↩
Programmed by MOTOI_Kenkichi November,11 2024.Licensed #AAAP(Including Creative Commons CC-BY-SA and Text of GNU Free Documentation License.). /wiki/Wikipedia:CC-BY-SA ↩
FreeBSD speaker(4) manual page https://www.freebsd.org/cgi/man.cgi?query=speaker&manpath=FreeBSD+12.1-RELEASE+and+Ports ↩
speaker(4) manual page https://web.archive.org/web/20190403115246/http://www.mirbsd.org:80/htman/i386/man4/speaker.htm ↩
"QBasic manual". Microsoft Corporation. 1991. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
"IBM Personal Computer BASIC manual". IBM Corporation. 1982. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
"BASICA manual". Microsoft Corporation. 1982. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
"GW-BASIC manual". Microsoft Corporation. 1987. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
Raymond, Eric (7 May 1995). "Eric Raymond's Open-Source Works". Eric S. Raymond's Home Page. Retrieved 3 July 2020. http://www.catb.org/~esr/software.html ↩
Koshiro, Yūzō. "Yuzo Koshiro Interview" (Interview). Interviewed by Kikizo Games. Retrieved 2008-02-13. /wiki/Yuzo_Koshiro ↩
Szczepaniak, John. "Retro Japanese Computers: Gaming's Final Frontier". Hardcore Gaming 101. Retrieved 2011-03-29. Reprinted from Retro Gamer, 2009 http://www.hardcoregaming101.net/JPNcomputers/Japanesecomputers.htm ↩
"ツールのお部屋" (in Japanese). Retrieved 2019-12-01. http://www5.airnet.ne.jp/kajapon/tool.html ↩
"VORC Internet Chiptune Encyclopedia - ppmck". Archived from the original on 2006-10-12. https://web.archive.org/web/20061012154323/http://www.vorc.org/en/info=ppmck ↩
Swimm, Peter (December 21, 2009). "XPMCK - Cross Platform Music Compiler Kit updated". True Chip Till Death. Retrieved December 29, 2011. http://truechiptilldeath.com/blog/2009/12/21/xpmck-cross-platform-music-compiler-kit-updated/ ↩
"着信メロディは再び自分で作る時代に?──MIDIファイルやWAVファイルを着メロに変換". ITmedia, Inc. 2001-04-03. Retrieved 2008-02-13. http://plusd.itmedia.co.jp/mobile/0104/03/music.html ↩
"ANSI Music - The Technical Details". Retrieved 2009-01-16. http://artscene.textfiles.com/ansimusic/information/ansimtech.txt ↩