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
|