12.Why is there a delay (latency) between when I play a note on my MIDI keyboard, and when I hear the note play through my computer speakers?
You are most likely (1) using a software synthesizer such as the Microsoft GS Wavetable or the Roland VSC as your MIDI output driver, or (2) you are using a DXi/VSTi software synth such as the VSC-DXi or ForteDXi with MME audio drivers. The dialogs to look in are Options | Preferences | MIDI| MIDI Devices and Options | Preferences | Audio.
One characteristic of a software synth is that it takes some time for it to express the MIDI data it receives as sound. In other words, there is a delay between when a note is sent by RealBand (and other MIDI software) and when you hear the note played. This delay is called latency, and is normally a fraction of a second.
Possibilities (1) and (2) above require slightly different explanations, so we'll deal with them separately.
(1) You might be using a software synth like the GS Wavetable as your MIDI Output Driver
In RealBand, the Synth Latency setting in the Options | Preferences | MIDI | MIDI Devices dialog is used to delay the notation and chord highlighting so that it is synchronized with the music during playback. However, note that this is only a visual setting; it doesn't change the actual latency of the driver. There will still be a delay between when you strike a key on your keyboard and when you hear the note played. There is also a setting to for 'Audio Delay' - this is used to synchronize the Audio tracks with the MIDI tracks, this also doesn't affect the actual latency of the MIDI device.
For recording or playing live from an external MIDI synth, one solution is to use a MIDI Output Driver with no noticeable latency. This could be the built-in MIDI synth on your computer's internal sound card, or your external MIDI keyboard or sound module. If you prefer the sound quality of the soft synth, you can record using a no-latency driver, and switch back to the soft synth for playback when you have finished recording. You may not have a hardware synth MIDI device to use, in fact most new computers that you purchase come with only the GS Wavetable and no dedicated "sound card".
The second solution is to use a DXi or VSTi synth such as the VSC-DXi, along with ASIO drivers (see below).
Here is some more information about the Roland VSC and Microsoft GS Wavetable software synths. This refers to the older stand-alone non-DXi version of the VSC, which is rarely used anymore because the VSC-DXi is better. However we've included this information for completion.
Roland VSC3 stand-alone MIDI driver (uncommon)
This information is only applicable to the stand-alone version of the VSC, not the VSC-DXi plugin.
The Roland VSC is a software synthesizer based on the sounds from the Roland Sound Canvas hardware sound modules. The VSC's latency, or "Response Time", is adjustable. By default, the Roland VSC has a response time of about 430 to 450 ms (a little less than half a second). This is a safe setting, and will avoid audio drop-outs and glitches even on older and slow computers. If you select the Roland VSC as your MIDI Output Driver and press OK in the MIDI Driver Setup dialog, RealBand will automatically offer to set the latency to 430 ms.
On most modern computers, you can reduce the VSC's latency by a fair bit without experiencing any problems. Depending on how fast your computer is, you may be able to reduce this to about 100 ms or less. This is still not ideal for live playing, but is much better than 430 ms. Follow these steps:
- Open the VSC. You can do this by clicking on the VSC icon in your task bar and selecting 'VSC Panel', or by going to Start | Programs | Virtual Sound Canvas 3.2...
- Click on the [Setup] button to open the VSC Settings Window.
- Click on the Performance tab.
- Move the Response Time slider to the left. Try setting it at about 100 ms to start with.
- Go back to RealBand and try playing a song. If there are no playback problems, you can move the Response Time slider another notch to the left. 68 ms is often the minimum.
- The next step is to go to the Options | Preferences | MIDI | MIDI Devices dialog and set the Synth Output Latency setting to the same value as the VSC's Response Time. When you exit the MIDI Driver Setup dialog, RealBand may ask you if you want to set the driver latency to 430 ms. If so, answer "No".
If you have trouble reducing the VSC latency below 100 ms, the following adjustments in the VSC settings window may improve performance without sacrificing sound quality. See the VSC help file if you want more information on each setting:
- Click on the Performance tab and uncheck delay and TVF.
- Click on the Performance tab and turn the load limit up to 90%.
- Click on the Sound Set tab and select 'Secure Memory at all times'.
- Click on the Receive Events tab and uncheck any that you do not use (ie - delay, expression...) on all channels.
- Click on the Device tab, and set 'Direct Sound' to off.
For best results, close as many background programs as possible.
Microsoft GS Wavetable
The Microsoft GS Wavetable is a software synthesizer included with Windows. The sounds are somewhat similar to the Roland VSC, but they are lower quality sounds, and there are fewer of them. The latency of the GS Wavetable varies between different computers with Windows XP - it is usually about 120 ms. On Windows Vista and 7, the latency is higher, about 210 ms. As far as we are aware, there is no way to reduce the latency on any particular computer. Unfortunately, many new computers don't include a sound card with a built-in MIDI synthesizer, so choosing a "no-latency" MIDI output driver for recording may not be an option. In many cases the GS Wavetable is the only MIDI output driver choice, aside from purchasing a dedicated sound card, using an external synth/sound module for output, or using a DXi/VSTi synth (see below).
(2) You might be using a DXi or VSTi software synth with an 'MME' audio driver.
RealBand supports either ASIO or MME audio drivers. One of the main advantages to using ASIO in RealBand is that it allows you to play live from an external MIDI keyboard through a DXi synth with little latency. When using MME drivers with a DXi synth (such as the Roland VSC-DXi or ForteDXi), live playing is routed through the MIDI output driver rather than DXi synth. This is desirable because the latency of your MIDI output driver could be less than that of the DXi synth. However as discussed above, it may not be great if the only 'MIDI output driver' you have is the GS Wavetable. Manufacturers of dedicated sound cards usually have ASIO drivers available. If the manufacturer of your sound card doesn't have an ASIO driver, OR if you are having trouble using a specific ASIO driver, the free ASIO4ALL driver is a great substitute and works very well with most systems.
You select the Audio Driver type in Options | Preferences | Audio. You should normally check the "ASIO Always On" checkbox in the ASIO Audio Drivers dialog (the option is provided in case a particular ASIO driver has a problem with being on constantly - if unchecked, then it's turned off while your song is stopped). If you are using a DXi/VSTi synth, ASIO audio drivers, and have ASIO Always On enabled, you should be able to play your external MIDI controller and hear what you're playing with almost no latency through the DXi synth. You should find ASIO latency settings (also called 'buffer size') in the ASIO driver's control panel. A higher buffer size is 'safer' but more latency. You should start with a high buffer size and gradually reduce it until you start having problems, such as errors or audio glitches.