MIDI Yoke Junction

 

Contents

News

Description

MIDI Feedback

Using MIDI Yoke
Download
Release Notes
 
Windows 9X
Installation: Windows ME
Installation: Windows 95, 98
 
Windows NT

Problems with installation (FAQ)

Installation: Windows XP
Installation: Windows 2000
Driver Update: Windows 2000
Deinstallation: Windows 2000
Installation: Windows NT
 
Installation: Windows 3.1
Contact

News

09-23-07 Updated MIDI Yoke NT driver.  You can now configure the number of ports MIDI Yoke will present, plus the upper limit has been expanded to 16 ports.  You can adjust MIDI Yoke parameters in the Windows Control Panel now.
12-31-06 Updated MIDI Yoke NT driver.  Change in the SysEx parsing routines to correctly handle non-SysEx data
12-01-06 Updated MIDI Yoke NT driver.  Fix a SysEx corruption problem when buffers arrive very close together in time.
08-30-05 Added a manual install version of the updated driver.
08-09-05 Updated MIDI Yoke NT driver.   Minor change to SysEx handling to pull Real-time events out of SysEx Buffers and send them separately, although they shouldn't have been in there in the first place.  Additional feature is a new (BETA) installer.
09-21-02 Updated MIDI Yoke NT driver.   If you already have MIDI Yoke NT installed and it's working well, you don't need this update.
06-27-02 Added some information about audio Clicks and Pops using MIDI Yoke NT.
08-20-01 The MIDI YOKE NT driver has been updated.
08-06-01 The MIDI YOKE drivers have been split into separate download packages, and additional documentation has been added to each installer.  Self extracting zip files replace the old zip package.
08-06-01 The MIDI Yoke NT driver has been updated to support 8 input and output ports.  You need to carefully follow the directions for a successful driver update. Detailed install/deinstall information is available in the installer package and online: Driver Update

 

Description

MIDI YOKE is a MIDI Patch Cable driver. It is a Windows (Versions 3.1x, 95, 98 and ME) multimedia driver.  Also available is a driver for Windows NT and 2000 (unfortunately not as robust).
MIDI Yoke NT:  This driver works in Windows NT 4.0, Windows 2000 and Windows XP.  It is completely different code from the Windows 9x MIDI Yoke driver.  It is hard coded to 8 ports and can't be changed.  It is not as robust as the Windows 9x driver, is still Beta code and will not be supported -- use at your own risk.
MIDI YOKE is used to connect any Windows MIDI Application outputs to any other Applications inputs. The MIDI data stream is passed directly from output to input -- Example:

[ Sequencer Out ]==>[ Out MIDI Yoke In ]==>[ In MIDI-OX 32 ]

Another:

[MIDI Keyboard In]==>[In MIDI-OX Out]==>[Out MIDI Yoke In]==>[In Sequencer]

This allows you to connect the MIDI output from one program to the MIDI input of a different program. MIDI Yoke can be configured to provide a varying number of MIDI Ports (from 1 to 16). In addition, each port allows multiple opens of both input and outputs: up to 4 openings per port. This flexibility provides for almost any configuration imaginable. Note: The NT driver is fixed at 3 ports and 3 openings for the moment.
There is additional information in the FAQ.

Back to Top

 

MIDI Feedback

The powerful nature of MIDI Yoke requires that a bit of care be exercised in its use: do not connect the outputs of one port to the same number inputs within a single application. If you do, it will cause MIDI feedback -- this phenomena will bring a computer to its knees, and likely crash the system.
Version 1.50+ of MIDI Yoke attempts to detect MIDI feedback by any of 3 configurable methods. The first method was supported in previous versions: it simply sends an undefined controller number out the input port every so often (once every 50 messages). It looks at the output port to see if the controller shows up: if it does it assumes MIDI feedback and disables the driver. The second (new) method analyzes the rate of messages traveling through the driver. If they exceed a certain threshold (2048 messages per second by default), the driver assumes MIDI feedback and disables the driver. The third (new) method combines the previous two: it analyzes the data rate. If the rate exceeds the threshold, the driver sends an undefined controller out the input. If the controller shows up at the output, MIDI feedback is detected, and the driver is disabled.
To recover from any of these conditions, simply close all connections attached to both ends of the particular MIDI Yoke port. After that the port may be reopened (but common sense would dictate that you should configure the routing differently).

Back to Top

 

Using MIDI Yoke

MIDI Yoke is not a normal driver!   It is a like a MIDI Patch Cable: it takes any data that shows up at its MIDI Yoke Output port and spits it out of its MIDI Yoke Input port!  This seems to be really counterintuitive to people, but it's the only way that it can work as a patch cable.  Imagine setting up a hardware loopback: you attach one end of a normal MIDI cable to your MIDI Interface Output port, and the other end back to the Input Port.  This is exactly what MIDI Yoke accomplishes in software (and frees up your MIDI hardware interface for other use). MIDI Yoke is used to attach different MIDI applications together -- it links them via MIDI. One applications MIDI Output is directed to the next applications MIDI Input.
This also means that you should never, ever, open the same MIDI Yoke port number as both input and output within a single application -- it is suicidal to do so. When this happens, any MIDI message sent to the output port is immediately routed back to the input port, which is then sent out the output port and immediately routed back to the input port... I think you get the idea: MIDI Feedback!  This all happens very, very fast (at interrupt time), and if it is not stopped, your machine will appear to be hung.  MIDI Yoke attempts to detect this condition and will break the connection when it is detected.  It is also possible to setup a feedback loop among several applications, so be careful and think about what you are doing -- draw the circuit on a piece of paper if necessary.
After a MIDI feedback report, you need to close and reopen the driver in each application that has opened it.  You can usually do this by opening the applications MIDI devices dialog (MIDI-OX and Cakewalk each have these), unselecting the MIDI Yoke port, and Press OK.  The driver is now closed.  Now do the same in the other application (if there's more than one application).  Next figure out how you want the driver to be routed (avoiding feedback scenarios).  Open the MIDI devices dialog and reselect the MIDI Yoke driver.  Press OK.  Do the same in the second application. The driver should now be re-enabled and operational.
You can use MIDI Yoke to communicate between applications by having then share a single MIDI Yoke port.  The first application (the Master) opens a MIDI Yoke port as an Output port, the second application (the Slave) opens the same numbered MIDI Yoke port as an Input port.  With this configuration, MIDI data (and System Exclusive) is passed in one direction from Master to Slave.   The Master might be Cakewalk or Cubase or MIDI-OX.  The Slave might be Rebirth or Cakewalk or MIDI-OX: it depends on what you want to do.

MIDI Connections

MIDI Yoke is normally used to connect two applications together.  The first application will open MIDI Yoke 1 as an output port, and the 2nd application will open MIDI Yoke 1 as an input port.  MIDI data will travel from the 1st applications output to the 2nd's input.  
Single Client to Multi-Client:  You can use MIDI-OX in conjunction with MIDI Yoke to achieve a virtual multi-client input.  Launch an instance of MIDI-OX.  In MIDI Devices... dialog, select the single client hardware driver as input and select MIDI Yoke 1 as output. In each application that you wish to share the driver, open MIDI Yoke 1 as input. Although I mention MIDI Yoke 1, it can be any MIDI Yoke port as long as they all use the same port number.
Multi-Client to Single Client output:  The reverse scenario is a mirror image of the previous paragraph.  You can use MIDI-OX in conjunction with MIDI Yoke to achieve a virtual multi-client output.  Launch an instance of MIDI-OX.  In MIDI Devices... dialog, select MIDI Yoke 1 driver as input and select your single client hardware port as output. In each application that you wish to share the output driver, open MIDI Yoke 1 as output. Although I mention MIDI Yoke 1, it can be any MIDI Yoke port as long as they all use the same port number.

Back to Top

 

Download MIDI Yoke

 

Donate to MIDI Yoke development

 

Supports Windows NT4, 2000, XP:
MIDI Yoke NT 1.75 (163K 09-23-07) Download Now

[to Install, double-click the downloaded MidiYokeSetup.msi file.  Ignore the other installation instructions on this web-site]

MIDI Yoke NT 1.75 (20K 09-23-07) Download Now Manual Install

To Install, unzip myokent.zip to a temporary folder.  Read the extracted  myokent.rtf redme file.  Install using control panel, Add New Hardware applet or re-install by using the System applet (right-click on MIDI Yoke NT and choose Update Driver...).  Double-click on the .reg file to place MIDI Yoke in the control panel.

 

Supports Windows 95, 98, ME:
MIDI Yoke 9x 1.63 (215K 01-23-01) Download Now

 

Older versions of MYOKENT for those wanting it:
MIDI Yoke NT 1.74 Download
MIDI Yoke NT 1.73 Download  
MIDI Yoke NT 1.71 Download  
Older dual version zip for those wanting it:
MIDI Yoke 1.63/1.57 Download

Back to Top

 

Release Notes 

09-23-07

1.75 MIDI Yoke NT

Now supports up to 16 ports or as few as 1 port.
12-31-06

1.74 MIDI Yoke NT

Rewrote the SysEx parsing routines to correctly handle non-SysEx data.
12-01-06

1.73  MIDI Yoke NT

Change to SysEx handling to wait until a buffer is completely finished before beginning to process the next.
08-09-05

1.72  MIDI Yoke NT

Minor change to SysEx handling to pull Real-time events out of SysEx Buffers and send them separately, although they shouldn't have been in there in the first place.
Prevent the driver from trying to cleanup handles that don't belong to the process doing the cleaning.  This would cause an NTDLL breakpoint to be hit when running a MIDI program in a debugger that had previously crashed.
09-21-02

1.71  MIDI Yoke NT

The driver creates threads on behalf of each application that opens it.  The priority class and priority defaults have been reduced to normal levels.
The timeout value after issuing a driver close has been reduced to 1 second (from 3 seconds).
The driver has been included in the self extractor in an uncompressed format.  This may help some people who had trouble installing the previous driver.
08-20-01

1.70  MIDI Yoke NT

The Driver has been versioned to 1.70 to differentiate it from the Windows 9x driver. This release fixes two items:
A SysEx buffer bug has been repaired. When the buffers on the input application attachment were smaller than those on the output application attachment, data was not always split correctly into separate buffers.
If an attached application crashed, the associated MIDI Yoke slot would become ‘orphaned’ and unavailable for further use until the system was rebooted. We now attempt to clean up any orphaned attachments the next time a MIDI Yoke port is opened.
08-06-01

1.59  MIDI Yoke NT

The Windows NT, 2000, XP version of MIDI Yoke will now present 8 different input and output ports.  Each port can be opened by to 3 applications at each end (input and output).  This driver is still somewhat of a hack, remains a beta version, and will not be supported.
01-23-01

1.63  MIDI Yoke 9x

The Windows 3.1/95/98/ME version of MIDI Yoke will now present up to 16 different input and output ports.  Each port can be opened by to 4 applications at each end (input and output).  
1.62 MIDI Yoke 9x
The driver has been renumbered to be different from the NT driver.  In addition, the helper task (Myoke.tsk) is only loaded when at least one instance of MIDI Yoke has been opened by an application. It is removed from memory when the last instance closes.  

Back to Top

 

Installation 9x

Windows Me

Under Windows ME, install the MIDI Yoke Junction via the Control Panel 'Add New Hardware' applet. After Windows forces an initial search, answer 'No, the device isn't in the list' and press [Next]. On the next screen, press 'No, I want to select the hardware from a list'.  Press [Next]. Choose Sound, video and game controllers. Press [Next].  On the next screen press [Have Disk...] Browse to the directory containing the installation files (MIDIYOKE.DRV and OEMSETUP.INF). Press OK...
During installation a configuration dialog is presented. The dialog allows you to specify the number of MIDI Yoke ports that should be enabled, and the Feedback detection desired. You can also change the controller number used to detect feedback. You can access this dialog later on too, once the driver is installed, and the machine restarted. To do so, open the Control Panel Sounds and Multimedia applet, choose the Advanced tab, expand 'MIDI devices and Instruments', double-click on any of the MIDI Yoke port connections, and press Settings... You can also Remove the driver using this applet if need be.
Windows ME install is very similar to Windows 98 SE: Pictorial Install can be viewed or printed.

Back to Top

Windows 95, Windows 98

Under Windows 95, install the MIDI Yoke Junction via the Control Panel 'Add New Hardware' applet. Answer 'No' to searching for hardware. Choose Sound, video and game controllers. Choose 'Have Disk'. Browse to the directory containing the installation files (MIDIYOKE.DRV and OEMSETUP.INF). Press OK...
During installation a configuration dialog is presented. The dialog allows you to specify the number of MIDI Yoke ports that should be enabled, and the Feedback detection desired. You can also change the controller number used to detect feedback. You can access this dialog later on too, once the driver is installed, and the machine restarted. To do so, open the Control Panel Multimedia applet, choose the Advanced tab, expand 'MIDI devices and Instruments', double-click on any of the MIDI Yoke port connections, and press Settings... You can also Remove the driver using this applet if need be.
Windows 98 SE Pictorial Install can be viewed or printed.
WARNING: There is a bug in Windows 95 that limits the total number of MIDI Ports to roughly 11. This total includes each MIDI Yoke port plus any other ports presented by other drivers, so set the number of MIDI Yoke ports such that the total number of MIDI ports is less than 11. If you exceed this amount it may prevent the driver from loading at bootup time.  This has been fixed in Windows 98.

Back to Top

 

Installation NT

Windows XP

The good news is that MIDI Yoke NT driver will work in Windows XP (Professional and Home Edition).  The installation is similar to Windows 2000.
A Windows XP Home Edition annotated Pictorial Install can be viewed or printed.

Windows 2000

Under Windows 2000, use the Control Panel Add/Remove Hardware to install MIDI Yoke NT.  Click Next... Choose (*) Add/Troubleshoot.  Click Next... Choose Add a new Device. Click Next... Choose (*) No, I want to select the Hardware from a list. Choose Sound, Video and Game Controllers. Click Next... Press [Have Disk]. Browse to the directory containing the drivers (myokent.dll and oemsetup.inf). Select the MIDI Yoke NT driver from the list. Make sure you don't leave an expanded MYOKENT.DLL in your MIDI-OX directory: If Windows NT finds this file it attempts to load it instead of the system one, and anomalies result. It's perfectly okay to leave the compressed version in your MIDI-OX directory (MYOKENT.DL_)
Windows 2000 Pictorial Install can be viewed or printed.

Back to Top

Windows NT

Under Windows NT, use the Control Panel Multimedia Applet to install MIDI Yoke NT. Select the Advanced tab, highlight the MIDI Devices and Instruments section, and press Add. Choose Unlisted or Updated driver, and browse to the directory containing the drivers (myokent.dll and oemsetup.inf). Select the MIDI Yoke NT driver from the list. Make sure you don't leave an expanded MYOKENT.DLL in your MIDI-OX directory: If Windows NT finds this file it attempts to load it instead of the system one, and anomalies result. It's perfectly okay to leave the compressed version in your MIDI-OX directory (MYOKENT.DL_)

There is a bug under Windows NT 4.0 installer that can sometimes steal the MIDI driver numbers from an already installed driver.  If this happens to you, re-install the other driver and then try using the auto-installer for Windows NT 4.0: MYNTAuto.exe

Back to Top

Windows 3.1

For Windows 3.1+ install the MIDI Yoke Junction via the Control Panel Drivers Applet. You can also access the settings dialog from this applet.

Driver Update for Windows 2000

A page has been created to aid successful MIDI Yoke NT update for Windows 2000.

Back to Top

Driver Deinstall for Windows 2000

A pictorial series has been created to aid driver removal under Windows 2000.

Back to Top

Contact

When possible, please use the MIDI-OX/MIDI Yoke forum to ask questions.  Other users can benefit from the answers and you may find the answer to your question already given.

You can reach me at:

JamieOConnell@_REMOVE_midiox.com

Back to Top

DISCLAIMER

MIDI YOKE JUNCTION DRIVER is provided without any warranty, expressed or implied, including but not limited to fitness for a particular purpose.

 


Copyright © 1996-2007 by Jamie O'Connell. All rights reserved.
email: webmaster@_REMOVE_midiox.com
This page was last modified on 12-11-08