14. Why is there a delay 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 using a software synthesizer such as the Microsoft GS Wavetable or the Roland VSC as your MIDI output device. 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 Band-in-a-Box® (and other MIDI software) and when you hear the note played. This delay is called latency, and is normally a fraction of a second.
In Band-in-a-Box®, the Driver Latency setting in the Opt. | MIDI Driver Setup 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.
For recording or playing live from an external MIDI synth, the 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.
Here is some more information about the Roland VSC and Microsoft GS Wavetable.
Roland VSC (Virtual Sound Canvas)
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, Band-in-a-Box® 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 Band-in-a-Box® 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 Opt. | MIDI Driver Setup dialog and set the Driver Latency setting to the same value as the VSC's Response Time. When you exit the MIDI Driver Setup dialog, Band-in-a-Box® 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 - it is usually between 50 and 100 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 an increasing number of cases the GS Wavetable is the only MIDI output driver choice, aside from purchasing a sound card or using an external synth/sound module for output.
Using a DXi software synth with an ASIO driver in Band-in-a-Box® and PowerTracks Pro Audio
Recent versions of Band-in-a-Box® (2006 and higher) and PowerTracks Pro Audio (10 and higher) added support for ASIO drivers. The main advantage to using ASIO in Band-in-a-Box® is that it allows you to play live from an external MIDI keyboard through a DXi synth with almost no latency. Previous versions of Band-in-a-Box® supported DXi synths, but you couldn't play through the DXi synth from your keyboard because there was too much latency. If your sound card supports ASIO and you have ASIO drivers installed on your computer, you can use ASIO by selecting this audio driver type in Opt. | Preferences | Audio. See the Band-in-a-Box® help file and manual for further information on setting up the ASIO audio driver dialog. If the manufacturer of your sound card doesn't have an ASIO driver, you may be able to use the ASIO4ALL driver.
Since Band-in-a-Box® comes with the Roland VSC-DXi, you have the option of installing this DXi synth and using it for MIDI output through an ASIO driver. As long as you choose a sufficiently low latency/buffer size in the ASIO Audio Driver's Control Panel, this would resolve your latency problem. For more in-depth information on the latency settings in Band-in-a-Box®, see our tutorial Understanding Band-in-a-Box® Latency Settings