Releases: praxis-live/praxis-live
Praxis LIVE v3.4.0-rc1
Release candidate for Praxis LIVE v3.4.0.
There is no installer -
- Download and unzip file
- Run
bin/praxis_live
(Linux / OSX) orbin/praxis_live64.exe
(Windows 64) orbin\praxis_live.exe
(Windows 32).
Please report any issues at https://github.com/praxis-live/support/issues
Praxis LIVE v3.3.0
This release concentrates on useful new functionality for (live) coding, along with support for OBJ files, keyboard/mouse input, data processing, and bug fixes. Examples showing use of the new functionality will follow soon.
Changes
Runtime
- Core
enum
fields are now supported directly as properties.- Added
whenDone()
method toProperty.Animator
. Takes account of any overrun of time. Use insetup()
likex.animator().whenDone(p -> p.to(random(0,1)).in(5).easeInOut());
- Added transmit method - acts like a temporary output port and connection. Use sparingly, but useful for live coding. eg.
transmit("synth1", "attack", 0.1);
- Added
millis()
method. Value
is now a general replacement forArgument
(usingArgument
directly is now deprecated).- Enhanced
d()
,i()
, etc. methods to extractdouble
,int
, etc. fromValue
andString
. Also added equivalent booleanb()
and PArrayarray()
methods. - Enhanced
PArray.get(index)
to wrap index value rather than throw exception. Added append, splice, subset and concat support forPArray
. - New
Input
field type with Linkable API support - eg. insetup()
do things like
in.valuesAs(Value::toString).filter(s -> s.length() > 4).map(String::toUppercase).link(out::send);
- Added PBytes methods for serializing and deserializing objects.
- New DataObject interface (currently implemented by PVector) for efficient read/write of binary data, with suitable supporting methods (
streamOf()
/forEachIn()
) in PBytes.
- Audio
- Updated JavaSound output to clamp values - saturate rather than hard distortion in case of clipping.
- Video
- Support for OBJ file loading in
PShape
fields. - Added method to create a mutable clone of a
PShape
- eg. to switch off styling of a shape loaded from a file, etc. - Access to mouse and keyboard fields in P2D and P3D. Event methods are not yet supported (not easy!), but full support for event processing is coming in a later release.
- Option to show cursor added to
video:output
, rather useful for the above (currently must restart video window - possible Windows issue) - Added support for
colorMode()
in P2D / P3D to allow for HSB colours. - Added support for
hint()
in P3D - currently only supports disabling depth testing.
- Support for OBJ file loading in
IDE
- Core
- Added actions (triggers) as buttons in the property table so they now show in the property tab (input controls to follow).
- Code editor
- The property tab now shows properties of the underlying component when editing code.
- Added new flash-on-save support - quick flash of colour behind all changed lines when saving. Switch off in
View
menu. - Switched to NetBeans multiview editor - enables support for dividing the code editor in two.
Praxis LIVE v3.2.0
This release includes updates for Processing, NetBeans and TinkerForge; enhanced keyboard controls and actions in the graph editor; various minor code improvements; and, a range of bug fixes.
Changes
All changes made in v3.2.0
Runtime
- Core
- new
Linkable
API - lightweight reactive-streams like API; support added inProperty
andTrigger
(see below). - component lifecycle improvements -
setup()
should always be called before other user code (except in video components - to follow)
- new
- Video
- Updated Processing library to v3.3.5 - various OpenGL improvements, particularly on the Pi.
- Fix aspect ratio when using rotated output and OpenGL renderer.
- Stop using Processing icon for OpenGL window.
- TinkerForge
- Update TinkerForge library to v2.1.14
IDE
- Core
- Update NetBeans Platform to v8.2
- Graph editor
- Keyboard actions for adding components, selecting components, calling properties/actions, and making/breaking connections (see below)
- Experimental auto-layout action on
ALT-SHIFT-F
- Use arrow keys to move selected components.
- Changed
TAB
behaviour to select and focus when less than two components selected, otherwise cycle focus between selected components. - Make sure component positions are always synced before saving.
Linkables
The Linkable API is a different way of responding to actions (triggers) and property changes, based on a simplified form of reactive streams. There is a Linkable<T>
, plus primitive versions Linkable.Int
and Linkable.Double
. All currently support filter()
and map()
.
Use eg.
@T(1) Trigger beat;
@P(1) Property level;
@Out(1) Output note;
@Out(2) Output gain;
void setup() {
beat.maxIndex(16);
beat.on().filter(i -> i % 4 == 0).link(i -> note.send(randomOf("a3", "d3", "e3"));
level.values().map(d -> d * d * d * d).link(gain::send);
}
Graph Actions
The graph keyboard actions support adding components, selecting components, calling properties/actions, and making/breaking connections. Actions appear in a bar at the bottom of the graph window, and are triggered by keys based on the syntax of the Praxis Command Language used in the terminal and in project files. Fields have an auto-complete list (trigger by typing or down-arrow), and most support glob syntax for multiple selection. TAB
between fields, use RETURN
to action, or ESCAPE
to close the action.
@
- Add a new component. Suggest field of components from palette. Components currently appear in the same location - use arrow keys or new layout action to move./
- Select component(s). Single text field with suggestions and glob support (eg. use*
to select all)..
- Call action / change property. Selected component will be pre-filled but can be changed. Control field lists available controls. For properties, value field will show current value. Component field supports glob syntax, so same control on multiple components can be changed in one action.~
- Connect component ports. Fields are source component, source component output, destination component, and destination component input. All fields support glob syntax for making multiple connections in one action. Multiple ports are cycled - eg.out*
andin*
will connectout-1
toin-1
andout-2
toin-2
.!
- Disconnect component ports. Fields as above. Destination is pre-filled with*
.
Praxis LIVE v3.1.0
This release adds support for sharing OpenGL images via Syphon/Spout, OpenGLES rendering for the Raspberry Pi, PFont & text rendering, and PShape & SVG support.
Changes
All changes made in v3.1.0
Runtime
- Video
- Added support for OpenGLES2 for accelerated rendering on the Raspberry Pi, etc.
- Added OpenGL profiles. It is now possible to select a specific OpenGL profile when selecting the
OpenGL
renderer. Supported profiles areGL2
,GL3
,GL4
andGLES2
. The default isGL3
on desktop with automatic fallback toGLES2
. - Added support for texture sharing via Syphon (OSX) and Spout (Windows) using the new
video:gl:send
andvideo:gl:receive
components. Syphon support currently requires selection of the legacyGL2
profile above. - Added support for PFont resource properties, fixed text rendering alpha channel issues in
video:gl:p2d/p3d
, and added TextRender SurfaceOp. - Added support for PShape SVG loading and
createShape()
for caching geometry. - Updated GStreamer-Java bindings fixing loop issue on Windows.
- Fixed
video:player
ignoring no-loop setting. - Updated Processing library to v3.2.3
IDE
- Graph editor
- Open containers on double-click.
Praxis LIVE v3.1.0-rc2
Test release of Praxis LIVE v3.1.0 with OpenGL profiles, Syphon/Spout support, PShape / SVG support, and text rendering / PFont support.
RC2 fixes some bugs in OpenGL texture uploading, and improves GLES support on the Raspberry Pi.
There is no installer -
- Download and unzip file
- Run
bin/praxis_live
(Linux / OSX) orbin/praxis_live64.exe
(Windows 64) orbin\praxis_live.exe
(Windows 32).
Please report any issues at https://github.com/praxis-live/support/issues
Praxis LIVE v3.1.0-rc1
Test release of Praxis LIVE v3.1.0 with OpenGL profiles, Syphon/Spout support, PShape / SVG support, and text rendering / PFont support.
There is no installer -
- Download and unzip file
- Run
bin/praxis_live
(Linux / OSX) orbin/praxis_live64.exe
(Windows 64) orbin\praxis_live.exe
(Windows 32).
Please report any issues at https://github.com/praxis-live/support/issues
Praxis LIVE v3.0.0
This is the first release of Praxis LIVE v3 - for changes and downloads see below.
Praxis LIVE v3 requires Java 8, either Oracle's distribution or OpenJDK.
IMPORTANT - GStreamer is no longer included for OSX and Windows and must be installed separately if you want to play videos or use video capture. Windows users make sure to select the full rather than typical installation if you want to use capture devices.
- Windows 32bit - https://gstreamer.freedesktop.org/data/pkg/windows/1.8.3/gstreamer-1.0-x86-1.8.3.msi
- Windows 64bit - https://gstreamer.freedesktop.org/data/pkg/windows/1.8.3/gstreamer-1.0-x86_64-1.8.3.msi
- Mac OSX - https://gstreamer.freedesktop.org/data/pkg/osx/1.8.3/gstreamer-1.0-1.8.3-x86_64.pkg
Praxis LIVE will look in the default installation location. If you install elsewhere, update the path under Tools | Options | Video | GStreamer
Changes
All changes made in Praxis LIVE v3.0.0. Potentially breaking changes are highlighted.
Runtime
- Core
- Updated infrastructure and internal compiler to support Java 8. Java 8 is now a minimum requirement.
- Major refactoring and performance improvements to compiler support, in particular support for running the compiler in a separate process when running distributed hubs where the slave requires good low-latency performance or is running on a low-performance device (eg. Raspberry Pi).
- PBytes data type added to support arbitrary binary data as properties or messages (required by new compiler support). Text representation as Base64.
- PBytes-backed support added for any Serializable type or List of Serializable types as properties or injected fields in custom code.
- Added a lightweight HTTP file server (based on NanoHTTP) for serving project files to remote slaves in distributed hubs (off by default).
- Logging from slaves to master added for better error reporting when working with distributed hubs.
- New
root:data
root type provided for generic graphs of components / asynchronous tasks. Specific non-real-time data processing components will follow. - Fixed default value in
core:routing:every
throwing an exception. - Removed most deprecated components. Projects relying on components deprecated in v2 may need updating.
- Deprecated
core:container:property
as start of revision of containers. - Moved
core:container:input|output
tocore:container:in|out
so that default names match default port names. - Updated
PVector
to version from Processing 3. - Added
skew
annotation to numeric properties to allow for better UI representation of values with non-linear response (eg. sliders for audio gain, frequency). - Added
link()
method to properties to bind method references or lambdas to changing property values (see usage in new audio components). - Added
randomOf()
utility methods to return random value from arrays. - Other Java 8 functional improvements made to core types (eg.
PArray.stream()
) - Removed
-J-Xincgc
option from configuration to switch from the deprecated incremental garbage collector back to the default (-J-Xincgc
or other GC options may be specified as a launch argument if required). - Updated JNA library to 4.2.2 and added JNA Platform library.
- Video
- Switched video capture and playback support to GStreamer 1.x and removed support for GStreamer 0.10. GStreamer libraries for Windows and OSX are no longer included by default and must be installed separately as described in the documentation. Custom pipelines may need revising.
- OpenGL renderer performance improvements, including full GL acceleration of all blend modes in
video:composite
andvideo:xfader
. - Fixed
video:gl:p3d
adding an alpha channel to opaque surfaces. Projects that relied on this incorrect behaviour may need some changes.
- Audio
- Revised audio components now stereo and re-codeable by default, with link ports removed. Older audio components have been deprecated and will be removed.
audio:gain
no longer has a link port so projects may need reconfiguring. - Improved API for custom coding audio DSP based on Java 8 functions.
- Changed
Delay
UGen in custom coding to passthrough by default. Custom audio components using delays may need revising. - Changed
IIRFilter
UGen to not expose type enum from underlying JAudioLibs library. Custom audio components using filters may need revising.
- Revised audio components now stereo and re-codeable by default, with link ports removed. Older audio components have been deprecated and will be removed.
- Custom GUIs
- New simple look and feel for custom UI components, including improvements for live interaction (eg. sliders can be dragged from anywhere, not just on thumb). This custom UI is designed to support user-defined colouring in a later release.
- Moved custom look and feel setup into
root:gui
to reduce resource usage with slaves / command line player when the UI is not required. - Added support for new
skew
annotation on sliders and XY-pads. - Switched
gui:range-slider
to use two single bindings for low and high, as single property ranges are not generally supported. Existing projects using range sliders will need bindings to be updated.
- OSC / MIDI bindings
- provide
last-message
property to see incoming messages.
- provide
IDE
- Core
- Updated base IDE platform to NetBeans 8.1.
- Switched to Darcula look & feel - better UI consistency and OSX menu support.
- Improved display of current version on Start Page and About dialog.
- Moved user configuration directory to
.praxislive3
- Any custom configuration will need recreating. - Moved default projects directory to
PraxisLIVE Projects
. - Improved dialog for importing single custom components (commonest usage) by using a simple text field rather than a table.
- Changed default component naming to always add a hyphen before the number to match usual port numbering.
- Added syncing when copying to clipboard to ensure property values are up-to-date.
- Changed palette to only display simple name and fixed names when moving components into different palette categories.
- Added settings in
Options|General|Network
for configuring compiler, http server, etc. when using distributed hubs. - Added settings under
Options|Video|GStreamer
for configuring location of the GStreamer install (only required for custom installation locations).
- Graph editor
- Added ability to create components from scene popup menu (
Add
) as quicker alternative to dragging from palette. - Added component export action (in popup menu).
- Added snap alignment.
- Added mouse wheel scrolling support.
- Added focus highlighting and keyboard focus control.
- Added ability to create components from scene popup menu (
Praxis LIVE v3.0.0 (gst1-java-core 161201)
Test release of Praxis LIVE v3.0.0 with updated GStreamer Java bindings (fix video looping issues on Windows and possibly other issues).
There is no installer -
- Download and unzip file
- Run
bin/praxis_live
(Linux / OSX) orbin/praxis_live64.exe
(Windows 64) orbin\praxis_live.exe
(Windows 32).
Please report any issues at https://github.com/praxis-live/support/issues
Praxis LIVE v3.0.0-rc.1
This is a release candidate of Praxis LIVE v3 - for changes and roadmap see praxis-live/support#34 Please report back any issues. A full release will follow shortly.
Praxis LIVE v3 requires Java 8, either Oracle's distribution or OpenJDK.
IMPORTANT - GStreamer is no longer included for OSX and Windows and must be installed separately if you want to play videos or use video capture. Windows users make sure to select the full rather than typical installation if you want to use capture devices.
- Windows 32bit - https://gstreamer.freedesktop.org/data/pkg/windows/1.8.3/gstreamer-1.0-x86-1.8.3.msi
- Windows 64bit - https://gstreamer.freedesktop.org/data/pkg/windows/1.8.3/gstreamer-1.0-x86_64-1.8.3.msi
- Mac OSX - https://gstreamer.freedesktop.org/data/pkg/osx/1.8.3/gstreamer-1.0-1.8.3-x86_64.pkg
Praxis LIVE will look in the default installation location. If you install elsewhere, update the path under Tools | Options | Video | GStreamer
Praxis LIVE v3.0.0-alpha.2
This is a pre-release of Praxis LIVE v3 for testing purposes - for changes and roadmap see praxis-live/support#34
There are no installers for pre-releases. Unzip the archive to a suitable location, then run praxis_live
(Linux / OS X), praxis_live.exe
(Windows x86) or praxis_live64.exe
(Windows x64) from inside the bin
directory.
Praxis LIVE v3 requires Java 8, either Oracle's distribution or OpenJDK.
IMPORTANT - GStreamer is no longer included in the bundle for OSX and Windows and must be installed separately if you want to play videos or use video capture. Windows users make sure to select the full rather than typical installation if you want to use capture devices.
- Windows 32bit - https://gstreamer.freedesktop.org/data/pkg/windows/1.8.3/gstreamer-1.0-x86-1.8.3.msi
- Windows 64bit - https://gstreamer.freedesktop.org/data/pkg/windows/1.8.3/gstreamer-1.0-x86_64-1.8.3.msi
- Mac OSX - https://gstreamer.freedesktop.org/data/pkg/osx/1.8.3/gstreamer-1.0-1.8.3-x86_64.pkg
Praxis LIVE will look in the default installation location. If you install elsewhere, update the path under Tools | Options | Video | GStreamer
Better UI support for this will be added for the final Praxis LIVE v3 release.