PraxisLIVE v4.4.0
PraxisLIVE v4.4.0 primarily involves under-the-hood changes as we gear up towards PraxisLIVE v5. It also brings some helpful UI improvements and a major change in how containers work.
The bundled JDK in the default installers is still Java 8, although there is an experimental Windows installer with Java 11. There is no macOS bundle with JDK 11 yet due to Processing crashes found in testing. It is possible to use the Zip bundle with a JDK of choice for experimentation.
NB. Use of PraxisLIVE / praxislive without the space is now consistent, and reflected in installation folders and binary names. This should only affect you if you have custom shortcuts to the IDE.
Changes
PraxisCORE runtime
- Core
- New base module providing simpler and more robust base root class and other utility classes. The new root implementation is currently used by generic data patches
root:data
and internal services. These changes will allow for removal and replacement of a lot of remaining legacy v1 code in v5. - The container component (
core:container
) now allows for exposing ports of any child component via itsports
property (see IDE improvements below too). This is a map of IDs to relative port addresses. All specific input / output components (eg.audio:container:in
) are now deprecated.- Known issue - removing a mapped port will disconnect all connections to the port, including those inside the container (the API is missing the ability to find only outside connections at present).
- Known issue - deleting a container will sometimes leave child components connected. Always delete connections first. Workaround is to save and reload.
- Added
tell(ControlAddress to, ... msg)
andtellIn(double seconds, ControlAddress to, msg)
for sending messages to other components, andself()
andself(String controlID)
for getting own address.core:routing:send
is now a re-codeable component. - Added
@Config.Preferred
annotation, mirroring Java's BeanInfo terminology for properties that are particularly important to display to "humans". See Graph Editor improvements for one usage. Added this annotation to value ofcore:variable
component. - Tidy up and simplify core API. All
Value
types now useof()
for wrapping a native Java type,parse
for converting from text, etc.Call
has shorter and simpler creation methods, and usesList<Value>
for arguments. Many other methods are replaced, with older versions deprecated for removal in v5. - Catch errors rather than just exceptions during code context creation. Ensure that amongst other things, an UnsatisfiedLinkError won't take down the component factory service.
- Functions in the code API that map through to Processing's
PApplet
have been deprecated. As part of the modularity effort for v5, only video modules will be able to require the Processing module. These can be accessed directly on the PApplet instance (and in v5 by static importing those functions) when it is known Processing is available. - Provided new
Info
builder class for creatingComponentInfo
- currently of minimal end-user use until code components allow for info to be customized.
- New base module providing simpler and more robust base root class and other utility classes. The new root implementation is currently used by generic data patches
- Video
video:code:p3d
- added mappings for all supported Processinghint()
values.- Deprecated
video:gl:send
andvideo:gl:receive
- built-in support for Syphon and Spout. In v5 these can be better supported by adding libraries to projects. Prior to that, switch on display of deprecated components in the palette underOptions/General/Components
. - FIX
video:code:p3d
- now correctly resets hints and sphere detail on code change, which is not handled by the default settings in Processing. Only a problem since v4.3 started reusing the PGraphics3D.
PraxisLIVE IDE
- Core
- New table based property editors for array and map based properties.
TAB
will add new rows automatically,DELETE
will remove a row. Copy & paste is supported. - Updated base IDE to Apache NetBeans 11.1.
- New table based property editors for array and map based properties.
- Graph editor
- Added support for showing properties on graph nodes next to related port. Default shows only "preferred" (see above) properties, but options (scene popup) provided to show/hide all. Double-click the value to edit directly. Showing all properties is good for debugging, but adds a little overhead due to syncing and rendering required.
- Inside a container, a new popup menu option on ports allows adding the port to the container with an ID of choice. To remove or rename a mapping, use the map editor on the
ports
property. ESC
can now be used to go up from a container.
- Code editor
- Experimental inline hints from NetBeans 11.1 to show parameter names in method calls. Still some quirks and off by default - enable in the
View
menu.
- Experimental inline hints from NetBeans 11.1 to show parameter names in method calls. Still some quirks and off by default - enable in the