Table of Contents

jMax Puredata compatibility roadmap

This page describe the roadmap for the jMax/Pd compatibility projet, the current status and
planned evolutions.

Object compatibility

The current jMax subversion repository include a pd external object compatibility package.

The idea is that you need to recompile the pd sources, using a makefile and a m_pd.h file provided
with the compatibility kit, to get the object to run on jMax on the different architectures.

The kit is not perfect and complete of course: objects written according to the PD external objects
how to will usually compile and run unchanged, including DSP objects, while some object using more
obscure mechanisms will need some small modifications (under an #ifdef JMAX).

Some functionalities are implemented in a quite different way, so they will need specific reimplementations
for jMax, like for example the ability to persist object state in patch files.

Some other functionalities simply cannot be implemented in the same way, and will require a vast reimplementation:
in particular everything concerning user interface will require a specific jMax implementation, based on an extensions
of the jMax Java user interface. Since the UI architecture of jMax is very different (it runs on a separate process, it is
completely asynchronous with respect to the computational server running the path) expect a redesign more than
a porting.

Currently the object compatibility package is under debug. Not working yet, but not too far (can already instantiate a few
objects).

Object Set

The object set of pd will be ported to jMax, including the core internal object set and the externals provided in
pd-externals.

Initially, only the objects that can be ported will be ported, excluding all the objects having a specific user interface
that do not yet exists on jMax.

Later, all the core 'internal' objects will be implemented, including those that have a specific user interface.

PD externals using a user interface will be considerer for a reimplementation later on, if the need arise.

Currently the work is on debugging the portability toolkit, using a few packages from pd-internal as test bed.
The actual porting will start once the toolkit is stable enough.

Patches and abstractions

jMax will be able to load pd patches and abstractions, but will show error objects for those objects that
are not implemented on jMax.

Please note that as of today there are a number of basic feature of PD that are not implemented in jMax, like
the controller-in-parent feature, and the way the conditional execution of subpart of the dsp graph works.
So your patches may not behave in the same way until these features are implemented.

The current code in subversion can already load simple patches, and the implementation will be completed for
the first official snapshot.

Additional features

The implementation of additional features like controller-in-parent and the dsp conditional execution will
be implemented later, after a significant part of the object set will be available in jMax.

The dsp changes in particular will require some time, as they need a new dsp compiler, planned for releases after
the first one.