HOWTO: REAPER on Ubuntu Linux with wineasio (updated)
I’ve updated this HOWTO to work with Ubuntu Hardy and the latest (as of this writing) wineasio and fixed the link to Steinberg’s site. If you notice any errors, please let me know so I can fix them. I also need to say thanks to Peter Jones for his work on wineasio and the information he contributed to this howto.
You may have already heard about REAPER. If not, REAPER is an extremely powerful digital audio workstation brought to you by the creator of Winamp. It’s also very reasonably priced. Unfortunately, it’s also Windows based, which presents a problem for people like me who avoid Microsoft products like the plague. REAPER can run under Linux with Wine, but up until recently that solution has left a lot to be desired (even compared to current Linux-based audio production solutions). The reason for this is because REAPER had to use the standard wavemapper interface to get audio to play. To put it mildly, that sucks. Even then it was very unreliable.
The other day, my friend Aaron (pipelineaudio) turned me on to a project called wineasio (or wine asio). What this does is allow REAPER to use the ASIO interface, which works much better. wineasio takes the connections from the ASIO interface and exposes them to JACK, which gives you a whole world of routing and configuration possibilities as well as a reasonably low latency interface to your soundcard. So, let’s get started.
First things first, you need to be running Ubuntu and it needs to be the x86 desktop version of
7.04 (Feisty Fawn) 8.04 (Hardy Heron). You need to make sure you’re up to date and that your sound already works. If you need help with any of those things, please look for it in the Ubuntu Forums. Once you’re sure you have all of those things, we need to install a few pieces of software. Here are the packages we’ll be installing:
linux-rt(I removed this because running the RT kernel is beyond the scope of this howto)
If one were so inclined, he could search for the above packages in Synaptic and install them there, but we’ll be using apt-get to do this, so click on Applications » Accessories » Terminal. Type or copy and paste the following command to install everything:
sudo apt-get -y install wine wine-dev libjack0.100.0-dev \ qjackctl build-essential
After you put in your password, this is going to download and install about 64mb worth of stuff, so if you’re on a slow connection it might take a while. This is a good chance to get a cup of coffee, a sandwich or spend some time in the thinking room.
When it finishes, go ahead and reboot your computer and be sure to boot up with our shiny new low-latency kernel.
Once you’re back to your desktop, we need to jump on the web and download some more stuff. The first thing we need to get is wineasio. As of this writing, the file we need is wineasio-0.7.4.tar.bz2. Just download that right to your desktop. If there’s a newer version, you can use that instead but remember to change the commands below to account for the different file name. The next thing we need is the Steinberg ASIO 2.2 SDK. Unfortunately, I can’t provide a direct link to the archive, so you’ll need to sign up for an account to get to the download. The file you’re after is asiosdk2.2.zip, and make sure you put it on your desktop with wineasio-0.7.4.tar.bz2. While you’re at it, go ahead and download the newest version of REAPER to your desktop as well.
After you get those 2 files downloaded, let’s get back to our terminal. We need to change directories to the desktop with this command:
Next we need to extract the two archives we just downloaded with these commands:
tar xvjf wineasio-0.7.4.tar.bz2 unzip asiosdk2.2.zip
Now, we need to change to the wineasio directory and copy in the asio.h file from the ASIO SDK. We can do that with these commands:
cd wineasio cp ../ASIOSDK2/common/asio.h .
Now we need to compile wineasio with one very simple command:
As long as you don’t see any errors (warnings are OK), then it compiled fine and we can install it with this command:
sudo make install
You may need to put in your password again before it will go. Now we need to register the wineasio.dll with Wine using this command:
Now it’s time to set up Wine to work with REAPER. Type this command at your terminal to bring up the Wine configuration:
This will hopefully pop up the Wine configuration window which should look something like this…
You need to change the “Windows Version” at the bottom to Windows XP. Then click on the Audio tab at the top. There will probably be some delay and a popup telling you there is no default audio driver or something. Go ahead and just close the popup and you should have the audio configuration window which looks something like this…
Here you want to make sure that JACK is the only driver selected. I’m told that this isn’t strictly needed for REAPER/wineasio, but will allow other software running with Wine to be able to make noises while JACK is doing its thing. Once you’ve done that, go ahead and click Apply and then click OK.
Now click on Applications » Sound & Video » JACK Control. This little utility is very important. This is what you’re going to use to adjust your buffer settings and latency and whatnot. It should look like this:
Go ahead and click on the Setup… button on the right, which will give you a screen similar to this one:
The settings in the screenshot are the ones that ended up working for me. You can use them as a starting point, but eventually you’ll want to experiment and find something that works best with your hardware. The Frames/Period and Periods/Buffer are what determine your latency. You can see in the lower right hand corner what your latency will be, so try to pick some settings that seem sane for your hardware. Once you’re satisfied with what you’ve done, click OK to close the setup window.
Hopefully, the display will light up like the above screenshot. If it does, you’re in business. Now it’s time to install REAPER.
Right click on the icon for the REAPER install and choose “Open with other application…” from the menu. Click on “use a custom command” at the bottom of the window and type in wine like I did above. Then just click the open button. This will run the REAPER installer. You should be able to just double-click on the installer, but it will probably take a few seconds to pop up. Just click through it like you normally would if you were running Windows. When it asks if you want to run REAPER, click Yes. Close the project settings window, close the error about not being able to initialize audio (if there is one) and close the registration window. In the very upper right hand corner, click where it says [audio device closed]. This will bring up the REAPER preferences, which should look something like this:
In the audio system drop down box, choose ASIO. This should make your configuration look pretty similar to mine as shown above. We need to make sure we’re using the wineasio driver and that there are some inputs/outputs showing up. If there are, then click OK and try playing the sample project. With any luck, you’ll be treated to the glorious sounds of Brad Sucks. But, there’s probably a good chance it’s going to click and pop and stutter or do something else nasty. If it does, close REAPER and stop the JACK control. Adjust the JACK settings for latency we looked at earlier, start the JACK server and double click the REAPER icon on your desktop and try again. It’s a trial and error thing but you should eventually be able to get it to play smoothly.
Anyway, that’s it. If you want to chat or discuss any of this, you can find me in #reaper on irc.cockos.com as daveisadork. Good luck!