In case you didn’t know: MIDI does not transmit any sound. What goes through the MIDI interface and your MIDI cables is (quiet) note information that has to be processed by a MIDI synthesizer. This synthesizer will then create the actual sound that you can hear. The latency you are experiencing will not be happening during the transmission of those very small packages of MIDI data, (the quiet note information), but when your Synthesizer is processing this information and is creating the audible sounds and notes that you will be able to hear.
If you are using an external Sound Module, external Synthesizer or a HARDWARE MIDI-Sound-chip on your soundcard, you will not experience any delay since these hardware components were designed especially for the creation of sounds on real-time MIDI input. If you are not using an external MIDI Synthesizer or Sound Module, but an internal Computer Soundcard that is outputting the MIDI sounds, it all depends on if this sound card has it’s own MIDI Sound-chip or if it is rendering the MIDI sounds by running a software emulated Synthesizer.
The latency (delay between MIDI input and the output of the actual sound) of these software emulated synthesizers is directly dependent on how fast your audio card can process the MIDI information and translate it into sound. Again, this is dependent on what kind of driver is used for the audio card and if the software synthesizer is able to make use of a faster driver standard.
On Windows Computers, there are generally 3 common standards for audio drivers that will give you different results when it comes to latency:
1. MME drivers. This is a very old driver standard that is around since the first Windows versions. Therefore, it is the slowest of all audio drivers. Most software synthesizers that appear in the selection for “MIDI ports” in your Audio-/MIDI application are running based on MME drivers and are therefore having a high latency time (long delay between hitting a note an hearing it). The most common example for this type of Synthesizer is the “Microsoft GS Wavetable SW Synth”. This software synthesizer can be found on any Computer running Windows 2000/XP and is often the only available MIDI sound source. This synthesizer will always cause long delay times.
2. WDM drivers. To be able to make use of the advantages of WDM drivers, you need a number of things to work together.
a. You need an audio card that is fully DirectX compatible.
b. You need a standalone synthesizer application (e.g. Native Instruments software) or Midi-/Audio Sequencer / Host application (e.g. Cakewalk Sonar 1.0) that makes use of the WDM/DirectX standard.
c. If running a WDM/DirectX compatible MIDI-/Audio Sequencer / Host application (like Sonar), you have to load synthesizer PlugIns within the software that are compatible with the PlugIn standard this software is using. In the case of Sonar 1.0, this is “DXi”.
The latency that can be expected is related to the buffer sizes that are set for the audio card and the driver configuration within software (smaller buffers=shorter latency). Generally, the latency is much lower than when using MME drivers, but in most cases not as good as when using ASIO drivers (coming up next).
3. ASIO drivers: This is the driver standard used by professional audio cards and professional Audio-/MIDI Sequencing applications. A number of things need to work together to make use of the advantages of the ASIO drivers.
a. You need an audio card that is ASIO compatible (Meaning a Pro Audio card. Onboard soundcards or soundcards being delivered with new computers are not ASIO compatible).
b. You need a standalone synthesizer application (e.g. Native Instruments software running in ASIO mode) or MIDI-/Audio Sequencer / Host application (Cubase VST/SX/SL, Logic Audio, Sonar 2.2 or higher in ASIO mode) that makes use of the ASIO standard.
c. If running an ASIO compatible MIDI-/Audio Sequencer / Host application, you need to load a VSTi Synthesizer PlugIn within the software.
The latency that can be expected is related to the buffer sizes that are set for the audio card and the driver configuration within the software (smaller buffers=shorter latency). Generally, using an ASIO based system gives the best possible latency time on Windows computers.