Skip to content

Latest commit

 

History

History
87 lines (57 loc) · 5.18 KB

File metadata and controls

87 lines (57 loc) · 5.18 KB

JACK to ASIO with pipewire on NixOS

Final Steps

Table of contents

  1. NixOS Configuration
  2. Choose your method
  3. Method 1 - Manual
    1. Create a clean prefix
    2. wineasio
    3. Installing RS_ASIO
    4. Reboot
  4. Method 2 - script
  5. Set up JACK 🡰 You are here
  6. Starting the game
  7. Known Issues
  8. Troubleshooting

Final Steps

Set up JACK

What we basically need to do is to select only one output and just as much inputs as you need (1 input (eg. singleplayer) = 1 device; 2 inputs (eg. 2 Players) = 2 devices, etc.). I like to do this via pavucontrol, which works if pipewire-pulse is installed.

Open pavucontrol ("PulseAudio Volume Control"), go to "Configuration" and make sure the amount of enabled input devices matches the amount of inputs you want for Rocksmith.

All available devices will automatically be tied to Rocksmith, and the game doesn't like you messing around in the patchbay (= it's possible, but would crash often).

Starting the game

Delete the Rocksmith.ini inside your Rocksmith installation. It will auto-generate with the correct values. The only important part is the LatencyBuffer=, which has to match the Buffer Periods.

Steam needs to be running.

If we start the game from the button that says "Play" in Steam, the game can't connect to wineasio (you won't have sound and will get an error message). So we use a workaround.

Add these launch options to Rocksmith (right click Rocksmith 🡲 Properties 🡲 Launch Options):

LD_PRELOAD=/lib/libjack.so PIPEWIRE_LATENCY=256/48000 %command%

You can launch the game from Steam now.

If it doesn't work right away, try to remove window focus from Rocksmith (typically done with Alt+Tab) as soon as the window shows up. Try this a few times. If it doesn't crash, continue with instructions.

Rocksmith might not have audio, however, if you don't get a message saying that there's no output device, RS_ASIO and JACK are working fine.

In that case, open qpwgraph or a different JACK patchbay software of your choice. We want to connect microphones to the inputs of Rocksmith and two outputs to our actual output device. Rocksmith will sometimes crash when messing with the patchbay, so this is how you want to go about it:

  1. Connect one device to Rocksmith
  2. Window focus to Rocksmith
  3. Go to step one, until you have connected everything

Known Issues

  • Proton updates may require a re-patching (however system updates should work fine).
  • We (mostly) can't change the inputs of Rocksmith when it's running, otherwise it will crash. Therefore disabling the devices we don't want to automatically connect is often required.

A bit of troubleshooting

If some commands don't work, make sure you've set the variables.

Rocksmith freezes after starting and crashes

This means that the patch either wasn't properly applied OR was resetted, try to re-apply the patch.

Game crashes

Can happen sometimes when you use a different application, then focus Rocksmith again. Other than that:

  • First off, if the game crashes at the start, try two more times. Sometimes it was just random.
  • Keep Pavucontrol (or whatever you used) open while starting/playing - I can't really tell why, but it helps a lot
  • Use onboard audio: I use a seperate sound card (Shows up as "CM106") that creates issues. I don't have to unplug it, but just use the audio built into the mainboard. RealTone Cable works fine btw.
  • Focus away: If you use pipewire and the game crashes right after the window shows up, you could try taking the focus to another window as quick as possible. It helps sometimes, but isn't reliable
  • Patch bay: (Meaning: Changes with something like qpwgraph or Catia.) The game doesn't like these changes too much. You might get away with 1-2, but this is a bit luck-based.
  • Disable Big Picture: I think this was an issue for me at one point. I would do it just to be sure.
  • Start from terminal: This gives you more info on what's going on. Launch the script from the terminal or
  • Try the old approach: This is not meant to be used for playing anymore, but it's a reliable way to get the game running: PIPEWIRE_LATENCY=256/48000 WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx $PROTON/bin/wine $STEAMLIBRARY/steamapps/common/Rocksmith2014/Rocksmith2014.exe

WineASIO

This is a handy debugging tool (that I've also used in the past): https://forum.vb-audio.com/viewtopic.php?t=1204

CDLC

  • Make sure your game is patched for it. Since it's now an .exe, add that to your Steam Library and run it with Proton.
  • In the past, we had to set the working directory to the root of the game's folder. This would either be done in the script, in the properties of the shortcut, or in the terminal via cd.