WineASIO provides an ASIO to JACK driver for WINE.
ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.
You can, for example, use with FLStudio under GNU/Linux systems (together with JACK).
For best results with Debian-based distributions, enable the KXStudio repositories and install WineASIO from there.
Do the following to build for 32-bit Wine.
make 32
To install (substitute with the path to the 32-bit wine libs for your distro).
sudo cp build32/wineasio.dll.so /usr/lib/i386-linux-gnu/wine/wineasio.dll.so
Do the following to build for 64-bit Wine.
make 64
To install (substitute with the path to the 64-bit wine libs for your distro).
sudo cp build64/wineasio.dll.so /usr/lib/x86_64-linux-gnu/wine/wineasio.dll.so
Finally the dll must be registered in the wineprefix. For both 32 and 64-bit wine do:
regsvr32 wineasio.dll
On a 64-bit system with wine supporting both 32 and 64-bit applications, regsrv32 will register the 32-bit driver in a 64-bit prefix, use the following command to register the 64-bit driver in a 64-bit wineprefix:
wine64 regsvr32 wineasio.dll
regsvr32 registers the ASIO COM object in the default prefix ~/.wine
.
To use another prefix specify it explicitly, like:
env WINEPREFIX=~/asioapp regsvr32 wineasio.dll
ASIO apps get notified if the jack buffersize changes.
WineASIO can slave to the jack transport.
WineASIO can change jack's buffersize if so desired. Must be enabled in the registry, see below.
The configuration of WineASIO is done with Windows registry (HKEY_CURRENT_USER\Software\Wine\WineASIO
).
All these options can be overridden by environment variables.
There is also a GUI for changing these settings, which WineASIO will try to launch when the ASIO “panel” is clicked.
The registry keys are automatically created with default values if they doesn't exist when the driver initializes. The available options are:
These two settings control the number of jack ports that WineASIO will try to open.
Defaults are 16 in and 16 out. Environment variables are WINEASIO_NUMBER_INPUTS
and WINEASIO_NUMBER_OUTPUTS
.
Defaults to off (0), setting it to 1 enables WineASIO to launch the jack server.
See the jack documentation for further details.
The environment variable is WINEASIO_AUTOSTART_SERVER
, and it can be set to on or off.
Defaults to on (1), makes WineASIO try to connect the ASIO channels to the physical I/O ports on your hardware.
Setting it to 0 disables it.
The environment variable is WINEASIO_CONNECT_TO_HARDWARE
, and it can be set to on or off.
Defaults to on (1) which means the buffer size is controlled by jack and WineASIO has no say in the matter.
When set to 0, an ASIO app will be able to change the jack buffer size when calling CreateBuffers().
The environment variable is WINEASIO_FIXED_BUFFERSIZE
and it can be set to on or off.
Defaults to 1024, and is one of the sizes returned by GetBufferSize()
, see the ASIO documentation for details.
Must be a power of 2.
The other values returned by the driver are hardcoded in the source,
see ASIO_MINIMUM_BUFFERSIZE
which is set at 16, and ASIO_MAXIMUM_BUFFERSIZE
which is set to 8192.
The environment variable is WINEASIO_PREFERRED_BUFFERSIZE
.
Be careful, if you set a size that isn't supported by the backend, the jack server will most likely shut down,
might be a good idea to change ASIO_MINIMUM_BUFFERSIZE
and ASIO_MAXIMUM_BUFFERSIZE
to values you know work on your system before building.
In addition there is a WINEASIO_CLIENT_NAME
environment variable,
that overrides the JACK client name derived from the program name.
Copyright (C) 2006 Robert Reif
Portions copyright (C) 2007 Ralf Beck
Portions copyright (C) 2007 Johnny Petrantoni
Portions copyright (C) 2007 Stephane Letz
Portions copyright (C) 2008 William Steidtmann
Portions copyright (C) 2010 Peter L Jones
Portions copyright (C) 2010 Torben Hohn
Portions copyright (C) 2010 Nedko Arnaudov
Portions copyright (C) 2011 Christian Schoenebeck
Portions copyright (C) 2013 Joakim Hernberg
Portions copyright (C) 2020 Filipe Coelho
The WineASIO library code is licensed under LGPL v2.1, see COPYING.LIB for more details.
The WineASIO settings UI code is licensed under GPL v2+, see COPYING.GUI for more details.