make it compile again :)
[wineasio.git] / README
blobba437ee5042426224abb2d75f6a5ea3eae9a867a
1 CONTENTS
2 ========
3 1. Installation
4 2. General Information
5 3. Change Log
6 4. Legal Stuff
8 1. INSTALLATION
9 ---------------
11 Copy the file asio.h from Steinberg's ASIO SDK to the wineasio source
12 directory.
14 Due to a bug in winegcc, and the confusion regarding where 32bit wine dlls go
15 on the various 64bit linux distributions,  I've hardcoded support for
16 /usr/lib/wine and /usr/lib32/wine into the makefile.  If your distro uses
17 another path edit the makefile and replace /usr/lib32/wine with the correct
18 path.  Look at the last line of the makefile.  This wineasio should compile and
19 install 32 bit wineasio on all 64 bit linux'.
21 To build, type (as a normal user): make
22 To install, type (as root): make install
23 To register the wineasio object, type (as a normal user): regsvr32 wineasio.dll
25 The last command registers the ASIO COM object in the default prefix "~/.wine".
26 If you use another prefix you will have to explicitly specify it,
27 like "env WINEPREFIX=~/asioapp regsvr32 wineasio.dll"
29 2. GENERAL INFORMATION
30 ----------------------
32 The wineasio driver has been almost completely refactored, so the changes are
33 far too many to explain in detail. These are some of the more obvious changes:
35 Wineasio takes advantage of a new function in the jack api, which lets jack
36 create the wine callback thread.  This results in a much cleaner callback
37 without having to wait on semaphores, requires jack1 (0.117.0) or jack2 (1.9.4)
38 or later.
40 The default sample type has been changed to use ASIOSTFloat32LSB, which is the
41 native format of jack, and allows the removal of the sample rate conversion
42 from the processing callback.
44 Wineasio can now slave to the jack transport.
46 Support has been added for jack's xrun_callback() and bufsize_callback(), the
47 latter means that asio apps get notified if the jack buffersize changes.
49 CreateBuffers() can now change jack's buffersize if so desired.  Must be
50 enabled in the registry, see below.
52 The old configuration file has been removed and been replaced by a registry key
53 (HKEY_CURRENT_USER\Software\Wine\WineASIO).  All these options can be overriden
54 by an environment variable.  The key is automatically created with default
55 values if it doesn't exist when the driver initializes. It contains the
56 following values:
58 [Number of inputs] & [Number of outputs]
59 These two settings control the number of jack ports that wineasio will try to
60 open.  Defaults are 16 in and 16 out.  Environment variables are
61 WINEASIO_NUMBER_INPUTS and WINEASIO_NUMBER_OUTPUTS
63 [Autostart server]
64 Defaults to off (0), setting it to 1 enables wineasio to launch the jack
65 server.  See the jack documentation for further details. The environment
66 variable is WINEASIO_AUTOSTART_SERVER, and it can be set to on or off.
68 [Connect to hardware]
69 Defaults to on (1), makes wineasio try to connect the asio channels to the
70 physical I/O ports on your hardware.  Setting it to 0 disables it. The
71 environment variable is WINEASIO_CONNECT_TO_HARDWARE, and it can be set to on
72 or off.
74 [Fixed buffersize]
75 Defaults to on (1) and is the old behaviour where the buffer size is controlled
76 by jack and wineasio has no say in the matter.  When set to 0, an asio app will
77 be able to change the jack buffer size when calling CreateBuffers(). The
78 environment variable is WINEASIO_FIXED_BUFFERSIZE and it can be set to on or
79 off.
81 [Preferred buffersize]
82 Defaults to 1024, and is one of the sizes returned by GetBufferSize(), see the
83 ASIO documentation for details.  Must be a power of 2. The other values
84 returned by the driver are hardcoded in the source, see ASIO_MINIMUM_BUFFERSIZE
85 which is set at 16, and ASIO_MAXIMUM_BUFFERSIZE which is set to 8192. The
86 environment variable is WINEASIO_PREFERRED_BUFFERSIZE.  Be careful, if you set
87 a size that isn't supported by the backend, the jack server will most likely
88 shut down, might be a good idea to change ASIO_MINIMUM_BUFFERSIZE and
89 ASIO_MAXIMUM_BUFFERSIZE to values you know work on your system before building.
91 [Sample type]
92 Defaults to 19 (decimal) which is ASIOSTFloat32LSB, setting it to 18 (dec)
93 makes wineasio use ASIOSTIntt32LSB (the old default).  Needed for some apps
94 that don't properly implement the ASIO specification.  The environment variable
95 is WINEASIO_SAMPLE_TYPE.
97 In addition there is a WINEASIO_CLIENT_NAME environment variable, that
98 overrides the JACK client name derrived from the program name.
100 3. CHANGE LOG
101 -------------
103 0.9.0
104 02-NOV-2010: Nearly complete refactoring of the wineasio codebase (asio.c) (JH)
106 0.8.1:
107 05-OCT-2010: Code from Win32 callback thread moved to JACK process callback, except for bufferSwitch() call.
108 05-OCT-2010: Switch from int to float for samples.
110 0.8.0:
111 08-AUG-2010: Forward port JackWASIO changes... needs testing hard. (PLJ)
113 0.7.6:
114 27-DEC-2009: Fixes for compilation on 64bit platform. (PLJ)
116 0.7.5:
117 29-Oct-2009: Added fork with call to qjackctl from ASIOControlPanel(). (JH)
118 29-Oct-2009: Changed the SCHED_FIFO priority of the win32 callback thread. (JH)
119 28-Oct-2009: Fixed wrongly reported output latency. (JH)
121 0.7.4:
122 08-APR-2008: Updates to the README.TXT (PLJ)
123 02-APR-2008: Move update to "toggle" to hopefully better place (PLJ)
124 24-MCH-2008: Don't trace in win32_callback.  Set patch-level to 4. (PLJ)
125 09-JAN-2008: Nedko Arnaudov supplied a fix for Nuendo under WINE.
127 0.7.3:
128 27-DEC-2007: Make slaving to jack transport work, correct port allocation bug. (RB)
130 0.7:
131 01-DEC-2007: In a fit of insanity, I merged JackLab and Robert Reif code bases. (PLJ)
133 0.6:
134 21-NOV-2007: add dynamic client naming (PLJ)
136 0.0.3:
137 17-NOV-2007: Unique port name code (RR)
139 0.5:
140 03-SEP-2007: port mapping and config file (PLJ)
142 0.3:
143 30-APR-2007: corrected connection of in/outputs (RB)
145 0.1:
146 ???????????: Initial RB release (RB)
148 0.0.2:
149 12-SEP-2006: Fix thread bug, tidy up code (RR)
151 0.0.1:
152 31-AUG-2006: Initial version (RR)
154 4. LEGAL STUFF
155 --------------
157 Copyright (C) 2006 Robert Reif
158 Portions copyright (C) 2007 Ralf Beck
159 Portions copyright (C) 2007 Johnny Petrantoni
160 Portions copyright (C) 2007 Stephane Letz
161 Portions copyright (C) 2008 William Steidtmann
162 Portions copyright (C) 2010 Peter L Jones
163 Portions copyright (C) 2010 Torben Hohn
164 Portions copyright (C) 2010 Nedko Arnaudov
165 Portions copyright (C) 2010 Joakim Hernberg
167 This library is free software; you can redistribute it and/or
168 modify it under the terms of the GNU Lesser General Public
169 License as published by the Free Software Foundation; either
170 version 2.1 of the License, or (at your option) any later version.
172 This library is distributed in the hope that it will be useful,
173 but WITHOUT ANY WARRANTY; without even the implied warranty of
174 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
175 Lesser General Public License for more details.
177 You should have received a copy of the GNU Lesser General Public
178 License along with this library; if not, write to the Free Software
179 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA