BRZEN
Music Macro Language
Texto da Wikipédia (en), licença CC BY-SA. O BETARUBI mostra o verbete inteiro nesta página — a leitura não continua fora do site.
Music Macro Language (MML) is a music description language used for sequencing music on computers and video game systems. Music is written as strings of letters and numbers representing notes, durations and control parameters, which are then interpreted or compiled for the target system's sound hardware.
The designation is documented in print by May 1982, in a description of the OKI if-800.[1] Microsoft source code from 1983 labels the BASIC PLAY implementation "MUSIC MACRO LANGUAGE",[2] and NEC documentation from 1986 describes the channel strings of CMD PLAY as "MML (Music Macro Language)".[3]
History
Origins of the term
The designation Music Macro Language (MML) is documented in published sources by May 1982. In that month's issue of BYTE, an article on Japanese personal computers described the OKI if-800 using the term for its music-string syntax. The article states that "another sublanguage called MML (Music Macro Language) is used".[1]
Microsoft documentation for GW-BASIC later described the syntax used by the PLAY statement as "a music macro language" embedded in a string expression.[4] The notation is treated as a non-MIDI music code in Beyond MIDI: The Handbook of Musical Codes.[5]
Music-string notation itself predates GW-BASIC. Contemporaneous BASIC documentation, such as the OKI BASIC manual, describes the PLAY statement for musical sequences but does not use the term "Music Macro Language".[6]
Microsoft BASIC and NEC documentation
Microsoft's 1983 GW-BASIC source code labels the PLAY implementation "PLAY - MUSIC MACRO LANGUAGE". The implementation supplies a table of music commands to a shared macro-language driver, which the source identifies as supporting the Microsoft graphics and sound macro languages.[2][7]
By 1986, NEC's PC-8801mkIIMR N88-BASIC / N88-日本語BASIC Reference Manual documented the extended CMD PLAY statement and called its channel strings "MML (Music Macro Language)". The manual gives command tables and explanations for notes, duration, octave, tempo, rests, volume, articulation, timbre selection and FM/SSG-related parameters.[3]
Neither the originator of the term nor any direct relationship between the OKI if-800 implementation and the Microsoft implementation is identified in these sources.
Dedicated music drivers and compilers
During the 1980s MML was also used as input to dedicated music-development systems, and not only as an argument to a BASIC statement. Tanaka describes the PC-8801 sound system SPLIT in connection with MML-based music development and compilation, and states that general distribution of SPLIT began at the summer Comic Market on 14 August 1988 and that twelve releases followed through 1991.[8]: 126–127, 133–134 The same source discusses FMP and PMD within the history of MML-based Japanese personal computer music systems.[8]: 130–131
Background
Early automatic music generation functions were used in arcade video games. Early examples of arcade video game music include Gun Fight (1975) and Circus (1977).[citation needed] The appearance of Space Invaders by Taito in Japanese amusement arcades in 1978 marked a considerable expansion of the domestic video game market.[citation needed]
Music in these systems was generally implemented as proprietary game software.[citation needed] The Intel 8253 programmable interval timer, released by Intel in 1978, provided one hardware approach to programmable tone generation; its Mode 3 square-wave generator was used for music in the kit computer MZ-40K (Microcomputer Doctor (マイコン博士, Maikon Hakase)) by Sharp Corporation, manufactured in Japan in May 1978.[citation needed] Another microcomputer, the Hitachi BASIC MASTER MB-6880 (ベーシックマスター, Bēshikku Masutā), used a 5-bit digital-to-analog converter for automated music reference signals, together with methods of generating music under BASIC software control.[9] That machine was assembled by Hitachi and made in Japan in September 1978.[9] The MZ-40K documentation included program sources for some software routines.[citation needed]
Music-string notation and MML syntax
Sharp MZ BASIC music-string notation
On the MZ-80K and related Sharp MZ systems, music-string facilities were provided through the SP-1002 monitor IOCS routine and the SP-5001 BASIC operating system, using the BASIC statements MUSIC, TEMPO and BEEP. The MZ-80K was an 8-bit machine with a Z80 processor, made by Sharp Corporation in Japan in 1978, and it used Intel 8253 hardware with memory-mapped I/O.[10][11][12]
Syntax

MUSIC statement and its music-string notation.The music string is supplied to the MUSIC statement. Notes are specified within a three-octave range, and a piece is a sequence of single monophonic tones.
"+" (or, in some older code, " ̄") indicates the upper octave, and "−" (or, in some older code, "_") the lower octave. The characters C, D, E, F, G, A and B correspond to the degrees of the scale. A semitone is indicated by following the note with a "#" character. Note names are followed by a tone length, given as a number from 0 to 9; R indicates a rest and is likewise followed by a number from 0 to 9. The resulting duration is the internal value multiplied by the TEMPO value. Tone length 0 corresponds to a demisemiquaver (SP-1002 internal value 1) and 9 to a whole note (SP-1002 internal value 32). Music is played by a call to the routine at address $0030 of the SP-1002 IOCS.[13][14]
| Value | Length |
|---|---|
| 0 | 1/32 |
| 1 | 1/16 |
| 2 | dotted 1/16 |
| 3 | 1/8 |
| 4 | dotted 1/8 |
| 5 | 1/4 |
| 6 | dotted 1/4 |
| 7 | 1/2 |
| 8 | dotted 1/2 |
| 9 | 1 |
The statement TEMPO n accepts values from 1 to 9, 1 being the slowest; TEMPO 4 corresponds approximately to T = 120.[10][12]
Example
The following is a transcription of the Japanese song "tōryanse" in the MUSIC-statement notation of the MZ-731 with SHARP S-BASIC 1Z-007B (upward compatible with SP-5001).[15]
10 TEMPO 4
20 A$="E5R1E3R0D3R0E3R0E1R0D1R0-B4R1"
30 B$="F3R0F1R0F1R0A3R0F1R0E1R0F1R0E1R0D1R0D1R0E4R1"
40 C$="C3R0C1R0C1R0E3R0C1R0-B1R0C1R0-B1R0-A1R0-A1R0-B4R1"
50 D$="E1R0E1R0E1R0E1R0E1R0E1R0D1R0E1R0E1R0E1R0D1R0-A1R0-A1R0-B4R1"
60 E$="-A1R0-B1R0C1R0D1R0E1R0F1R0E1R0F3R1A3R1B1R0A1R0F3R0E3R0E1R0D1R0E4R1"
100 MUSIC A$+B$+B$
110 MUSIC C$+C$+B$
120 MUSIC C$+D$+E$
MML in BASIC PLAY implementations
MML of the kind found in PLAY statements originated in Microsoft BASIC and was widely used on 8-bit and 16-bit Japanese personal computers, where BASIC was generally supplied in ROM. The NEC PC-6001 of 1981 combined Microsoft BASIC with a programmable sound generator, and the notation was particularly widespread on NEC machines such as the PC-8801.[5] The designation MML is documented for personal computer music strings by May 1982 in the description of the OKI if-800,[1] and Microsoft's 1983 GW-BASIC source code labels its PLAY implementation "PLAY - MUSIC MACRO LANGUAGE", routing its command table through a shared macro-language driver.[2][7] NEC documentation likewise records BASIC music-string implementations: the PC-6001mkII N60m-BASIC manual documents PLAY with up to three simultaneous parts,[16] and the 1986 PC-8801mkIIMR reference manual calls the CMD PLAY channel strings "MML (Music Macro Language)" while documenting extensions for programmable sound hardware.[3]
Following the 2001 release of mck (Music Creation Kit), which compiles MML into music for the Nintendo Entertainment System,[17] awareness and use of MML increased.[18] The notation remains in use among Japanese electronic musicians[5] and among musicians who write chiptunes.[19]
Syntax
In the Microsoft and NEC implementations, a PLAY or CMD PLAY statement takes an argument containing the music data as a string. Microsoft's 1983 source shows a command-table parser for the PLAY string, and NEC's 1986 manual documents the MML commands accepted by CMD PLAY.[2][3] The format is textual, letters and numbers describing the musical notes to be played, but implementations differ in their command sets and in the extensions they add for audio synthesis parameters or for common musical figures such as arpeggios.[5]
Elements common to many implementations are listed below; individual dialects may omit, rename or extend them, and requirements such as letter case also vary.[5][20]
cdefgab– The lettersatogcorrespond to the musical pitches and cause the corresponding note to be played. Sharp notes are produced by appending a+or#, and flat notes by appending a-. The length of a note is specified by appending a number representing its length as a fraction of a whole note; for example,c8represents a C eighth note, andf+2an F♯ half note.p– A pause or rest, sometimes alsor. IBM Personal Computer BASIC Version 1.10 usesP,[21] as do GW-BASIC-compatible speaker interfaces such as the Linux and BSD speaker devices.[22] The length of the rest is specified in the same manner as the length of a note; for example,r1produces a whole rest.o– Followed by a number, selects the octave in which the instrument plays.>,<– Step up or down by one octave.l– Followed by a number, specifies the default length used by notes or rests that do not define one explicitly. For example,l8 g a b g l16 g a b gproduces four eighth notes followed by four sixteenth notes.v– Followed by a number, sets the volume of the instrument. The permitted range depends on the sound hardware. Some implementations also allow an ADSR envelope to be applied to the amplitude of each note.t– Followed by a number, sets the tempo in beats per minute. On hardware with more than one sound channel it is often possible to set each channel to a different tempo.
Most implementations add further keywords and symbols for system-specific extensions.
Example
The following is an MML transcription of Dance of the Cuckoos, with white space added for clarity; some MML interpreters require it to be removed before playback.
t104 l4 > c16f16 a>c8<a c16f16 a>c8<a c8 b-8>c8<b-8 g c8 a8>c8<a8 f c16f16 a>c8<a c16f16 a>c8<a c8 b-8>c8<b-8 g >c8 <f2
The following is a transcription of "tōryanse" in the N60-BASIC of the PC-6001 (NEC PC-6000 series), given for comparison with the Sharp MZ MUSIC example above.[23]
10 A$="o4e2r32e4r32d4r32e4r32e8r32d8r32o3b2r16"
20 B$="o4f4r32f8r32f8r32a4r32f8r32e8r32f8r32e8r32d8r32d8r32e2r16"
30 C$="o4c4r32c8r32c8r32e4r32c8r32o3b8r32o4c8r32o3b8r32a8r32a8r32b2r16"
40 D$="o4e8r32e8r32e8r32e8r32e8r32e8r32d8r32"
50 E$="o4e8r32e8r32e8r32d8r32o3a8r32a8r32b2r16"
60 F$="o3a8r32b8r32o4c8r32d8r32e8r32f8r32e8r32"
70 G$="o4f4r32a4r32b8r32a8r32f4r32"
80 H$="e4r32e8r32d8r32e2r16"
100 PLAY "t120"
110 PLAY A$
120 PLAY B$
130 PLAY B$
140 PLAY C$
150 PLAY C$
160 PLAY B$
170 PLAY C$
180 PLAY D$
190 PLAY E$
200 PLAY F$
210 PLAY G$
220 PLAY H$
SMX
Standard Musical Expression (SMX) is a music-string format used by the PLAY statement of Microsoft QBASIC, BASICA and GW-BASIC. In Beyond MIDI, MML is listed among the non-MIDI codes for sound representation and control, whereas SMX is listed among the interchange codes.[24] Microsoft's own GW-BASIC source calls the implementation a music macro language.[2] The version used by GW-BASIC is part of the modern BSDs, including FreeBSD,[25] NetBSD, OpenBSD and MirOS; the language is described in speaker(4).[22]
BASIC music-string comparison
The following examples give the same melody, "Twinkle, Twinkle, Little Star", in two BASIC music-string syntaxes: the MUSIC notation of Sharp MZ BASIC and the PLAY notation of NEC N60-BASIC.[12][16]
Sharp MZ BASIC (SP-5030)
Characteristics:
- Tempo is set by a separate BASIC command.
- The melody is stored in a string variable.
- Further phrases are appended by BASIC string concatenation.
- Note lengths are expressed numerically after each pitch.
- Playback is performed by the BASIC
MUSICstatement. - Output is monophonic, owing to the hardware of early systems.
- Sound is produced through the internal speaker, driven directly by the computer.
Example
10 TEMPO 4
20 A$="C3C3G3G3A3A3G6"
30 A$=A$+"F3F3E3E3D3D3C6"
40 A$=A$+"G3G3F3F3E3E3D6"
50 A$=A$+"G3G3F3F3E3E3D6"
60 A$=A$+"C3C3G3G3A3A3G6"
70 A$=A$+"F3F3E3E3D3D3C6"
80 MUSIC A$
The musical data is built up step by step as a BASIC string variable, extended by concatenation (A$=A$+"...") before being passed to the MUSIC command for playback.
NEC PC-6001 (N60-BASIC)
The PC-6001mkII N60m-BASIC manual describes PLAY as a statement for generating music and documents the use of up to three simultaneous parts.[16]
Characteristics:
- Tempo (
T), octave (O) and default note length (L) are embedded in thePLAYstring. - The melody is written directly as a music string inside a BASIC
PLAYstatement. - The default note length can be set once and reused by subsequent notes.
- Note lengths may be given explicitly or inherited from the default.
- Playback is performed by the BASIC
PLAYstatement. - The cited manual documents up to three simultaneous parts.[16]
Example
10 PLAY "T120 O4 L4"
20 PLAY "C C G G A A G2"
30 PLAY "F F E E D D C2"
40 PLAY "G G F F E E D2"
50 PLAY "G G F F E E D2"
60 PLAY "C C G G A A G2"
70 PLAY "F F E E D D C2"
- The following version rewrites the preceding MML example for three simultaneous parts.
Example 2
100 PLAY "t120v14l4o5s11","v13l4o4","v15l4o3"
110 PLAY "ccgg","eeo5cc","cccc"
120 PLAY "aagr","o5ddco4r","ffgr"
130 PLAY "ffee","aagg","ffee"
140 PLAY "ddcr","ffer","ddcr"
150 PLAY "ggff","o5cco4bb","cccc"
160 PLAY "eedr","aagr","ccgr"
170 PLAY "ggff","o5cco4bb","cccc"
180 PLAY "eedr","a8b8o5c8o4b8gr","ffgr"
190 PLAY "ccgg","eeo5cc","cccc"
200 PLAY "aagr","ddco4r","ffgr"
210 PLAY "ffee","aagg","ffee"
220 PLAY "ddcr","ffgr","ddcr"
NEC PC-8801mkIIMR (N88-BASIC Version 2.0)
NEC's 1986 reference manual documents the extended CMD PLAY statement and defines its channel strings as MML.[3] The extended statements are enabled with NEW CMD.
NEW CMD
The following three-channel example shows CMD PLAY syntax with FM timbre selection:
100 CMD PLAY "t120@5v15l4o5","@7v14l4o4","@4v15l4o4"
110 CMD PLAY "ccgg","ee>cc","cccc"
120 CMD PLAY "aagr","ddc<r","ffgr"
130 CMD PLAY "ffee","aagg","ffee"
140 CMD PLAY "ddcr","ffer","ddcr"
150 CMD PLAY "ggff",">cc<bb","cccc"
160 CMD PLAY "eedr","aagr","ccgr"
170 CMD PLAY "ggff",">cc<bb","cccc"
180 CMD PLAY "eedr","a8b8>c8<b8gr","ffgr"
190 CMD PLAY "ccgg","ee>cc","cccc"
200 CMD PLAY "aagr","ddc<r","ffgr"
210 CMD PLAY "ffee","aagg","ffee"
220 CMD PLAY "ddcr","ffgr","ddcr"
Early BASIC music-string implementations of this kind relied in part on the surrounding program structure, whereas later systems placed more of the musical control parameters inside the music string itself. The conventions they established, such as note letters, octave control and tempo parameters, were carried over into the music drivers and composition environments developed for programmable sound hardware on platforms including the NEC PC-8801 and PC-9801, among them the Professional Music Driver.[8]: 126–131
Languages, platforms and software
MML is a family of related text-based music notations rather than a single fixed language. Implementations range from BASIC PLAY and MUSIC statements to dedicated music drivers, compilers, operating system sound interfaces, chiptune tools, ringtone formats and in-game score systems, and commonly add commands suited to the target hardware.[5][3][8]: 126–131
- Epic Games's ZZT and Super ZZT, as well as the open-source clone MegaZeux, use a very compact variant of MML for the PLAY command, with a single channel for the PC speaker.[citation needed]
- Microsoft's QBASIC, BASICA and GW-BASIC provide a
PLAYstatement taking a string argument in the SMX format.[26][27][28] Microsoft's 1983 GW-BASIC source labels the implementation "PLAY - MUSIC MACRO LANGUAGE", and later GW-BASIC documentation describes the statement in terms of embedding a music macro language in string data.[2][4] Microsoft QuickBASIC documentation likewise describesPLAYas playing the music specified by a string.[29] The SBasic compiler from the German magazine DOS Extra, produced by DMV Widuch, offers the same PLAY command; a BASIC program of a few lines could be compiled into a small tool, of a few kibibytes, to play any MML files given on the command line, often named *.PLY.[citation needed]- Eric S. Raymond wrote a UNIX System V driver providing /dev/speaker in a GW-BASIC-compatible format.[30] It was subsequently ported to 386BSD and is present in modern BSD operating systems.[22]
- The NEC PC-8801's BASIC dialect, N88-BASIC, used MML in its
PLAYstatement, as did several other implementations of BASIC produced or sold by NEC; the 1986 PC-8801mkIIMR manual identifies the channel strings accepted byCMD PLAYas "MML (Music Macro Language)".[5][3][31]- Chiptune composer Yuzo Koshiro created a heavily modified version. According to Koshiro, it "was more a BASIC-style language at first, but I modified it to be something more like Assembly. I called it 'Music Love'. I used it for all the Bare Knuckle Games."[32]
- Various MML utilities were written for the NEC PC-9801 family, including PMD (Professional Music Driver)[18] by the game composer Masahiro Kajihara, commonly known as KAJA,[33] which was used by the composer Ryu Umemoto for games such as EVE Burst Error and Grounseed, and by the game developer ZUN for most of his first five Touhou Project games.[citation needed]
- The mck, pmck and ppmck utilities for creating Nintendo Entertainment System music,[17][34] together with a number of tools for other hardware, such as the Bandai WonderSwan, the NEC PC Engine and the Sega Mega Drive.[18]
- The xpmck utility for creating music for various systems, including the Master System, Game Gear, Mega Drive, Nintendo Game Boy and Commodore 64.[35]
- Some mobile phones use MML as a ringtone format.[36] The RTTTL ringtone language shows many of the characteristics of MML.[citation needed]
- An escape sequence was defined to allow terminal programs to play music encoded in MML, for which reason such music is sometimes called ANSI Music.[37]
- On the MSX computer system, the built-in MSX BASIC also uses MML with the PLAY command, comma-separated strings representing separate voice channels. Hardware expansions such as MSX-Music, MSX-Audio and MSX-MIDI extend the PLAY command so that FM chips and external MIDI devices can also be controlled through MML.[citation needed]
- PLAYX, a music routine for Sharp pocket computers.[38]
- Macrotune, a free MML editor for Windows and OS X, which also offers shared libraries for software and game developers.[39]
- FlopPI-Music uses an extended format with a file header containing metadata such as author and title, a newline, and then one line for each staff, supporting multiple instruments and bar lines. It is designed to drive up to eight 3+1⁄2 in (89 mm) floppy disc drives on Raspberry Pi GPIO ports. It also contains a standalone MML parser and MusicXML exporter, tested with MuseScore, which allows debugging of mass-parallel MML files and the printing of score sheets. FlopPI-Music and MMLlib are free software written in Python.[40]
- Petit Computer and SmileBASIC both offer
BGMPLAYfunctions, which take either a preset MML track or one supplied as a string.[citation needed] - The massively multiplayer online game Mabinogi allows players to type MML code onto in-game music score scrolls, which can then be played to everyone nearby using an equipped instrument. Players often made their own MML versions of popular songs and uploaded them to fan sites. The game also teaches the syntax through skill books, which double as a means of unlocking a higher size limit for the code. The MMO ArcheAge provides the same features.[citation needed]
- 3MLE, a Windows program written by a Mabinogi player to assist in writing MML scrolls. It functions much like an integrated development environment, allowing the user to write, optimise and test MML code for different instruments.[41]
See also
References
- 1 2 3 Kocher, Christopher P.; Keith, Michael (May 1982). "Six Personal Computers from Japan". BYTE. Vol. 7, no. 5. p. 66. Retrieved 2026-08-17.
Another sublanguage called MML (Music Macro Language) is used.
- 1 2 3 4 5 6 Microsoft Corporation. "GWSTS.ASM". GitHub. Microsoft. Retrieved 2026-08-17.
PLAY - MUSIC MACRO LANGUAGE
- 1 2 3 4 5 6 7 日本電気株式会社 (1986). PC-8801mkIIMR N88-BASIC / N88-日本語BASIC REFERENCE MANUAL (in Japanese). 日本電気株式会社. pp. 4-9 – 4-17. Retrieved 2026-08-17 – via Internet Archive.
- 1 2 Microsoft GW-BASIC User's Guide and Reference (PDF). Microsoft. 1989. Retrieved 2026-08-17.
- 1 2 3 4 5 6 7 Selfridge-Field, Eleanor, ed. (1997). Beyond MIDI: The Handbook of Musical Codes. Cambridge, MA: MIT Press. ISBN 978-0-262-19394-8.
- ↑ IF800によるBASICテキスト (in Japanese). コロナ社. 1982. pp. 137–139. Retrieved 2026-08-17.
- 1 2 Microsoft Corporation. "MACLNG.ASM". GitHub. Microsoft. Retrieved 2026-08-17.
- 1 2 3 4 田中, 治久 (May 2017). チップチューンのすべて [All About Chiptune] (in Japanese). 東京: 誠文堂新光社. ISBN 978-4-416-61621-5.
- 1 2 Nagai, Kunihiko; Takezawa, Teruhiro; Yoshimura, Kazuma; Tajima, Katsutoshi (1979-04-26). "Hitachi Hyoron April 1979 Special Features: A micro-computer, the application method". Hitachi (in Japanese). Archived from the original on 2015-05-08. Retrieved 2013-08-26.
- 1 2 "SHARP MZ.org MZ-80K monitor sub $0030". Archived from the original on 2015-09-26. Retrieved 2012-09-19.
- ↑ Ohishi, Nobuaki. "Nibbles lab. SHARP Museum, MZ-80K Photo and Catalog". Retrieved 2012-09-20.
- 1 2 3 SHARP Corporation (1978). MZ-80 BASIC SP-5030 マニュアル (in Japanese). SHARP Corporation. p. 110.
- ↑ "SHARP MZ.org MZ-80K monitor sub $0030". Archived from the original on 2015-09-26. Retrieved 2012-09-19.
- ↑ "SHARP MZ.org MZ-700 monitor sub $0030". Archived from the original on 2015-05-09. Retrieved 2012-09-19.
- ↑ Motoi, Kenkichi (2012-09-19). "Viewpoint of the eye. She said "you playing" I'm crying". Awamomo Office (in Japanese). Retrieved 2026-08-16. Licensed #AAAP, including Creative Commons CC-BY-SA and the GNU Free Documentation License.
- 1 2 3 4 日本電気株式会社. PC-6001mkII N60m-BASICマニュアル (in Japanese). 日本電気株式会社. pp. 3-112 – 3-113.
- 1 2 "VORC Internet Chiptune Encyclopedia – mck". Archived from the original on 2008-01-03. Retrieved 2008-02-13.
- 1 2 3 "VORC Internet Chiptune Encyclopedia – MML". Archived from the original on 2007-11-23. Retrieved 2008-02-13.
- ↑ "VORC: VGM or Chiptune of The Year 2001". 2001-12-31. Retrieved 2008-02-13.
- ↑ Johnson, Jeremiah. "MCK/MML Beginners Guide". Archived from the original on 2007-12-14. Retrieved 2008-02-13.
- ↑ "IBM BASIC manual, Second Edition (May 1982), Version 1.10" (PDF). Archived from the original (PDF) on 2015-06-15. Retrieved 2016-03-26.
- 1 2 3 "speaker(4) manual page". MirBSD. Archived from the original on 2019-04-03. Retrieved 2026-08-17.
- ↑ Programmed by MOTOI Kenkichi, 11 November 2024. Licensed #AAAP, including Creative Commons CC-BY-SA and the GNU Free Documentation License.
- ↑ "Beyond MIDI: The Handbook of Musical Codes – Table of Contents". Center for Computer Assisted Research in the Humanities. Retrieved 2026-08-17.
- ↑ "FreeBSD speaker(4) manual page". Retrieved 2026-08-17.
- ↑ QBasic manual. Microsoft Corporation. 1991.
- ↑ IBM Personal Computer BASIC manual. IBM Corporation. 1982.
- ↑ BASICA manual. Microsoft Corporation. 1982.
- ↑ Microsoft Corporation. Microsoft QuickBASIC 4.5, 2nd Edition Manual. Microsoft Corporation. Retrieved 2026-08-17 – via Internet Archive.
- ↑ Raymond, Eric S. (1995-05-07). "Eric Raymond's Open-Source Works". Retrieved 2020-07-03.
- ↑ Koshiro, Yūzō. "Yuzo Koshiro Interview" (Interview). Interviewed by Kikizo Games. Retrieved 2008-02-13.
- ↑ Szczepaniak, John. "Retro Japanese Computers: Gaming's Final Frontier". Hardcore Gaming 101. Retrieved 2011-03-29. Reprinted from Retro Gamer, 2009
- ↑ "ツールのお部屋" (in Japanese). Retrieved 2019-12-01.
- ↑ "VORC Internet Chiptune Encyclopedia – ppmck". Archived from the original on 2006-10-12. Retrieved 2008-02-13.
- ↑ Swimm, Peter (2009-12-21). "XPMCK – Cross Platform Music Compiler Kit updated". True Chip Till Death. Retrieved 2011-12-29.
- ↑ "着信メロディは再び自分で作る時代に?──MIDIファイルやWAVファイルを着メロに変換" (in Japanese). ITmedia. 2001-04-03. Retrieved 2008-02-13.
- ↑ "ANSI Music – The Technical Details". Retrieved 2009-01-16.
- ↑ "PLAYX (E500)" (in Japanese). Archived from the original on 2016-03-03. Retrieved 2016-03-03. See also ja:ポケットコンピュータの製品一覧.
- ↑ "Macrotune". Retrieved 2016-03-03.
- ↑ "FlopPI-Music". Retrieved 2016-04-08.
- ↑ "3MLE" (in Japanese). Retrieved 2016-03-03.
