The objectives of the MIDI XML Specifications are:
- Provide a standard XML representation of a MIDI event, for use as a building block in other XML documents.
- Create standard data interchange formats for information about MIDI devices (including virtual devices), including their MIDI transmission/reception capabilities and their patches/notes/controls.
- Represent numeric MIDI events (Patch Numbers, Note Numbers, Controller Numbers) with alpha-numeric names in order to Improve the user experience.
The MIDIEvents DTD
defines the grammar for XML representations of MIDI events, which is used in the XML Specification "MIDINameDocument" and may be used in additional XML Specifications in the future.
A MIDIDeviceType DTD
document contains information about capabilities of one device type (a single device or a family of devices with the same features) -- primarily its MIDI transmission and reception capabilities. A collection of MIDIDeviceType documents is an effective database from which applications may automatically load device information (if they support the Universal Inquiry message), or from which a user may select an appropriate device description within the application.
A MIDINameDocument DTD
describes corresponding names for a MIDI device's patch numbers, note numbers (for drum kits and sample sets where different sounds are triggered by different keys) and MIDI controller numbers (also RPNs/NRPNs). This allows an application to display the name of the object they trigger/effect, instead of simply showing bank selects/program changes/notes/controls in numeric form.
These three DTDs are approved (RP-038) by MMA/AMEI. Developers with experience in both MIDI and XML should be able to understand the specifications from the three DTDs. An initial implementation has been done by Apple for CoreMIDI. An explanatory text of the specification is still in development. Futher extensions and clarifications are in progress. Human-readable (HTML-formatted) versions of each MIDI XML DTD may be viewed using the above links.