Music Markup Language

This music markup language site consists of the following markup approaches to music-related topics:

Music Markup Language (MML) is an attempt to mark music objects and events with an XML-based language. Marking such objects should enable managing music documents for various purposes, ranging from music theory and notation to practical performance. This project is not complete and a work in progress.

The first draft of a possible DTD is available and a few examples are provided of music pieces marked with MML that result in well-formed as well as valid documents.

The approach is modular. Many modules are still incomplete and need more research and attention.

General Music Markup Language


Steyn J (ed) 2013
Structuring Music through Markup Language: Designs and Architectures
New York: IGI Information Science Reference
DOI: 10.4018/978-1-4666-2497-9
ISBN13: 9781466624979
ISBN10: 1466624973
EISBN13: 978146662498

Markup languages for music depend on many cultural assumptions, and on how music is conceptualised. Technically speaking, the ontology of music as object is important in deciding what is to be marked, and what not.

This description depends on the concepts investigated by the disciplines (called differently in different countries) of Music Informatics, Systematic Musicology, or Scientific Musicology.

To investigate these matters, a book, Structuring Music through Markup Language: Designs and Architectures, (published by IGI) was put together with contributions from all over the world. See more details.


Music Markup Language (MML) is an XML-based language for describing music objects and events. As music is such a complex object, MML consists of several layered modules that could be called upon, depending on requirements.

Music is defined as a function of time and frequency, hence the Time and Frequency modules would always be used - they are the Music Core Modules.

Note that Common Western Music Notation is also based on this time-frequency relationship.

Additional modules that are presently identified in Music Markup Language and described are:

  1. 1. Organization Module: for describing metadata and other functions such as playlists and albums;
  2. General Module: focusing on marking repetitions in music pieces;
  3. Texture Module: focusing on music production, specifically intensity, harmonics and envelope;
  4. Effects Module: describes effects that are applied to the Music Core
  5. Performance Module: describes performance related objects and processes, such as Controls (breath, foot, hand), band/orchestral related elements, and singing related events;
  6. Control Module: describes events typically used in electronically triggered environments, such as the start and stopping of music events, volume, sound sources, and channel controls in multi-channel environments.
  7. Notation Module: this module attempts to provide a framework that allows the description of music objects and events in any notational language, not only CWN (Common Western Notation);
  8. Lyrics Module: provides a framework for synchronizing lyrics with music events;
  9. MIDI Module: describes interfacing MML and MIDI
  10. Synthesizer Module: describes a virtual abstract and universal synthesizer that could be mapped to manufactured real synthesizers from different manufacturers.


MML (Music Markup Language) focuses on the structure of music and music related processes with the aim to write the specifications of a markup language. This language should be human readable along the lines of HTML and XML that are used for Web-based documents.

MML should form a "layer" between machine-level code and the user interface:

Position of MML


Why MML?

The vision for MML is best understood in terms of an analogy with the presentation of web documents.

When a web document is marked properly with HTML (especially when it is XHTML-compliant) it can be delivered on many different kinds of devices such as a PC screen, on TV-Web, on a web-cellphone, read by a speech synthesizer on a car stereo system, and many more. The document can even be delivered on a web-enabled freezer or microwave-oven! Such a web document can be used with different style sheets to be delivered in many different ways.

MML should function similarly. If a piece of music is marked by using MML it should be deliverable in at least the following formats:

With MML it should be possible to "sequence" a piece of music without having to use expensive software. So anybody with a text editor (such as Windows Notepad) should be able to sequence music in this way.

MML and MIDI - very briefly

MML is not intended to replace MIDI, but to add value to it. MIDI is not human-friendly except through a friendly user interface. MML at least uses human language elements so it is easier to understand than MIDI. MML is envisaged as a universal layer supplying a common language that can be understood by different devices, including MIDI devices.

Envisaged MML Applications

Some of the envisaged applications are as follows:


What is music?

Music will be defined very liberally as any sound that is used for a specific music function. Technically, music will be regarded as a function of frequency and time. This broad definition would embrace all kinds of music, including the paradigms of expressions such as those of John Cage and Industrial Music where sounds from the environment that are ordinarily regarded as noise are assigned a musical function. To put it in other words, any sound that is regarded as music becomes music by being regarded as such. The ringing tone of the traditional phone, the bell in a lift, the honking of a car hooter and many more may thus be regarded as music.

This broad definition of music has the implication for MML that sound effects and background noise should also be described in order to be marked in music documents.

The envisaged range of MML is thus much wider than other known attempts at creating XML-based languages for marking music. Most of these attempts focus on a subset of CWN.

Rendering MML

MML documents will be well-formed, valid XML documents. It will be possible to display MML document content in textual format using any XML-compliant parser. However, rendering content in other media will require additional programs that will function along the lines of plug-ins. For example, if MML needs to be displayed in traditional Common Western Notation format, a graphics rendering engine is needed. If a synthesizer needs to be triggered by the markup, a triggering engine will be required.



jacques and then the at sign steyn dot pro

1999, 2000, 2013 Author: Jacques Steyn