Skip to content

Releases: praxis-live/praxis-live

Praxis LIVE v3.4.0-rc1

20 Dec 12:03
Compare
Choose a tag to compare
Pre-release

Release candidate for Praxis LIVE v3.4.0.

There is no installer -

  • Download and unzip file
  • Run bin/praxis_live (Linux / OSX) or bin/praxis_live64.exe (Windows 64) or bin\praxis_live.exe (Windows 32).

Please report any issues at https://github.com/praxis-live/support/issues

Praxis LIVE v3.3.0

13 Oct 18:59
Compare
Choose a tag to compare

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 to Property.Animator. Takes account of any overrun of time. Use insetup() like x.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 for Argument (using Argument directly is now deprecated).
    • Enhanced d(), i(), etc. methods to extract double, int, etc. from Value and String. Also added equivalent boolean b() and PArray array() methods.
    • Enhanced PArray.get(index) to wrap index value rather than throw exception. Added append, splice, subset and concat support for PArray.
    • New Input field type with Linkable API support - eg. in setup() 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.

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

18 Aug 17:34
Compare
Choose a tag to compare

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 in Property and Trigger (see below).
    • component lifecycle improvements - setup() should always be called before other user code (except in video components - to follow)
  • 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* and in* will connect out-1 to in-1 and out-2 to in-2.
  • ! - Disconnect component ports. Fields as above. Destination is pre-filled with *.

Praxis LIVE v3.1.0

30 Apr 17:46
Compare
Choose a tag to compare

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 and GLES2. The default is GL3 on desktop with automatic fallback to GLES2.
    • Added support for texture sharing via Syphon (OSX) and Spout (Windows) using the new video:gl:send and video:gl:receive components. Syphon support currently requires selection of the legacy GL2 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

23 Apr 18:53
Compare
Choose a tag to compare
Pre-release

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) or bin/praxis_live64.exe (Windows 64) or bin\praxis_live.exe (Windows 32).

Please report any issues at https://github.com/praxis-live/support/issues

Praxis LIVE v3.1.0-rc1

21 Apr 18:19
Compare
Choose a tag to compare
Pre-release

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) or bin/praxis_live64.exe (Windows 64) or bin\praxis_live.exe (Windows 32).

Please report any issues at https://github.com/praxis-live/support/issues

Praxis LIVE v3.0.0

27 Oct 16:41
Compare
Choose a tag to compare

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.

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 to core: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 and video: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.
  • 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.

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.

Praxis LIVE v3.0.0 (gst1-java-core 161201)

01 Dec 17:56
Compare
Choose a tag to compare

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) or bin/praxis_live64.exe (Windows 64) or bin\praxis_live.exe (Windows 32).

Please report any issues at https://github.com/praxis-live/support/issues

Praxis LIVE v3.0.0-rc.1

01 Oct 17:55
Compare
Choose a tag to compare
Pre-release

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.

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

15 Sep 12:56
Compare
Choose a tag to compare
Pre-release

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.

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.