Sunday, November 23, 2014

How to run Guitar Rig 5 with Reaper on Arch Linux

Since I really like to fool around with my electric guitar and record stuff, this was one my reasons to dual-boot, but now it seems like I finally don't really need to anymore.
This short guide will tell you how you can get WineASIO to work with Reaper and Guitar Rig.

So one of the first things we need is wine.

                                     sudo pacman -S wine

Should do the trick. Then we also need the jack server and a frontend for it, the most popular is qjackctl.
                         
                                    sudo pacman -S qjackctl jack

Now run qjackctl to select your audio interface in the Setup screen. I have this dedicated guitar interface: http://www.behringer.com/EN/Products/UCG102.aspx

It's not the best, but it's cheap and works on Linux.

Be sure to set the sample rate and the buffer size correctly. I can get it down to 256 samples and to a latency of around 10 msec (on Windows it does go under that).

Add your user to the audio group with

                                   sudo usermod -a -G audio yourusername

And now you should be able to start the jack server from qjackctl

Next up we need wineasio, this has to be installed from AUR wineasio or wineasio-git.

For some reason, this didn't really work for me, so I compiled my own. You still need steinberg-asio though.

                                 sudo packer -S steinberg-asio

This will install asio.h into /usr/include/steinberg-asio/asio.h

(Normally you would get this from the Steinberg SDK, which you would get by signing up for a Steinberg Developer account)

Now if the AUR package didn't work for you, then you can download wineasio from here:

                                http://sourceforge.net/projects/wineasio/

And copy asio.h from the above location to the source tree. After which, as the README file says:

Do the following to build for 64bit Wine.
# ./prepare_64bit_asio
# make clean
# make -f Makefile64

Now that should result in wineasio.dll.so being built. Check the architecture with the following command:

[balazsbela@archlinux wineasio]$ objdump -f wineasio.dll.so |grep arch
architecture: i386:x86-64, flags 0x00000150:

All good, now copy it into /usr/lib64/wine/  (Assuming you use the 64 bit version).

Now we need to register it, so REAPER sees it.

                               wine64 regsvr32 wineasioa

This should result in the message: Successfully registered DLL wineasio.dll

Now run winecfg and check that the drive in the Audio tab is winealsa.drv and only that.

WineAsio is now installed!

So lets get Reaper from: http://www.reaper.fm/download.php

The instalation is straightforward, next next finish.

Now you can get the free version of Guitar Rig from here:

http://www.native-instruments.com/en/products/komplete/guitar/guitar-rig-5-player/download/


So download and install that, set the VST plugin folder in Reaper (start it with wine reaper.exe, it usually lives in ~/.wine/drive_c/Program\ Files/REAPER\ (x64)/)

Now Guitar Rig should appear when you add effects to a track and you should be able to use it.


This approach is not perfect, I still get some buffer underruns with my USB interface, there is also a way to use a realtime kernel, that would probably make it a lot better, but it works and it's good enough for now.

In case I may have forgotten something:

http://lkubuntu.wordpress.com/2014/01/09/how-to-set-up-wineasio/
http://forum.cockos.com/showthread.php?t=16786


It does show how wine has come such a long way, maybe now with the open-sourcing of .NET it will get even better.