While being based on a ten years old project, jMax Phoenix is currently under development. Many end user related aspects are not yet completely stabilized, so this wiki will slowly move in time, even in completely incompatible way. In particular, the configuration system is moving from a tcl, command language model to a declarative model based on XML.
WARNING: after snapshot 157, a number of incompatible changes have been done in the jMax configuration, dropping tcl from almost anything (with the exception of the user configuration). This documentation is being updated to reflect the behaviour of after 157 snapshots. During the changes, the documentation will be partially inconsistent; we will remove this warning once ready. Documentation for snapshot 157 and previous will not be kept: you are strongly encouraged to update to the latest snapshot as soon as possible (at the time of writing, no further snapshots have been yet published. Please wait for 24h for a snapshot to appear).
This wiki is being initialized from the jMax 3 documentation, changing it accordingly to the jMax Phoenix behaviour. It will be mantained to reflect the status of the latest snapshot release, and later it will follows the official releases, documenting the changes.
How to set up a jMax Phoenix release on your machine. Current snapshot releases are distributed as gzipped tars, so some shell command is needed to put it in service.
jMax can be run by executing the jmax (
jmax.gygwin for a Windows/cygwin installation) shell script situated in the root
of the distribution package (see the installation instructions
for further details on the distribution package).
jMax Phoenix is able to detect the platform its run on and to adopt
a default I/O configuration for the platform (typically, stereo audio and
son on). The objective is that by running the
jmax executable without
options or configuration you always get a meaningful behaviour.
Command line options are used to select the way the user interface is connected to the computational engine, to set some parameters for the user interface, and in general allows to pass on options to installed packages. This page document the complete list of the options supported by the jMax Phoenix core. See the documentation for the additional packages you install for package related options, if any.
Usually jMax is used locally on the user workstation, but it possible to run the user interface on one machine (for example a PC) and the computational server on a remote machine (a larger server machine, for example). A set of command line options allows you to set us such a configuration. For details, check this page .
For jMax Phoenix, some of the options allows you to choose the user interface you want to work with. See the user interface page for more informations.
jMax Phoenix default configuration allows to run jMax on your machine using basic functionalities without the need to understand or change the configuration.
Nevertheless, the jMax Phoenix configuration system allows many levels of customisation, starting from simply expressing your preferences, to deeply change the user interface or the application behaviour.
The jMax Phoenix configuration system use a set of XML files to define the default and actual configuration, that are merged together is a virtual single XML document describing the application configuration. Every component of the jMax Phoenix architecture is configured using this virtual document, including each editor, the input/outputs (audio and midi), the additional loaded packages and so on.
For details on how the configuration files works and are structured and which configuration file are loaded, check this page.
This page document the content of standard configuration files (excluding packages, that are documented in their section), with a special attention to user preferences.
Currently, jMax Phoenix do not support editing the configuration from within the user interface; this kind of feature is compatible with the existing system and it is planned for future evolutions.
A package can be loaded in different ways:
File→Openmenu item. This is the normal way for applications delivered as packages.
~/.jmax.xmlfile, using the preferences sections. This is the normal way when you want to customise your environment.
By default, jMax load all the LADSPA plugins that it can find, generate the appropriate metadata for them and make them available as jMax objects.
You can choose a different behaviour, like for example to load only the plugin you want, or you can even package ladspa plugin in jMax package to associate them with help patches and abstractions using them.
Check this sections for details.
jMax Phoenix start up using a default input/output configuration that is adapted to the system it is running on; usually the configuration provide a stereo output and input, one midi input and one midi output, mapped to the portaudio and portmidi defaults for your system.
The way input/output is configured has been simplified in jMax Phoenix. Take a look to this page for details.
The jMax Phoenix user interface add some powerful new features to the tradition Max user interface paradigm.
The patch editor is the window of jMax you probably will use most intensively programming your patches. Here is an overview of its functionalities.
The object chooser is one of the new user interface components in the jMax Phoenix environment; it allows to easily browse and select an object for your patch even when there are hundreds of different objects available.
The project browser is one of the new user interface components in the jMax Phoenix environment; it allows to browse the structure of the loaded patches and packages.
After all, jMax is a programming language.
Once a project scale up from a couple of test patches to a large project with many patches, abstractions, objects and may be a specific Java editor, some tool to organise a project and simplify distribution and deployment is needed.
jMax Phoenix provide a improved package mechanism that allows packaging your products (projects or libraries) as a single file, and to distribute it automatically thru a web site.
To get an idea of what a jMax Package is and what you can do with it, read this introduction.
To know how to use packages, how to organise your work using packages, and how resources are organised and accessed from a patch and from a configuration file, read this section .
Finally, to know how to create a package, read this section.