I am using Cocos Reaper as my DAW software and am trying to record piano tracks using VST plugins downloaded from VST4FREE. As the MIDI keyboard, I am using my synthesizer - the Roland XPS 10. The keyboard works perfectly and I am able to record and export tracks but the problem I'm facing is latency in audio output from my computer when I try to monitor real time. I tried using several VST plugins, all downloaded from VST4FREE; plugins for piano, drum machines, etc., but I face the same problem for all of them. What I am doing at the moment is plugging my headphones into the synth, so I can hear what I play directly from the synth, while the audio gets recorded in reaper via the VST plugin. But I want to be able to hear the VST's sound output from my computer real time without latency. Keyboardists would understand why I need to hear exactly what is getting recorded. I searched for solutions and did whatever they said: I installed ASIO4ALL, tried changing the buffer size as was said at the cocos forum, tried changing the latency settings in reaper but none of them worked. Can someone please tell me of a way to get rid of the latency and monitor real time, just as I am playing the synth, in reaper? Also, alternatives to reaper that seem to be eradicating this problem are welcome in case we can't find a way to fix it in reaper. Thanks in advance.
-
1One thing that helped for me with a guitar and an older system (that I no longer have) was that the on-board realtek audio chipset native rate was 96k rather than 44 or 48. So there was some latency caused by down-sampling. IIRC, I lost about 5ms of latency just by doing that, but it was up in "echo territory" at the time. I have never been able to get lower than 10ms without pops and click nor lockups– YorikSep 6, 2016 at 16:23
-
Is the thread priority set to "highest possible"? That's under the audio device settings in reaper.– shaunxerSep 7, 2016 at 19:11
-
@shaunxer No. It is set to ASIO Default / MMCSS Pro Audio / Time Critical.– progy_rockSep 8, 2016 at 5:31
-
@shaunxer Please note that I HAVE installed ASIO4ALL– progy_rockSep 8, 2016 at 5:31
-
I'd set it to highest possible just to see if that helps– shaunxerSep 8, 2016 at 17:11
4 Answers
Ways to reduce latency:
- Get a low-latency interface that operates on a low-latency bus (thunderbolt if possible, Firewire 800 or USB 3.0 if you have those busses available). Built-in audio inputs and outputs are unlikely to have low latency.
- Use or get as fast a processor as you can, OR use external processing for audio plug-ins, such as the UAD external DSP system from Universal Audio.
- Use as high a sample rate for audio playback or processing as possible.
- Understand how audio buffers work and set them appropriately.
A buffer is a piece of memory set aside by the system. The purpose of this bit of memory is specifically to increase latency. The reason why buffers are used is because different systems inside a computer have different amounts of delay in how quickly they can access and/or process recorded audio or instrument samples. If the playback of the audio isn't "slowed down" a little bit with a buffer, then there can be clicks, pops, and drop-outs if the source of the audio or a processor is too slow in feeding the audio to the interface. The longer the delay introduced by system components, the bigger the buffer has to be to prevent drop outs, clicks, or pops.
The way to optimize the buffer is to set it as low as possible and then play back the audio or play the virtual instrument while listening for audio problems. If there are any problems, increase the buffer size one step and try again. Keep increasing the buffer size until the problems go away. At that point you will have found the lowest latency possible with your configuration (interface, software, etc.).
Generally, anything under 10 - 20 ms is pretty good, although many musicians can be annoyed by more than only 5 ms. Getting under 5 ms is not easy or cheap.
An alternative, if you can't get it now enough, may be to record it with a less resource intensive vst, to get the midi notes into your daw etc with a low latency that won't distract your playing. Then, you could switch over to the vst you actually want, so that the finished track would have that. This works if it's not for a live playing application.
I have been looking into this problem and no one online came up with one extra solution which made a big difference for me: I had my USB midi keyboard plugged into the computer, and the USB audio interface (Tascam US2x2) sending sound out of the computer. The best latency I got that was stable enough was about 8ms while playing a virtual synth in Reaper, using Jack connection kit software, in AV Linux OS. As an experiment I bought a Midi cable and plugged the keyboard into the USB audio interface with the midi cable. Obviously you need an audio interface with midi input for this. I thought letting the audio interface handle all input and output would reduce the tasks handled by the computer CPU and free up the CPU to reduce latency. Turns out that made a big difference. With the midi keyboard plugged into the USB audio interface, and only one USB device connected to the computer, I achieved 1-2 ms latency while playing a virtual synth in Reaper. This includes having a reverb effect applied to the synth. So that made playing the keyboard much easier. Definitely worth trying.
dont record with effects on, this adds to the processing power and thus the latency. Lower your sample rate - take it down to 128, or lower if your system can handle it. Install an SSD - solid state drives are lightning fast.