About Neil C Smith

Artist : Technologist : Adviser

Distributed Hubs

Want to run a project across multiple computers on a local network? Want to code on one computer and have it inserted into a running pipeline on another? Want to run pipelines across multiple local processes (VMs) for better performance? The latest alpha release of Praxis LIVE v2 finally makes distributed hubs a reality (an idea that’s been around since the architecture was originally designed).

Live coding Java (Processing) & GLSL code on one laptop while it runs on another.

Live coding Java (Processing) & GLSL code on one laptop while it runs on another.

Continue reading

Praxis LIVE : new look, new direction

If you’ve been following the Twitter feed recently you may have noticed that Praxis LIVE has gained an all new look. However, the recent changes are far more than skin deep, with a radical rethink of many aspects of the project.

Praxis LIVE development (and blog posts, I know!) took a back-seat over the first half of this year as various other commitments took over.  But in many respects, that time off has been good for the project, and initiated a rethink of how to continue developing and supporting Praxis LIVE into the future.  A major part of that will be concentrating on those key aspects of the project that make it unique (media-neutral – distributed – edit everything live), and better use of existing third-party code even if it requires compromises to be made.

New annotation driven components

New annotation driven live-compiled components and code completion

Continue reading

JAudioLibs AudioServers – a PortAudio-esque Java API

The JAudioLibs’ AudioServer API is a Java library loosely inspired by PortAudio. It was initially designed early in the development of Praxis LIVE in order to provide a common callback-based interface for working with low-latency audio. This API has since found its way into a variety of other projects, primarily by people wanting to use the JACK Audio Connection Kit from Java (JAudioLibs’ JNAJack was developed at the same time). Using the AudioServer API provides an application the ability to switch easily between JavaSound and JACK at runtime. It can also make working just with JavaSound a little easier.

Praxis LIVE & JACK

Praxis LIVE & Hydrogen linked through JACK

For some time I have been considering how to extend the AudioServer API to improve runtime service discovery, provide better access to features of the underlying audio libraries, and make it easier for people to contribute new implementations. A recent email from Ollie Bown, developer of the excellent Beads audio library, prompted me to spend some time over the last week trying to finish this work (the development version of Beads has been using this API for some time).

Continue reading

Live visual development with TinkerForge

TinkerForge is an excellent and easy to use open-source hardware solution for physical computing. Praxis LIVE is an open-source visual development environment, particularly (not exclusively) designed for working with audio & video, with the ability to run projects from the command line or as standalone (NetBeans runtime) applications. So, what happens when we bring these two worlds together?

This is best watched in full-screen HD!

Experimental support for a few TinkerForge components has been in Praxis LIVE for some time.  However, in the weeks leading up to the last release, these were tidied up and expanded.  There is now a concerted effort to complete these bindings, and promote Praxis LIVE as a (maybe the?) visual development environment for TinkerForge. Praxis LIVE is great for working with other media – use an IR sensor to control an OpenGL filter, shout to switch on a light, or use an OSC controller on your Android phone to control a servo.  It’s also fun for just working with TinkerForge by itself.

Continue reading

Praxis LIVE build:130831

Not for the first time, I’ve been busy working to get a new Praxis LIVE release up prior to a trip to Toronto (any local Praxis LIVE or NetBeans people want to meet up, get in touch!).   Praxis LIVE build:130831 is now available for download, though not (directly) from the usual place. As readers of Geertjan’s blog may have noticed, Praxis LIVE now has its own funky new home on the web – www.praxislive.org  Along with the new website, the logo and splash have been reworked (based on a capture from a GLSL shader running in the program itself, incidentally).

splash_pl

New splash screen showing new Praxis LIVE logo.

Still, this release is not all about good looks … Continue reading

Praxis LIVE build:130508

A new build of Praxis LIVE is now available from the usual place, with Windows (.exe) installer, zip distribution, and of course Linux (.deb) installer. This release has taken a little longer than normal to put together. A project I was involved with over the first few months of 2013 helped fund some nice new features, but it took a little time to get them in a releasable state (read the release notes for a full list of what’s new).

Meeting Point by Digital Prisoners

Meeting Point (2013) – Digital Prisoners – Bonn Square, Oxford.

Continue reading

Packaging as a .deb

If you’ve been following this blog or the Praxis code site for the last couple of months, you might be forgiven for thinking that not a lot had been happening. Actually that’s far from the case. I’ve been busy with a number of projects, one of which has seen some major additions to the Praxis code, and I’m now in the process of tidying that up for a new release. Some of the audio code has also been extracted and pushed to a separate repository (https://github.com/jaudiolibs/) of which more soon … but I digress. One thing that changed with the last Praxis LIVE release is that by default the Linux download is a .deb (Debian binary package) file, and I’ve been meaning to write up a how-to (for my benefit as much as yours!) since. So, here goes. Continue reading