This article mainly applies to Windows systems running any Cubase, Nuendo or Sequel version build end of 2004 or later.
MIDI on Windows systems: What's the issue?
Using MIDI interface port drivers on PCs with Windows in conjunction with current MIDI/Audio sequencer applications like Cubase or Nuendo, which mainly rely on Microsoft's current DirectMusic (as part of DirectX) API for MIDI communication, can sometimes be confusing for the user. This is due to the fact that it is possible for providers of MIDI interface drivers to deliver their drivers in different "flavors". Modern MIDI interfaces are installed with real native DirectMusic drivers whereas it is still quite common for other interfaces to use a predecessor API to provide drivers for the Windows MIDI system. DirectMusic itself has a function to "mirror" these Windows MIDI ports to show up as "emulated DirectMusic" ports. Unfortunately, this can lead to a quite nice array of problems when using inappropriate port driver architecture:
- Shifted MIDI events while recording (events are recorded too late or too early)
- Sometimes no MIDI events are recorded at all
- Sometimes stuck notes or several events stacked on top of each other are recorded instead of being consecutive
- Generally bad or wacky MIDI timing on playback
- Double or triple recordings of the same MIDI events due to using different driver architectures at the same time
General advice for using MIDI on PC Windows systems
These are the basic steps to check when you experience problems with the stability of MIDI communication on your PC system:
Make sure to have all available updates for the application and the operating system installed. When it comes to MIDI timing it is crucial to use the latest DirectX version available for your operating system. Cubase and Nuendo
If you have persistent timing problems (shifted notes etc.) with native or emulated DirectMusic ports please check the option "Use System Timestamp" provided in the DirectMusic section of the Device Setup dialogue. If enabled, an alternative time reference in your system is being used.
Depending on the CUbase version, "Use System Time Stamp" can be found under:
- Devices > Device Setup… > Direct Music
- Devices > Device Setup… > Windows MIDI
- Devices > Device Setup… > MIDI Port Setup
If you experience difficulties whwith receiving/transmitting SysEx data through native or emulated DirectMusic MIDI ports, please check if the Windows MIDI (MME) ports can be of help. To gain access to all available driver architectures please see the section below about the "ignoreportfilter" & "enableemulated" switches.
Normally, one can fix any of these issues by using the two filter files "enableemulated" and "ignoreportfilter". Those files can be found in the Sequel application folder (default is C:\Program Files\Steinberg\Sequel) in the subfolder "Midi Port Enabler".*Both files have to be moved one directory up into the Sequel application folder. After a Sequel relaunch, the program now has access to previously hidden driver architectures and protocols. As the whole MIDI configuration is done automatically in Sequel, a different method of communicating with the MIDI interface or the USB keyboard will be chosen and thus the MIDI delay and recording issues should not occur any longer.
*Unfortunately, the first Sequel production run does not include the "MIDI Port Enabler" folder. Therefore, we offer both files as a zip package for download as part of the article.
If timing problems with the recorded MIDI events occurs with your operating system, try changing the "Record Placement Method (that can be found on the Program Settins Page from) A (uses timing information of Sequel) to B (uses MIDI timestamp) or vice versa.
Troubleshooting: Other possibilities to configure MIDI ports
If you continue to have issues, you can use the "ignoreportfilter" and the "enableemulated" files. These two files are stored inside a folder named "midi port enabler" which can be found inside the Cubase/Nuendo/Sequel application folder.
This will happen when you use these files:
- "ignoreportfilter" will show you every MIDI port installed on your system independent of the used driver architecture. Generally speaking, the "ignoreportfilter" disables any filter to hide specific MIDI port architectures.
- "enableemulated" will show you all emulated DirectMusic ports but will not unhide Windows MIDI ports itself. This can be necessary if you have problems with the Windows MIDI ports of your MIDI interface but there are no native DirectMusic ports available for your interface. Fortunately, this situation is happens only in a very rare number of cases.
These files are used as a sort of "switch". To use these "switches" just move the desired file from the folder "midi port enabler" one level up to the main application folder, e.g. to folder "\program files\steinberg\cubase 6\".
Please note that using these files makes it mandatory to check your MIDI port setup inside the application for redundant MIDI ports (i.e. those that appear twice or even three times). Use menu >Devices >Device Setup… for this. You should not use more than one driver architecture for a specific MIDI device at a time. For example, using the "ignoreportfilter" with a MIDEX 3 or 8 will show you the native DirectMusic ports listed and the Windows MIDI ports at the same time. This means that you will record from two ports at once when your MIDI tracks are set to "All MIDI Inputs". To solve this, please deactivate the ports either for DirectMusic or Windows MIDI.