Mi_D is a multi-platform, multi-driver, and multi-language shared library that offers clients a simple unified, yet unique set of MIDI services that are not commonly found in existing driver interfaces. Although originally devised as MIDI architecture for Common Music, Mi_D is fully self-contained and designed to simplify greatly the addition of high-level MIDI functionality to a wide variety of clients, including applications that are not genuine MIDI sequencers.
Platform-independence is achieved by emulating a uniform API on top of existing MIDI drivers and OS services, thus abstracting from various driver- or platform-specific idiosyncrasies as well as differences in functionality among drivers. Mi_D currently runs on SGI's and both, 68k and PPC Macintoshes, using the native SGI MIDI driver and Opcode's OMS, respectively. It also includes interfaces to C/C++ and various LISP implementations. Future ports will support most likely Windows, Linux, and maybe NeXT/Rhapsody.
Mi_D implements a fully generalized MIDI patch bay, thus abstracting from various forms of multi-port support available through some drivers: virtually unlimited logical channels may be used to map channel messages many-to-many onto real MIDI channels and, similarly, virtually any number of logical routes may be used to map system and real-time messages many-to-many onto real MIDI "cables" (see "MIDI Environment and Routing").
A scheduler finally allows clients to write MIDI messages or high-level events such as notes at any time in the future, without having to keep track of low-level messages and their assorted time stamps, a feature that is particularly important for clients that are unable to predict events generated in the future, such as algorithmic composition packages.
Remember, it is spelled Mi_D but pronounced Mee-Dee and notated as two eighth notes, a mi (as in do-re-mi-... on C) and a d, slurred together to approximate the pronunciation. Furthermore, Mi_D sort of sounds like PD, thus alluding to both, its being free (albeit not public-domain) software, and, in humble admiration, Miller Puckette's latest naming coup.
Mi_D is available free of charge for download via the Web.
Help is always welcome! If you would like to participate in further developing, porting or maintaining the library, please contact me at the address below.
Help, comments, suggestions, or bug reports are welcome. To stay on top of software releases feel free to join the mailing list mi-d-announce. To track (or participate in) Mi_D development, subscribe to mi-d-develop.
CCRMA, Stanford University
|©1998-2001 by Tobias Kunze Briseņo. All Rights Reserved.||Last Modified: 07-Mar-2001|