A guide to achieving low latency in Rocksmith on PC

Okay, here's a guide I decided to make to get low latency in this game. If you follow these steps I guarantee you will achieve the lowest possible latency.
First of all here's how I think is the way to calculate actual latency in milliseconds from the settings in the rocksmith.ini file:

Multiply MaxOutputBufferSize by LatencyBuffer. Then divide by 48. Multiply by three. The result is output latency in milliseconds.

For example, say you have MaxOutputBufferSize set to 1024 and LatencyBuffer at 2.

As I mentioned earlier, this is the output latency. You'll also have to take in consideration input and processing latency. Usually these are equal to each other. So, assuming this, to get total latency you just multiply the output latency with three; 42.7 *3 = 128.1 milliseconds.

As I said this is only how I believe it is calculated, if anyone wiser wishes to correct me, please go ahead.

Make sure you have latest drivers for your audio device(s). Check the website of the manufacturer.

If you have many sound cards like me, you have to test and choose the best one. In my case, I had three different audio devices to choose from; a PCI Sound Blaster Audigy 2 ZS, M-Audio FastTrack USB and an integrated ALC889 in my motherboard. You'd think that the Audigy 2 would offer the best latency, but guess what, it's the worst. It just seems that the WASAPI drivers on the Audigy suck big time, the lowest latency I could go with the Audigy was 192 ms, which is unacceptable. With the M-Audio it was a little better, I achieved 129 ms. The absolutely best result was with the ALC889, with it I achieved a latency of 9.4 ms.

Step two

To change the latency settings for Rocksmith, you'll have to modify a file called rocksmith.ini (open it with Notepad). The file is found in the installation path of Rocksmith. In my case, it was C:\Program Files (x86)\Steam\steamapps\common\Rocksmith.

The parameters you want to look at are MaxOutputBufferSize and LatencyBuffer. Also, make sure that ExclusiveMode is set to 1 (has to be enabled for low latencies). MaxOutputBufferSize is the buffer size and LatencyBuffer is the number of these buffers. MaxOutputBufferSize will by default be 0, which means that Rocksmith will automatically choose the buffer size. From what I've read in the FAQ it seems it defaults most sound devices at a buffer size of 1024. Combine this with the default LatencyBuffer of 4 and you have a delay of 256 ms, which I find very high.

Okay, so where do we start? Well, I'd start with setting the MaxOutputBufferSize at 1024 and LatencyBuffer at 1. If this works that's great, you can now simply lower MaxOutputBufferSize until the the sound starts crackling in the game. I'd start lowering by 256 until crackling starts. Then go back to previous value and try lowering with 128, if that works lower by 64, then 32 etc. Do this until you are able to find the lowest possible value where the game works smoothly without losing audio or crackling or other anomalies. I achieved a value of 150 with my integrated audio device, which is quite a low latency and very playable.

If at the start you failed with MaxOutputBufferSize at 1024 and LatencyBuffer 1, try with buffer size at 2048. If that doesn't work, you'll have to start increasing the LatencyBuffer to 2 and then try again decreasing the buffer size.

Pro-tip: To fasten the process of testing, just wait for the intro sounds of the game and if they play just alt-tab and close Rocksmith and continue testing with lower buffer values. If you hear distortion or no sound, you know to increase the buffer.

Step three

This is a section of misc tweaks that might help you achieve a lower latency.

Another basic tweak is to close all unnecessary applications before playing Rocksmith, this includes applications in the task bar.
Also, make sure you have latest drivers for all your computer peripherals.

If you plan on upgrading computer parts, go for a faster processor as it will help with overall responsiveness. An SSD drive will also help in this matter. I can't currently recommend sound cards, since from what I've read and from my own experience it seems that integrated audio chips perform better when it comes to low latency. ASIO support in Rocksmith would be great, but I guess piracy would go rampant from that.

So that's it, hopefully you have now achieved a low latency and be able to enjoy the game! Please post if you have any other tips or tweaks you think I should add, or if you have any questions.

I've also read that you should disable all audio output effects for your sound card.

In my experience, any output effects are ignored when ExclusiveMode is enabled. Rocksmith takes exclusive control of the audio device and thus any software effects that might've been in between are bypassed. I tested this myself by enabling a ridiculous reverb effect on my sound card, it wasn't effective anymore when I started Rocksmith.

If you have ExclusiveMode disabled, then yes, any software effect enabled affects the game and might also make matters worse when it comes to latency. But if you want low latency, ExclusiveMode is a must and the game is thus unaffected by any lag inducing effects that might be enabled from your sound card.

MaxOutputBufferSize is probably in samples. Rocksmith needs some buffer to do its amp simulator processing.

Don't think SSDs will help much, that sort of processing is more a function of the D/A converter (ie the sound card) and the processor speeds. That's assuming you max out the memory of your PC, which I tend to do because memory is a pretty cheap performance boost relatively speaking.

you have just calculated the output latency.
But dont forgett you have a processing latency and an input latency.

I have also start playing around with some consumer grade soundcards.
I did get an outputlatency of my onboard soundcard down to 2-3ms without greater problems.
But the Realtoncable also has a min. of apporx. 20ms

I think over all i got a latency of about 40ms. Its very low but i feel unconfortable with even that value.
I have also tried GuitarRig 5 together with the realtone cable and the onboard Soundcard with the ASIO4all.
If i remeber correctly Inputlatency 15ms processing 3ms output 6ms i can give you the correct vaules if i restart my notebook.

Latency is a real pain in the *** for me.
I set the buffer on 1024.
My output is a RME Babyface.
The latency is really disturbing and it's really ridiculous to have to play with the cheap real tone cable when i own a 500$ professional audio interface.

I can't set the LatencyBuffer on 1 (the sound is terrible) and when i set the buffer lower than 1024, the game won't launch.
This is weird, i have a fast computer (core i7).

gmparadise, you are probably using your PCI soundcard, which a lot of people are having trouble with latency wise. Try your onboard audio device, it gives much better results in combination with analog audio in most cases and can run on much lower buffers.

you have just calculated the output latency.
But dont forgett you have a processing latency and an input latency.

I have also start playing around with some consumer grade soundcards.
I did get an outputlatency of my onboard soundcard down to 2-3ms without greater problems.
But the Realtoncable also has a min. of apporx. 20ms

I think over all i got a latency of about 40ms. Its very low but i feel unconfortable with even that value.
I have also tried GuitarRig 5 together with the realtone cable and the onboard Soundcard with the ASIO4all.
If i remeber correctly Inputlatency 15ms processing 3ms output 6ms i can give you the correct vaules if i restart my notebook.

A friend of mine is a professional Bassist he is complaing even on 20-30ms latency he mentoned that he has no feel for the tone or the repsonse if he plays slap is bad.

As rml0214 posted earlier, it maybe makes more sense for the buffer value in the ini file to be in samples, not bytes. So if we count purely in samples the latency should (?) be calculated like this:

MaxOutputBufferSize set to 1024 and LatencyBuffer at 2.

Total buffer size: 1024 * 2 = 2048
Divide by 48: 2048 / 48 = 42
The output latency is 42 milliseconds. Assuming that input and processing has the same latency as the output, multiplying with 3 the total will be 126 ms.

Where do you get the value of 20 ms latency on the cable? I'm able to get a I/O latency of 3 ms in Mixcraft using WaveRT exclusive mode (same as Rocksmith) with the cable: