!MidiMan is a front end for the MIDI Support system and provides full control of the system's features, enabling the user to install or remove hardware drivers, and to re-route the flow of MIDI data between applications and interfaces as and when the user sees fit.
The current state (which drivers are loaded, and the inter-connections in place) can be saved as a configuration file, which will be used by !MidiSupp when that is next run.
The current version of !MidiMan is 0.33 (26 Apr 2007).
A number of changes have been made since the original release version (0.25), though the main differences are the new Configuration window and 26/32-bit neutrality.
The Front Panel window
The button bar provides access to :
- the Configuration window, which enables the user to configure their preferred settings.
- the Routing window, which enables the user to alter the connections between drivers.
- the MIDISpy display, which provides a real time VU-type display of channel based MIDI data.
- a Panic button, which is used to reset the MIDI system, eg in the event of hanging notes. This button also has a popup menu which enables various degrees of reset to be chosen.
The filer-like area is an application launcher. Any applications saved in the <MIDISupport$Dir>.PlugIns directory will be made available from this front panel area. Other (external) applications can be made available from the launcher using standard drag-and-drop operations.
The philosophy behind !MidiMan is that whenever you want to do anything using MIDI, you first run !MidiMan (easily accessible from the ROM Apps icon, once !MidiSupp has been run), and you use its application launching feature to then load the specific MIDI applications that you want to use at this time. !MidiMan gives you easy control over the routing of MIDI data. If you've taught !MidiMan your preferred connections for each MIDI application, then these will be set up automatically as programs come and go (provided !MidiMan is running at the time).
I have !Debbie, !Keyboard, !MidiCtrl and !Slide located in my <MIDISupp$Dir>.PlugIns directory, and !Dmitri, !Aureole, !Mixer, !MelIDI, !Player, !Synth, !JunoEd, !MidiMole, and !SysExy have been set up as external applications, so these are all available from !MidiMan's front panel.
The Routing window
This window allows the user to make and break connections between drivers, and thus control the flow of MIDI data through the system.
The Routing window shows each of the currently installed drivers as a list, with control over each driver's sources on the left, and its destinations on the right.
The popup menus enable selection of source and destination drivers, ticked entries indicating that a connection is already in place. The Destinations menu shown here resulted from clicking on the right hand menu popup button for the DMI50PortA_1 driver (the driver's name is highlighted to reinforce which driver the menu refers to).
The numeric fields show the number of currently connected source and destination drivers. The blue i icons open a Driver Information window detailing a driver's version information and capabilities, and the blue and green arrows are described below.
The figure above shows that there are 10 drivers currently installed :
- The top 4 are the soft drivers which provide hooks into the old MIDI system, thus providing backwards compatibility. MIDI applications that aren't specifically MIDISupport aware will channel MIDI data via these ports.
- The fifth (AKA16_1) is a hardware driver for Acorn's AKA16 MIDI podule.
- The next two are hardware drivers for the DMI50's two MIDI ports (the XG synth, if present, is accessed via the second of these, DMI50PortB_1).
- MidiCtrl is a send-only software driver created by a virtual MIDI controller utility.
- MIDISpy is a receive-only software driver which provides a real time VU-type display of channel based MIDI data.
- Debbie is a software driver created by my XG controller utility !Debbie.
The blue and green arrows are hot spots which pop up a list of drivers connected to / from a driver whenever the pointer is over the arrow icon (a mouse click not being required). The arrow icon turns orange to clarify which driver the popup driver list refers.
This auto popups feature provides a quick way of assessing the current connections. Auto popups can be toggled on and off from the Configuration window.
In the example shown you can see that 3 drivers are acting as source for the MIDISpy driver, as also indicated (numerically) in the previous figure. The MIDISupport module automatically merges the MIDI data from multiple sources to a driver. Thus the MIDISpy display will monitor all MIDI data originating from any of these 3 sources.
The destination arrow for the MIDISpy driver is coloured grey, indicating that the MIDISpy driver is not capable of sending MIDI data, ie it is a receive-only driver.
Similarly, the MidiCtrl driver's source arrow is also coloured grey, indicating that it is incapable of receiving MIDI data, ie it is a send-only driver.
The Configuration window
The configuration window contains five areas covering various aspects of the MIDI Support system. It may be used either to change settings just for the current session (ie on the fly), or to save the user's preferred settings, to be used as the default in subsequent sessions.
This section lists all of the hardware MIDI drivers present on the user's system, and enables drivers to be loaded and/or removed.
This section contains options specific to the Parallel Port MIDI interface, and hence will be unavailable if the ParallelMIDI driver is not loaded.
This section contains options specific to the Serial Port MIDI interface, and hence will be unavailable if the SerialMIDI driver is not loaded.
This section enables the user to setup his/her preferred driver connections. It lists both currently active connections and connections mentioned in the current configuration file, and enables the user to choose which are to be saved. Thus it is possible to incrementally add connection details to the configuration file.
This section contains options specific to !MidiMan itself : default Panic options and various display related options.