jhernberg/wineasio

Build instructions for ubuntu 18.04

dreamcat4 opened this issue · 5 comments

Hi there. This is not a bug or anything. I'm just posting the commands / instructions / guide how to build this on ubuntu 18.04. And then register the dll in PlayOnLinux.

Hope it will be useful to somebody out there.

git clone https://github.com/jhernberg/wineasio.git
cd wineasio

# install wine headers, and winegcc / windbuild, for the 3.16 dev version, into /opt/wine-devel
wget -q https://dl.winehq.org/wine-builds/Release.key -O- | sudo apt-key add -
sudo apt-add-repository -y https://dl.winehq.org/wine-builds/ubuntu/
sudo apt-get install -y wine-devel wine-devel-dev
sed -i -e 's|INCLUDE_PATH          =|INCLUDE_PATH          = -I/opt/wine-devel/include -I/opt/wine-devel/include/wine -I/opt/wine-devel/include/wine/windows|g' Makefile64 

# install jack headers v1.9.12 (which is jack2)
sudo apt-get install -y libjack-jackd2-dev

# download steinberg asio sdk from http://www.steinberg.net/de/company/developer.html
cd ~/.dev
mkdir steinberg-asio-sdk
cd steinberg-asio-sdk
wget http://www.steinberg.net/sdk_downloads/ASIOSDK2.3.1.zip
unzip ASIOSDK2.3.1.zip
mv asiosdk*/* ./
cd ASIOSDK2.3.1
cp common/asio.h ~/.dev/wineasio

# build wineasio
cd ~/.dev/wineasio
bash ./prepare_64bit_asio
make clean

# put /opt/wine-devel/bin at the front of our path, to pickup
# the 3.16 versions of the programs 'winegcc' and 'winebuild'
PATH="/opt/wine-devel/bin:$PATH" make -f Makefile64

# build of wineasio complete.
# if everything worked (no errors!), then we should now have the file: 'wineasio.dll.so'

# copy the .so into the wine folder, for the version of wine used by your Virtual Drive
# here i am using wine 3.16, which is the current development release
cp wineasio.dll.so ~/.PlayOnLinux/wine/linux-amd64/3.16/lib64/wine/wineasio.dll.so

# The PlayOnLinux Install Wizard always defaults to 32-bits
# So we must create a Virtual Drive manually, as 64bits first

# Then select the Virtual Drive, then the last 'Misc' Tab, and Click the Button:
# 'Open a shell'
# Then type
wine64 --version
wine64 regsvr32 wineasio.dll
# it should then report back
# 'regsvr32: Successfully registered DLL 'wineasio.dll'
exit

Tested with ableton live suite 10, and jack2 (1.9.22). Working.

Thank you soooo much for this! After installing required dependencies for it to compile on Fedora 30, it is working perfectly (using Ableton Live Lite 10).

Please let us know how you are finding the performance in ableton 10. Since I was finding it was very being very poor for live audio.

Hi, apologies for late reply. I was busy with other things so I didn't get a chance to really test it until now.

Overall, it runs pretty well. Launch Ableton and it automatically chooses JACK and everything is fine. Recording audio from output of guitar amplifier to onboard soundcard of computer although there are a few chirps here and there, the latency seems to be pretty good (approximately 32ms). I've set the sample rate to 48kHz.

Regarding MIDI controllers, most of the time my Novation Launchkey 49 is detected successfully and all Ableton specific controls work.

One thing I did come across was Ableton thinks there is a lot of load on my CPU but this isn't the case. It happens because the CPU freq is set to scale up and down and during low freq (800 MHz or so), Ableton load indicator floats around 20%. The only way to solve this issue is to run CPU at full boost/base clock but that isn't a solution IMO.

Overall, it runs pretty good but if you're going to be using Ableton seriously, its best to run it on Windows/MacOS. I think FL Studio also uses ASIO so this project may benefit those who want use it under Linux.

I recently got into Bitwig Studio and I must say, it works exceptionally well! There is no noticeable latency and when recording guitar, there are also no hiccups when monitoring.

4oo4 commented

Thanks to @dreamcat4's instructions, I got this to compile and regsvr32 reported that it registered it OK. However, I still can't see a WineASIO audio device in the couple programs I tried testing with (iZotope RX and Foobar2000). Anyone have ideas on why they're not showing up? I also set reg keys for Autostart Server and Connect to hardware per the docs here: https://wiki.cockos.com/wiki/index.php/Installing_and_configuring_WineASIO

Eventually I plan to try it with audio production apps, but was curious if it would also work in a playback-only scenario.

Cheers

in 2020 March
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key

sudo apt-get install -y wine-devel wine-devel-dev
mkdir /usr/include/wine
wget -O /usr/include/wine https://raw.githubusercontent.com/wine-mirror/wine/master/include/wine/unicode.h

wine64 regsvr32 ~/.PlayOnLinux/wine/linux-amd64/3.20/lib/wine/wineasio.dll.so