Open main menu

OpenTasks/Audio/XMIDI Parser

< OpenTasks
Revision as of 16:30, 6 March 2011 by DJWillis (talk | contribs) (Move OpenTasks onto unique pages with an Infobox and Category so we can collect them all up onto the summary page.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Open Task
Task Name XMIDI Parser
Technical Contact(s) Max Horn
Subsystem Audio

Background:

Several of our games make use of the XMIDI format. We already have a parser for it (see sound/midiparser_xmidi.cpp), which was based on code from the Exult project, but it is incomplete.

The Task:

Specifically, we require support for XMIDI_CONTROLLER_FOR_LOOP and XMIDI_CONTROLLER_NEXT_BREAK. There are many more XMIDI controllers, however, and ideally support for all of them would be great. Some references:

  • The XMIDI code from the Exult project (see Exult's audio/midi_drivers/XMidiSequence.cpp) could be used as a reference again.
  • In addition, Pentagram has XMidi code based on the Exult code, but may be cleaner (see here).
  • Another good reference for this task is the AIL library which has been recently open-sourced by its author. This is in fact where XMIDI comes from, and it even contains specs. To find them, unzip AIL2.ZIP; in there you find A214_D2.ZIP, which when unzipped contains a directory DOC, which in turn contains ASCIIDOC.ZIP, which then contains XMIDI.TXT and some other files which might be of use (e.g. NOTES.TXT).

It may be desireable to combine this with the Accolade MIDI Parser task.