ASIO to JACK driver for WINE
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
falkTX 429b997006
Update README, add GPLv2 license file for GUI
4 years ago
gui Non-destructive gui "make clean" 4 years ago
rtaudio @ 50c05fa4ba Update rtaudio submodule 4 years ago
.gitignore Add initial gui code 4 years ago
.gitmodules Modernize prepare_64bit_asio script 4 years ago
COPYING.GUI Update README, add GPLv2 license file for GUI 4 years ago
COPYING.LIB Update README, add GPLv2 license file for GUI 4 years ago
Makefile Fixup Makefiles to work with latest wine 4 years ago
Makefile64 Fixup Makefiles to work with latest wine 4 years ago
README Update README, add GPLv2 license file for GUI 4 years ago
asio.c Launch wineasio-settings for the ASIO panel 4 years ago
main.c comment out excessive tracing 10 years ago Add sh extention to prepare_64bit_asio, fail on first error 4 years ago
regsvr.c comment out excessive tracing 10 years ago
wineasio.dll.spec WineASIO 0.1.0 13 years ago


1. Installation
2. General Information
3. Change Log
4. Legal Stuff


Do the following to build for 32 bit Wine.
# make clean
# make

To install (substite with the path to the 32 bit wine libs for your distro).
# sudo cp /usr/lib32/wine/

To build for 64bit Wine a shellscript has been added to modify asio.h and make
it compatible with both 32 and 64bit Wine/Linux. A separate Makefile has also
been added for 64bit.

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

To install (substite with the path to the 64 bit wine libs for your distro).
# sudo cp /usr/lib/wine/

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 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 wineaiso.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


Wineasio can slave to the jack transport.

ASIO apps get notified if the jack buffersize changes.

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 overriden by an environment variable.
The key is automatically created with default values if it doesn't exist when the driver initializes.
It contains the following values:

[Number of inputs] & [Number of outputs]
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

[Autostart server]
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.

[Connect to hardware]
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.

[Fixed buffersize]
Defaults to on (1) and is the old behaviour where 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

[Preferred buffersize]
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 derrived from the program name.


08-FEB-2020: Fix code to work with latest Wine
08-FEB-2020: Add custom GUI for WineASIO settings, made by PyQt (taken off Cadence project code)

28-OCT-2013: Add 64bit support and some small fixes

15-OCT-2013: Various bug fixes (JH)

19-FEB-2011: Nearly complete refactoring of the wineasio codebase (asio.c) (JH)

05-OCT-2010: Code from Win32 callback thread moved to JACK process callback, except for bufferSwitch() call.
05-OCT-2010: Switch from int to float for samples.

08-AUG-2010: Forward port JackWASIO changes... needs testing hard. (PLJ)

27-DEC-2009: Fixes for compilation on 64bit platform. (PLJ)

29-Oct-2009: Added fork with call to qjackctl from ASIOControlPanel(). (JH)
29-Oct-2009: Changed the SCHED_FIFO priority of the win32 callback thread. (JH)
28-Oct-2009: Fixed wrongly reported output latency. (JH)

08-APR-2008: Updates to the README.TXT (PLJ)
02-APR-2008: Move update to "toggle" to hopefully better place (PLJ)
24-MCH-2008: Don't trace in win32_callback. Set patch-level to 4. (PLJ)
09-JAN-2008: Nedko Arnaudov supplied a fix for Nuendo under WINE.

27-DEC-2007: Make slaving to jack transport work, correct port allocation bug. (RB)

01-DEC-2007: In a fit of insanity, I merged JackLab and Robert Reif code bases. (PLJ)

21-NOV-2007: add dynamic client naming (PLJ)

17-NOV-2007: Unique port name code (RR)

03-SEP-2007: port mapping and config file (PLJ)

30-APR-2007: corrected connection of in/outputs (RB)

???????????: Initial RB release (RB)

12-SEP-2006: Fix thread bug, tidy up code (RR)

31-AUG-2006: Initial version (RR)


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.