![]() |
|
OverviewMIDI Support is an operating system level mechanism for MIDI data handling, which provides facilities not present in Acorn's standard MIDI implementation (ie the module MIDI 3.14). It provides full backwards compatibility with the old system, thus allowing the use of applications which aren't specifically MIDI Support aware. In a way analogous to printer drivers, MIDI Support uses a scheme of drivers, thus a range of different hardware MIDI interfaces are catered for through the use of the appropriate driver (supplied as a Module file). It is perfectly feasible for different brands of MIDI interface to co-exist within the system. Additionally, applications can register themselves with the MIDI Support system by creating a soft driver which then acts as a port for MIDI data transfer between the application and other elements of the system. It also provides facilities for the management of both hardware and software drivers, the buffering of data, and the routing of data streams to and from drivers. |
Why ?Using Acorn's standard MIDI implementation (MIDI 3.14), it was not really possible to run more than one MIDI-aware application at a time (which was a fairly major restriction in a multi-tasking environment such as RISC OS). Attempting to do so would generally result in data contention and/or corruption problems.
Some software manufacturers worked around this problem by providing the means to temporarily suspend MIDI transmission / capture, thus allowing some other application sole access to the MIDI ports. The new level 4 MIDI module provides enhanced performance over the previous release (version 3.14), whilst also providing hooks into the MIDI Support system. Coupled with MIDI Support, it provides a more versatile system, with facilities enabling multiple MIDI-aware applications and MIDI interfaces to co-exist, thereby totally removing the above mentioned problems of data contention and corruption. |
The software elements!MidiSuppA pseudo-application !MidiSupp is used as a repository for all MIDI-related resources (relocatable modules). It also contains an application !MidiMan which is essentially a front end for the MIDI Support system, providing easy access to the facilities provided by the underlying module. On a machine with the new-style Boot, !MidiSupp will typically live in the Boot:Resources directory. There are 3 sub-directories within !MidiSupp used to house the various resources. The two core modules are in !MidiSupp.Modules :
In !MidiSupp.Drivers :
In !MidiSupp.PlugIns :
!MidiSupp's !RunImage is a transient program. That is, when run it does it's stuff and then immediately quits. Its stuff involves :
Programmers interested in writing applications which use MIDI Support should refer to the MIDI Support Functional Specification document, available from this site.
Current module versionsUp until version 0.22, the MIDI Support module had an upper limit for the number of drivers (32) which could be installed at any given time. With version 0.26 or later, the number of drivers is unrestricted (other than by memory constraints). Core modules
Drivers
!MidiManThis is a front end for the MIDI Support system and provides full control of the system's features, enabling the user to re-route the flow of MIDI data between applications and interfaces as and when the user sees fit. As mentioned above, it is possible to save the current setup as a !Config file which will be made use of by !MidiSupp. !MidiMan is covered in more detail along with some sample screenshots here. |
MIDI Support aware applicationsI've written a number of small applications for use with MIDI Support. The following are available for download from this site :
Commercially available applications include :
Applications such as these that are specifically MIDI Support aware (ie they have their own MIDI Support soft driver) have the advantage that they can be connected independantly, rather than collectively as is the case when relying on the general Acorn MIDI ports.
MIDI Support and !MidiMan are both available from ESP : www or email |