1-------------------------------
2JACK2 on Windows
3-------------------------------
4
5This folder contains all the windows specific sources.
6You will also find two sets of files :
7- VisualC++6 workspace and project files, in order to compile JACK with MSVC
8- Code::Blocks (10.05) workspace and project files, in order to compile JACK with MingW
9
10The built binaries will be located in '/Release/bin' (or '/Debug/bin' if you build the Debug target). Once compiled, you'll find there everything you need :
11- the two 'libjack.dll' and 'libjackserver.dll', client and server jack libraries.
12- the 'jackd.exe', main application : the JACK server
13- the 'jack_xxx.exe' utilities and examples
14- in the jack directory, you'll find the driver's DLL's ('jack_portaudio.dll', 'jack_dummy.dll', 'jack_winmme.dll', 'jack_net.dll' and 'jack_netone.dll') and some tools ('netmanager.dll', 'audioadapter.dll', 'netadapter.dll' for example)
15
16In Code::Blocks all the projects are automatically built in a correct order (DLL's then apps) by doing 'build->build workspace'.
17In VC6, you'll have to build the projects one by one.
18
19The needed regexp library TRE can be found here http://laurikari.net/tre/. Unzip and place the "tre-0.8.0" folder into the "windows" folder.
20Then edit and comment "#define snprintf sprintf_s" at the end off the "tre-0.8.0/win32/config.h" file before building the JACK project.
21
22-------------------------------
23Notes about VC and GCC versions
24-------------------------------
25
26The Visual Studio workspace is limited to VC6. JACK will not compile on most recent MSVC's. The fact is recent compilers (MSVC7, 8 or 9) don't agree with some of the JACK sources.
27But now you can compile JACK using GCC, with MingW. The project is actually organized in a Code::Blocks workspace. This is a simple and efficient way to compile the whole project.
28
29But for some reasons, you need to compile JACK using a SJLJ version of G++ (available on MingW website).
30Current GCC/G++ version (3.4.5) doesn't includes SJLJ so you'll have to use another one.
31JACK needs the use of SJLJ exceptions instead of DW2 because exceptions are exchanged between DLL's, and DW2 does not allow to throw an exception out of a DLL, so it wouldn't be cought.
32
33The resources files has been created with ResEdit (ANSI build). VisualStudio uses 'ressource.rc' and 'ressource_vc.h'. The other files are used by MingW.
34
35You can make a small installer ('setup.exe') with CreateInstallFree, a little freeware. For this you have the little script 'jack.ci' for 32 bits version and 'jack64.c' for mixed 64/32 bits version. The installer contains everything jack needs to be integrated in windows (including register entries and shortcuts).
36A binary version of QJAckCtl is also included.
37
38-------------------------------
39Running JACK on Windows
40-------------------------------
41
42You can use two drivers : PortAudio and NetDriver.
43The PortAudio backend allows the use of many soundcards, using ASIO, DirectSound or WMME drivers (any ASIO driver can be seen by PortAudio).
44The NetDriver allows you to use NetJack2 on windows. Thus you can easily exchange midi and audio streams between computers (Linux, MacOSX or Windows).
45In both cases, you have to use the minimalist :
46    'jackd -R -d ...' command. With PortAudio, you can have a list of supported drivers with :
47    'jackd -R -S -d portaudio -l'
48
49Other options still stay the same.
50You can also pick a binary of Qjackctl, but this is still in development.
51
52-------------------------------
53Running Jack on windows
54-------------------------------
55
56More information at : 'http://www.grame.fr/~letz/jackdmp.html'.
57
58For any question or suggestion, you can refer to the mailing list 'jack-devel@jackaudio.org'
59Enjoy JACK on windows... ;-)
60