MIDI-OX 7.0

Copyright © 1996-2004 by Jamie O'Connell and Jerry Jorgenrud

 

MIDI-OX 7.0  is a Windows XP (also Windows 95/98/ME/NT/2000) program.  MIDI-OX is a multi-purpose tool: it is both a diagnostic tool and a System Exclusive utility.  It can perform filtering of MIDI data streams. It displays incoming MIDI streams, and passes the data to a MIDI output driver or the MIDI Mapper. It can convert any type of MIDI message into almost any other type of MIDI message.  You can generate MIDI data using the computer keyboard or the built-in control panel. You can even record and log MIDI data and then convert it to a Standard MIDI File for playback by a sequencer.

 

MIDI-OX is copyrighted freeware: this means individuals in non-commercial environments can freely use it.  Commercial licenses are available, and can be purchased on-line at the MIDI-OX web-site Store.

 

We are soliciting donations from MIDI-OX users. Your contribution will help us acquire new and updated programming tools to allow continued MIDI-OX development. It costs quite a bit of money each year to acquire Software Development Kits, Compiler updates, and Test equipment. Donations will also help cover ongoing costs of the MIDI-OX Web site maintenance and development. If you find MIDI-OX useful and can possibly help out, please do so.

Click here to donate. 

 

Be sure to check the MIDI-OX web-site often for program updates.

 

 

INSTALLATION NOTES

 

We recommend that you de-install any version of MIDI-OX earlier than 6.0 before installing this one, if you are going to use the same directory.  To de-install MIDI-OX press the Windows Start menu button, choose Settings > Control Panel | Add/Remove Programs.  Choose MIDI-OX and press Add/Remove.  You can also use the Windows Start menu: Programs > MIDI-OX > unInstall MIDI-OX. After MIDI-OX has been removed you can proceed with normal installation by launching MIDIOXSE.EXE.

 

MIDI-OX is distributed in a self-extracting archive that launches the Windows installer.  The Windows installer is already available on most modern Windows OS’s.  If you need an update, for some reason, try the MS web-site (these URLs will probably break at some point):

 

Windows 95, 98, Me:

http://www.microsoft.com/downloads/release.asp?ReleaseID=32831

 

Windows NT | 2000 (XP is already up to date):

http://www.microsoft.com/downloads/release.asp?releaseid=32832

 

 

Extensive help for the application is available in the MIDIOX.CHM file installed with and accessed from MIDI-OX.  Although the MIDIOX.HLP file is still supplied for older systems (without HTML Help), it is no longer updated. If you require more information or have other questions you may contact the authors.  We also welcome any bug reports, and wish-list items.  Bear in mind, that we have limited resources for support of freeware products and free consulting though.  Although we remain pretty busy, we might be available for paid consulting work:

 

Jamie O’Connell        JamieOConnell@midiox.com

            Jerry Jorgenrud         jorgenrud@attglobal.net

           

            MIDI-OX Web-site    http://www.midiox.com

 

 

MIDI YOKE Driver Installation

 

MIDI Yoke is available as a separate download from midiox.com.  It is no longer supplied with MIDI-OX.  Get it at: http://www.midiox.com/myoke.htm

 

LICENSE AGREEMENT

 

Individuals may use MIDI-OX freely for non-commercial purposes.  All other users need to obtain a commercial license to use the product.  A commercial license covers companies using MIDI-OX to develop software products, QA departments using MIDI-OX to test other products, and professional musicians and engineers using MIDI-OX to help configure their systems:  If you are using MIDI-OX in a professional capacity you need to obtain a license. 

 

 

VENDOR INFORMATION

 

MIDI-OX may not be re-distributed by anyone without obtaining written permission from the authors.  There are no exceptions.  Since MIDI-OX is freeware, our only means of compensation will come from commercial distribution of it.  

 

 

New Features for Version 7.0

This is a list of features added after version 6.  For the full history, see MIDIOX Change History.rtf

 

·         Added an option to always place MIDI-OX in tray.  When not minimized, this option will cause MIDI-OX to appear on the taskbar and animate in the tray simultaneously.

·         Added an option to toggle MIDI-OX in tray.  When  minimized, clicking on the tray icon will show MIDI-OX.  When restored, clicking on the tray icon will hide MIDI-OX.

·         Added a facility to change the tray icons displayed for each instance of the application.  Look inside the TrayIcon.zip file (installed to the application folder) for details.

·         Added saving of a keyboard configuration profile, KEYNOTE.INI, when the keyboard is activated and the entries don’t exist.

·         Added a new view: MIDI Port Routing.  This view displays and configures In Port to Out Port mapping.  It should be easier to understand than the MIDI Devices dialog routing, and can remain open and edited during a session.   To use it, you can connect Input and Output ports by dragging a line with the mouse.  You can also right-click on ports or lines and select the appropriate command(s).  Right-clicking on a line and choosing, Properties… allows configuration of the connection.

·         Added custom color configuration for the MIDI Port Routing view into the Color Dialog.

·         Added an indicator to the Routing View.  When a connection is made, a color coded indicator button is displayed on the connection line.  Clicking on this button opens the connection properties dialog.

·         Added an optional command line argument, “/MinTray”. You can use this in a shortcut or command line to open MIDI-OX minimized in the Windows Tray.

·         Revised parsing of INS files to handle Unix style (no carriage returns).

·         Added user information to the About box and Installer.

·         Made Patch map triggering Program changes route through the current (new) port and data maps.

·         Added persistence for whether the monitor display is off or on.

·         Further fixed some bugs in MTC transmit: it should roll over after hour 23, not 24!  Added some verification and formatting of SMPTE values specified as a location offset.

·         Separated the Port Map Realtime and Common flags, so that each can be specified without the other.  The first Launch of the app after install will modify internal registry maps to match the new format. 

·         Added support for mapping to and from RPNs (Registered Parameter Numbers).

·         Added support for specifying delays in a map.  You can specify that the mapped event be delayed by 0 – 1023 milliseconds (1000 milliseconds = 1 second).  Each mapping step can have a delay and these delays are stored in .oxm and .txm maps, and displayed in the mapping view.

·         Added an optional switch to the Patch Mapping facility, to decide whether to resend the Program change that triggered the map change.  This was hard-coded to on earlier.

·         Changed the way Patch Mapping is implemented: now a (slightly delayed) triggering Program change message is sent only to the new map (not the original) after it is loaded (if the above switch is enabled).  The end result is that only one (or none) program change is sent and it is sent after a new map is loaded.

·         Changed some logic in device openings, that may improve the experience of dealing with corrupt drivers.

·         Allow Data Maps to be attached to MIDI-OX generated events: you can assign .oxm maps to internal port – output connections.

·         Support for .TXM Map files has been added to the Scripting.  You can now specify a .TXM file in LoadDataMap(FilePath)

·         A StatusBar has been added to the SysEx View, and a progress meter will appear when lengthy operations are undertaken.

·         An option has been added to the General Options dialog to color code messages by channel rather than by Event.  The channel colors can be adjusted in the Colors Dialog.

·         MIDI-OX now has visual styles enabled when running under Windows XP: it will use any current theme in effect.

·         The MIDI Status View has been greatly enhanced to support data entry.  Clicking on a cell now opens a slider.  You can drag the slider with the mouse or use the cursor keys for fine adjustment. Support for Mouse Wheel has been added.  You can center the slider by pressing INSERT. To dismiss the slider, either right-click or press ESC or ENTER..  When the Slider is displayed, clicking on another Cell will move it to the new location.  Clicking outside any cell will remove it.

·         The SysEx View will now provide syntax highlighting for SysEx Start (F0) as well as SysEx End (F7).  In addition, you can adjust the highlight color using the Options | Colors… dialog. 

·         Illegal/Bad SysEx values can be located by a new SysEx View menu command: Check Data.  Out of range values are flagged by underlining.

·         The installer has been rewritten, and the application now properly self-registers itself.

·          MIDIBar has been enhanced.  There is now a Loop button, as well as Rewind and Fast Forward to end buttons.

·         Added custom color configuration for Active StatusBar items (Options | Colors…), and changed the defaults to yellow test on dark blue background. 

·         Enhanced the Middle C Octave setting in General Options (1 – 7), and modified the Monitor display to show negative octaves.

·         Added a TaskBar command to turn the global Data Map off and on.

·         The MIDI Devices dialog is now resizable.  The list boxes and trees will size themselves depending on the layout dimensions. 

·         Added the capability of mapping System Realtime messages: Start, Continue and Stop.

·         Added the capability to map System Common message: Song Position Pointer.

·         Added support for toggling Status Bar items by clicking on the Status Bar: LOG, REC, SYX, KBD and MAP.  When any of these items are on, the background is displayed in green.  When an item is off, its text is grayed.

·         Added the ability to associate Data Maps with each Output and Input port connection.  You specify this in the Options | MIDI Devices… dialog: the Port Map Objects box now contains a list of all .oxm files in the Map directory.  These objects can be dragged onto an input port in the tree.

·         Added a new command: View | Current Map. It displays the parameters for the currently loaded map in the Monitor.  Therefore, the map display can be copied and pasted from the clipboard.

·         Added Import and Export of ASCII Data Maps.  This is a new file type that describes a mapping using an ASCII File format. It’s designed for those who wish to use tools such as Perl or Python to generate maps.

·         Added code to re-send the Patch Change that triggers a new Patch Mapping, after the new map and/or preset is loaded.  This allows placing translations into the (new) map that anticipate receiving the patch change immediately after load.

·         Added an Options | Folders… dialog to configure application folders.

·         Added the ability to view both Input and Output ports in the Monitor (labeled: In and Port).  This means that the output Monitor will now display each event output. If you have more than one output port hooked up and active, you will see more than one event output.  The Input Monitor does not have any Output port associated so the Port field is blank in the input Monitor.

·         Added an option to display the 1st 3 characters of the Device name instead of a port number in the Monitor. This allows you to create custom abbreviations for display of the ports in the Monitor.

·         Added an option to display a custom background bitmap: open Options | Colors… and choose Custom.

·         We now only display events in output monitor when data is output, or when the input monitor is closed.

·         Mapping of Data Entry and NRPN controllers has changed slightly.  If you now have no other NRPN mappings, you can map Data Entry (6, 38) as if it was any other controller.

·         When changing the Monitor Font, all open monitors are now updated.

·         A New scripting engine has been implemented.  This scripting engine uses MIDI-OX as a COM server.  The engine is compatible with Windows 98, Me, and 2000. Scripting information is documented in MOXScript.rtf and in the help files.  Example Windows Script Host scripts in VBScript, JScript and Python have been placed in the MIDIOX\WSH directory during installation.  If you want to use Python, you’ll have to install it: http://www.python.org.

·         The Keyboard Piano has been made configurable.  This should allow better usability for foreign keyboards.  See the text comments in KeyNote.ini for details.

·         The controllers sent during Panic, and their values have been made configurable.  See the MOXLIB.ini file in the application directory for variable names and default values.  Set any variable to -1 to cause the corresponding controller not to be sent at all (Pan is an example of this).

·         A Discard option has been added for map targets.  This allows using map statements to filter data with finer granularity than the global MIDI Filter.

·         Aftertouch has been added to the MIDI Status view, and maps can be appended to the currently loaded map (versus replacement).

·         MIDI Status configuration is now restored properly from Profiles.

·         The name of the currently loaded Port Map preset is retained and displayed across sessions.

·         Added SysEx logging for MF2T format.

·         A Patch Mapping facility has been added: you can now have Data maps and/or Port maps swapped and loaded upon receiving an external Program Change message.

·         The MIDI Status view has been significantly enhanced: you can now choose to display any controller as a column and specify column order.  In addition a controller Snapshot send facility has been added, and you can save and restore Snapshot dumps.

·         You can toggle on and off whether selected input ports are automatically attached to output ports as ports are selected.

·         An option has been added to the Data Mapping dialog to allow a special NRPN mode.  It has been reported that certain devices, such as the EMU APS require the Data Entry portion of the NRPN to be sent in reverse order from the MIDI spec.  When sending a full 4 message NRPN, and option has been added to reverse Ctrl 38 and 6.  To use this, first setup a NRPN to NRPN mapping (see: APS NRPN Reverse.oxm for an example), and then check Send Full NRPN and Reverse Data Entry.

·         We extended the 255-character limit for SysEx items in a map: each can now be a maximum of 1022 bytes.

·         Added simple substitution for SysEx map items: you can substitute in channel, data1 and data2 values from the MIDI message that triggered the SysEx item.  See the Help file for details.

·         Added the capability to delay mapped SysEx buffers by the amount specified in the SysEx window.

·         MIDI-OX would sometimes crash when timing clock was streaming in during driver initialization.  This has been repaired.

·         This release greatly increases the number of MIDI device drivers supported.  Until now MIDI-OX could only handle 24 input and 24 output devices at once.  This number  has been increased to 63 input and 63 output devices. 

·         A File Association dialog has been added.  Associations can be made with Maps and SysEx files. Associations can be added and removed.  In addition an option is provided to associate MIDI files with MIDI Bar.

·         MIDI-OX Command line options have been enhanced: you can now specify Map and SysEx files on the command line, as well as profiles.

·         MIDI-OX now supports drag and drop of Map files, SysEx files, and Profiles.

·         MIDIBar has been enhanced to (optionally) limit the applet to a single instance.  If it is set to single instance and an associated MIDI file is launched, it is loaded into the running instance.

·         A MIDI Sync feature has been added.  You can now use MIDI-OX as a MIDI Sync master controller.  It can also synchronize clock start with MTC.  See the help files for details.

·         Mapping has been enhanced.  You can now trigger SysEx data events when specified MIDI messages are received.  In addition you can receive, map and transmit NRPN events. See the help files for details.

·         Fixed a bug regarding multiple mapping items.  The system had been limited to 64 active mappings – it has been increased to 256, by default.  A setting has been added to MOXLIB.INI to further control this behavior.  In the [Options] section create a setting named MapItems.  Example: Mapitems=384 ; Creates room for up to 384 mapping items.

·         The display in the Mapping dialog has been improved: A bitmap is now used to display the All condition (asterisk).  This fixes problems with non-U.S. versions of Windows.

·         A feature has been added for selection and copying of text in the Monitor views to the Windows clipboard. To mark text, right-click in the monitor and choose Mark for Clipboard, or double-click, or ctrl-click in a monitor window.  Drag a rectangle over the text to select.  Next, right-click and choose, Copy to Clipboard, or press Enter.  Then paste the text into any application.

·         Two additional commands have been added: Select Window – selects all the text currently displayed in a monitor. Copy All  -- will copy the entire contents of the monitor to the clipboard.  This includes displayed and non-displayed messages.

·         Added a secondary method for deleting port objects.  Items in the Port Mapping view (Options | MIDI Devices...), now support a context menu with a Delete <item>.

·         Enhanced the mapping feature: you can now duplicate an input event to allow multiple message mapping.  You can use this feature to create a NRPN value from a single MIDI controller or chords from a single input MIDI note, among other things.

·         Keyboard accelerator support has been added to MIDIBar.  See the help file for more details.

·         Added command line processing for MIDIBar – it can now accept a filename on the command line.  You can setup custom shortcuts to play specific MIDI files or associate all MIDI files with MIDIBar in the Windows Explorer Shell.

·         Fixed a Y2K problem with date display in the MIDI log.

·         Changed the way dynamic menus are created for Banks and Patches in the Instrument Panel.  This should fix a problem when running at very high screen resolutions.

·         Added a raw MIDI messages display mode for the logfile.  People have asked for a way to display Raw MIDI messages and cut and paste messages from the Monitor.  This may be slightly less direct than that, but it works, and gives you a permanent record.

·         Added some new (optional) controllers to the MIDI Status Window.

·         Several fixes for the Instrument Panel for Bank Select methods other than Normal

 

 

 

DISCLAIMER

 

MIDI-OX IS  PROVIDED WITHOUT ANY WARRANTY, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO FITNESS FOR A PARTICULAR PURPOSE.

 

Copyright © 1996-2004 by Jamie O'Connell and Jerry Jorgenrud