aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 5737e2afc49dcbaf9698b9211f02483df2dd8f36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
###########################################################################
pdj - java plugin interface to pure-data
###########################################################################

RELEASE 0.8.3 / September 2007


PDJ enables you to write java code to interact with pure-data objects. The
API is totally based on Cycling74 Max/MSP 'mxj' object implementation. This 
will enable java mxj objects to run on pure-data with pdj. You can also 
create signal/tilde (~) objects.

This is a work in progress and some of features are missing and some might 
not even be ported.		
	    
IMPLEMENTED:

	* MaxClock 100%
	* MSPBuffer 100%
	* Callback 100%
	* MaxObject 100%
	* Atom 98%
	* MaxSystem 90%
	* MaxQelem 90%
	* MSPObject 85% (missing signal in/outlet detection)
	* MSPPerformable 100%
	* MaxPatcher 5%

TODO:

	* MSPObject connection status
	* MaxBox/MaxPatcher object; inspiration from dyn~ (kudo Mr. Grill!)

LIMITATION:

	* Signal inlets cannot be hot inlets for receiving atom message.
	  This means that if you create a signal inlet and send an atom
	  to this inlet, pdj won't be able to process it; float or symbol.
	  This looks like a work as designed in pd.

BUGS:

	* OS X: cannot use AWT classes with OS X because of a weird bug
	  that locks the thread when the GUI libraries are loaded. 
	  -> http://lists.apple.com/archives/java-dev/2004/Mar/msg00910.html
	  this solution has been tested but the loadLibrary still hang.

WORKAROUNDS: 

	* on most cases you don't have to put the JVM libs dir to the 
	  LD_LIBRARY_PATH. If you have a UnsatisfiedLinkError, add it 
	  before you start PD. 
	* on some machines, the System.out redirection can crash PD. If
	  it is the case, you can disable it in the pdj.properties file;
	  check the property: pdj.redirect-pdio.

REQUIEREMENTS:
	
	* pure-data 0.38.x or better
	* java JDK version 1.4.x or better; use 1.5 if you can !
	* works on linux, windows
	
REQUIEREMENTS FOR BUILDING:

	* apache ant 1.6.x or better
	* c compiler

INSTALLATION:

	* if you are using the source distribution, build it before
	  -> download java sdk from java.sun.com (unless you are using OS X)
	  -> download apache ant for ant.apache.org
	  -> edit file <your platform>-build.properties
	  -> in the root directory of pdj, run 'ant package'
	* add the pdj external (pdj.pd_linux/pd.dll/pd.pd_dawrin) directory
	  to your pd path (very important on OS X)
	* the other files of the original binary directory must be in 
	  the same directory
	* double check dist/pdj.properties to be sure that the JAVA 
	  environment parameters are right
	* === OS X WARNING ====
	  I am working on a universal binary of pdj. This is planned on version
	  0.8.4. If you really need a OS X build, email me.

USAGE:

	* put your .java file in the /classes directory
	* create a pdj object with the name of the java class; if
	  you have not compiled it before, pdj will do it for you

CHANGELOG:
	--- VERSION 0.8.3 ---
	* Atom.getInt() on a float now works.
	* corrected some classpath definition issues with windows
	* bypass the java compilation with pdj.compiler=null
	* remove dependencies task for cpptasks.jar (now part of distribution)
	* FIXED: comment on property pdj.vm_args failed to initialize VM
	* BUG: cannot link with OS X and cpptasks. Planned on 0.8.4

	--- VERSION 0.8.2 ---
	* if javac is set, using the javac compiler from the JAVA_HOME first
	* optimizations (main thread JVM and symbol method resolution)
	* FIXED: using pdj.classpath with directories
	* FIXED: search path on file in the current directory
	* FIXED: leak with open_path and casting warnings
	* build for Intel Mac
	* getting better at attribute support
	
	--- VERSION 0.8.1 ---
	* added MaxPatcher object to get patch path
	* FIXED: to match mxj: method with args[] will always be called first

	--- VERSION 0.8 ---
	* pdj~ object support (MSPSignal/MSPObject/MSPPerformable)
	* The JVM can now be server or in client mode (windows/linux only)
	* JVM selection for OS X
	* FIXED: working jikes compiler on OS X
	* FIXED: declareIO inlets count
	* FIXED: windows: System.out CR/LF errors on the PD console
    
	--- VERSION 0.7.1 ---
	* OS X support with distribution
	* FIXED: MaxSystem.locateFile now works

	--- VERSION 0.7 ---
	* Better JVM resolution on win32 (eg: with the registry)
	* Full implementation of MSPBuffer
	* Added Atom methods with unit tests
	* Windows binaries distribution
	* FIXED: now filtering { and } with post() not to lock PD
	* FIXED: anything gets called on a undefined bang/float/list method
	* FIXED: defined inlet(int) without inlet(float) now works... :-\
	
	--- VERSION 0.6.1 ---
	* FIXED: outlet(Atom) and outlet(Atom[]) resolution error

	--- VERSION 0.6 ---
	* MaxObject constructor with arguments
	* partial attribute support; automatic field setter/getter
	* added method bail on MaxObject
	* strict declaration of inlets/outlets (with info outlet)
	* System.out and System.err linked to the pd console
	* outlet(atom[]) checks type before calling the right func.

	--- VERSION 0.5 ---
	* method inlet resolution (bang->float->list->anything) now works
	* windows support (premilinary support)
	* auto-compiling class of every .java in /class (max -1; pdj +1)

	--- VERSION 0.4 ---
	* more javadoc and documentation... but could be better
	* multiple inlet operations
	* loadbang now works
	
	--- VERSION 0.3 ---
	* added a small and cheap javadoc. the original MXJ should be the
	  reference.
	* partial MSPBuffer support
	* Atom and MaxObject now supports Atom arrays
	
	--- VERSION 0.2 ---
	* added classpath of $PDJ_HOME/classes and $PDJ_HOME/lib/* by default
	* 95 % Dynamic JVM resolution with the JAVA_HOME; via dlsym (see BUGS)
	* MaxSystem.deferLow(...) works ! :-\
	* added an help patch

THANKS:

	* Thomas Grill
	* patrick a 11h11
	* pd-mtl crew !

(c) Pascal Gauthier 2004-2007, under BSD like license
asb2m10@users.sourceforge.net