RTMIDI
RTMIDI is a runtime for creating real-time MIDI applications created in the mid 90's by IBM to simplify programming of games, multimedia and music applications. To save programmers from having to create a driver subsystem to interface with hardware RTMIDI takes care of sending and receiving MIDI data, time-stamping of MIDI data and offering real-time playback, processing and synchronization of MIDI data.
While not a bad idea in itself and something that was sorely needed for MS Windows and other operating system, it had some problems, and over time they have become more serious. RTMIDI was never fully finished and does not support the full MIDI specification, stuff like sys-ex is missing altogether and it had no proper mechanism to allow you to extend it yourself. It also had some other problems, although it did not require a full (smart mode) Roland MPU-401 compatibility, i.e. it only required the MIDI/MPU interface act as a interface and not a processor, it did not support MPU-401 UART mode which was what common sound cards supported, making the library only compatible with a small subset of available MIDI and sound cards. Furthermore it is also only partially documented and only supports low resolution IBM PC/Intel style timers rather than high resolution timers.
For that reason you are advised to stay away from the RTMIDI library and treat it as an historical curiosity, the original author of the software had at one point promised to make the source available to developers (he could not open source it due to IBM ownership of the code), but that never happened so you are better off looking at alternatives.
Not to be confused with the much later RtMidi library for Unix like operating systems.
Version
- Phase 1.5 included with OS/2 Version 4 and later and all versions of eComStation, but documentation is only available for the older 0.8 version.
Links
- RTMIDI - A copy of Timur Tabi's original RTMIDI information page
- Partial RTMIDI information form the OS/2 API project
Applications and libraries
Applications known to have used RTMIDI include:
- AudioStation - MIDI sequencer with audio capabilities.
- LBPlay - MIDI player with karaoke capabilities.
- MIDI Station Squencer - MIDI only sequencer.
- Nota Musica Sequencer - Sequencer with notation capabilities.
Libraries/Bindings that encapsulate RTMIDI:
- JRTMIDI - Java classes for RTMIDI.
- VisMIDI - IBM VisualAge C++ OpenClass classes for RTMIDI.