Workaround for some MIDI interfaces under Windows
With Java 1.5, Sun introduced an improved support for MIDI interfaces. It works very well with common MIDI events, but has some problems with SysEx strings: once a SysEx string is sent, which is shorter than the previous strings, additional bytes will be appended (see also JSynthLib workaround).
Rutger integrated a workaround for this issue into the editor, but you might still notice failing transfers due to a second issue, which exists in WinXP and older versions: if the SysEx string exceeds the SysEx buffer size, some bytes at the boundary between two buffers will be corrupted. Since Java seems to use a static buffer size of 512 bytes, but a MBSID V2 patch consists of 1036 bytes, a new workaround is required: the usage of MIDItrix from Hermann Seib.
Like for the JSynthLib workaround, MIDI Yoke has to be installed as a "virtual MIDI device". It can be downloaded from the MIDI-Ox website.
But instead of using MIDI-Ox to forward the MIDI events, we are using MIDItrix (which is a bit more comfortable anyhow).
Input Device Configuration: select MIDI Yoke NT Port 1 and your physical MIDI In Port(s). Ensure that the "Defragment" option is selected - this one is doing the trick!
Output Device Configuration: select MIDI Yoke NT Port 2 and your physical MIDI Out Port(s). Again, ensure that the "Defragment" option is selected!
Now you can patch the IOs in the configuration matrix like shown here: MIDI Out assigned to MIDI Yoke Port #2, and MIDI In assigned to MIDI Yoke Port #1:
In the MIDIbox SID V2 editor, select MIDI Yoke Port #2 as input port, and MIDI Yoke Port #1 as output port - done! :-)
Note that the usage of Miditrix is also helpful to forward the MIDI stream of a MIDI keyboard or sequencer to the MIDI Out which is connected to your MIDIbox SID, so that you are able to play & edit concurrently.
In this small demonstration, a MBHP_USB_GM5 module with Microsoft USB-MIDI driver has been used. All MIDI interfaces which are using this driver are affected. The workaround is not required once the GM5 driver has been installed. Since the GM5 driver is multi client capable, the usage of a virtual MIDI cable to join MIDI streams in Miditrix (or MIDI-Ox) isn't required as well.
Download
V0.5 release from 2009-02-18 (470k)

Last update: 2010-05-17
Copyright © 1998-2010, Thorsten Klose. All rights reserved.
|