mdias/rs_asio

Confirmed: Focusrite Scarlet 8i6, 1st Gen (and Wine Question}

anwyn opened this issue · 16 comments

anwyn commented

Thank you for this project.
You can add a Focusrite Scarlet 8i6, 1st Gen to the confirmed working interfaces.

Do you know if anyone got this working under Linux with Wine/Proton and WineAsio? My first try in a Wineprefix that works for GuitarPro failed. The RS_ASIO.log file did not contain any enumerated interfaces after the first start.

mdias commented

Thank you for the report!

Regarding WineASIO there have been people that tried but none could make it work. You need to install a 32-bit wineasio to see it, but the previous people that tried it always had an error when it was initializing; the problem is that WineASIO doesn't actually have any helpful error message, so we couldn't tell what the problem was.
Looking at Wine source at the time, I think I remember it being possibly related to it being unable to connect to jack, but I'm not sure.

I just got this to work! I will try to provide as much information as possible so people can copy my setup:

  • Ubuntu 20.04
  • Rocksmith 2014 installation using Lutris
  • Wine version 5.19 (Staging)
  • Wineasio installation using this script
  • Jack version 1.9.12
  • I registered the wineasio .dll with these commands: WINEPREFIX=/home/paul/.local/share/lutris/runners/winesteam/prefix64 regsvr32 wineasio and WINEPREFIX=/home/paul/.local/share/lutris/runners/winesteam/prefix regsvr32 wineasio

My RS_ASIO.ini looks like this now:

[Config]
EnableWasapiOutputs=0
EnableWasapiInputs=0
EnableAsio=1

[Asio]
; available buffer size modes:
;    driver - respect buffer size setting set in the driver
;    host   - use a buffer size as close as possible as that requested by the host application
;    custom - use the buffer size specified in CustomBufferSize field
BufferSizeMode=host
CustomBufferSize=

[Asio.Output]
Driver=WineASIO
BaseChannel=0
EnableSoftwareEndpointVolumeControl=0
EnableSoftwareMasterVolumeControl=0
SoftwareMasterVolumePercent=100

[Asio.Input.0]
Driver=WineASIO
Channel=1
EnableSoftwareEndpointVolumeControl=0
EnableSoftwareMasterVolumeControl=0
SoftwareMasterVolumePercent=100

I just finished a test run playing Outkast and it works great!

mdias commented

That's pretty awesome! You're the first to get it to work :)
Thanks for reporting it here too with some instructions 👍

No problem! Let me know if my comment needs more explaining

No problem! Let me know if my comment needs more explaining

You wouldn't happen to know if and how this would apply to a Steam/Proton installation of Rocksmith 2014?

No problem! Let me know if my comment needs more explaining

You wouldn't happen to know if and how this would apply to a Steam/Proton installation of Rocksmith 2014?

I tried with Proton but it didn't recognize wineasio so now I'm using a staging version of wine via Lutris. The link to the lutris installer should install a windows version of steam + rs 2014. You can ignore the additional steps that they put in the description.

I feared as much. I'll follow the link and see how far I can get. And I'll open a ticket on Proton github, perhaps something happens.

No problem! Let me know if my comment needs more explaining

You wouldn't happen to know if and how this would apply to a Steam/Proton installation of Rocksmith 2014?

I tried with Proton but it didn't recognize wineasio so now I'm using a staging version of wine via Lutris. The link to the lutris installer should install a windows version of steam + rs 2014. You can ignore the additional steps that they put in the description.

Ok, I got it running to a degree with Steam. you have to copy the wineasio.so.dll from /usr/lib/i386-linux-gnu/wine/ (I used the wineasio from the kxstudio ppa, not the one you mentioned in your script) to the proton directory, the version that you use to run RS, in your steam library. For me that would be steamapps/common/Proton 5.13/dist/lib64/wine/. I think you also have to register the wineasio.dll in the winecfg libraries tab of Rocksmith as native/builtin.

Once I did that I saw Jack recognizing Rocksmith:

Mon Oct 26 18:22:47 2020: New client 'Rocksmith2014' with PID 6781
18:22:47.586 JACK active patchbay scan...
18:22:47.587 JACK connection change.
18:22:47.791 JACK active patchbay scan...
18:22:50.868 XRUN callback (4).
18:22:59.260 XRUN callback (5).
18:23:06.660 XRUN callback (6).
18:23:14.156 XRUN callback (7).
18:23:14.422 JACK connection graph change.
18:23:14.476 JACK active patchbay scan...
Mon Oct 26 18:23:14 2020: Connecting 'system:capture_1' to 'Rocksmith2014:in_1'
Mon Oct 26 18:23:14 2020: Connecting 'Rocksmith2014:out_1' to 'system:playback_1'
Mon Oct 26 18:23:14 2020: Connecting 'Rocksmith2014:out_2' to 'system:playback_2'

My problem now is that since I never used Jack before, I have no clue how to configure it so it gives me a sound :D The callbacks are probably because I did not configure something properly yet. No idea what though :D

You should setup your interface as input/output device in jack. Also set the sample rate to 48000

You should setup your interface as input/output device in jack. Also set the sample rate to 48000

Yep, in the meantime I got it working fairly nicely in Proton. Still have some xrun every 40 seconds which leads to some crackling issues and I think the device I am using (irig HD 2) isn't really the right one to use. Hunting for a little Scarlett on the used market at the moment.

I could not get it to work in Steam with Proton, but it really works excellent with a Steam install under a wine prefix. I had some tone recognition problems with Wine5 but Wine6 just works.

Using a scarlett 2i2 3rd gen and the buffer size is down as low as 48 @ 48kHz. :)

Many thanks for a great project!

@josla972

Just in case you did not see this, I've posted some instructions some time ago on reddit for Ubuntu/Proton/RS2014 perhaps they can help you make it work :)

https://www.reddit.com/r/rocksmith/comments/jxngpx/howto_rocksmith_2014_on_linux_with_steamproton/

@josla972

Just in case you did not see this, I've posted some instructions some time ago on reddit for Ubuntu/Proton/RS2014 perhaps they can help you make it work :)

https://www.reddit.com/r/rocksmith/comments/jxngpx/howto_rocksmith_2014_on_linux_with_steamproton/

I actually used those instructions. Unfortunately the wineasio - jack connection gets completely messed up with weird error messages. A connection attempt is made but there are lots of weird CheckSize errors etc.

I am using Gentoo linux btw, and I suspect the wineasio.dll.so that I built might simply not be ABI compatible with the steam wine (proton) installation.

But as I mentioned, Steam under wine with Rocksmith works, so I am happy :).

Meelo commented

@josla972
Just in case you did not see this, I've posted some instructions some time ago on reddit for Ubuntu/Proton/RS2014 perhaps they can help you make it work :)
https://www.reddit.com/r/rocksmith/comments/jxngpx/howto_rocksmith_2014_on_linux_with_steamproton/

I actually used those instructions. Unfortunately the wineasio - jack connection gets completely messed up with weird error messages. A connection attempt is made but there are lots of weird CheckSize errors etc.

I am using Gentoo linux btw, and I suspect the wineasio.dll.so that I built might simply not be ABI compatible with the steam wine (proton) installation.

But as I mentioned, Steam under wine with Rocksmith works, so I am happy :).

What did you do to build the wineasio.dll.so on Gentoo? I've been able to get game audio to work (this could just be jack->pulse bridge working properly), but always failed to get rs_asio to detect my focusrite.

Nothing in special, just "make 32".
I do not use pulseaudio. I just fire up jack2 with qjackctl and select my focusrite interface and then I am ready to play.

I've tried to follow the instructions here to the letter, but for the life of me I can't get it to work under native Steam and Proton. For now, I've solved my problem by running Steam itself under a new WINEPREFIX. This works beautifully with WineASIO.

My Specs: OpenSUSE Tumbleweed
Wine: wine-6.4.r0.g7ec998e1 ( TkG Staging Esync Fsync )
WineASIO 1.0.0 compiled from source.

Awesome work, by everyone involved!