Pd-L2Ork

A screenshot of the pd-l2ork K12 module

Now here’s a project with a tongue-twisting name. Pd-L2Ork is a fork (a variant) of the ubiquitous Pure-Data (Pd) free open source real-time visual programming language, a brainchild of Miller Puckette that has found its way into just about every aspect of our every-day lives, from being an inspiration for the commercial MaxMSP programming environment and a favorite among artists, researchers, and hackerspace/maker communities, to industry, and even some of the largest video game publishers in the world. Pd-L2Ork grew out of the now defunct Pd-Extended project due to a unique set of needs my own project, the Linux Laptop Orchestra (L2Ork), called for.

ICAT Maker Camp 2012The beauty of open source software is its malleability. Its stereotypical shortfall, the lack of polish and usability. My take on all this is that open source can be both malleable and polished and there are certainly a growing number of real-world exemplars, such as Ardour and Blender, to name a few. When I started using Pd within L2Ork as the tool of choice (mainly because of its ability to provide real-time and low-latency digital signal processing, as well as rapid UI design tools), I faced innumerable challenges that impeded its widespread deployment–after all, I had to ensure 20 laptops seamlessly operated and performed in a perfect sync with each other. More importantly, the same laptops were placed in hands of students, some of whom had never programmed a computer in their life, let alone troubleshooted a complex piece of software. Due to divergent interests of Pd and L2Ork projects, I came to a realization there was a need for a fork. And herein lies the true beauty of open source software–variants of the same project taking on their own unique paths, and yet coexisting and continuing to benefit from each other.

Pd-L2Ork project came into being in 2010. Its primary focus is on improving usability, new capabilities and functionalities, a user-friendly interface, as well as turnkey solutions that ensure stable and uninterrupted operation of computers within a large and often complex ecosystem, like the L2Ork ensemble. In 2012, in collaboration with my friend and colleague Dr. Liesl Baum Walker, I introduced the K12 module geared towards K-12 (kindergarten through the 12th grade) learning and maker-like initiatives. In 2013 pd-l2ork was retrofitted with an SVG-enabled canvas, allowing for more advanced manipulation of user interface elements, enabling some of the most bizarre implementations, like Jonathan Wilkes’ fantastic creation where code also poses as a game that concurrently teaches how to program in pd-l2ork. The system supports things many of us have come to expect of a modern piece software, like infinite undo, various usability features, objects, and shortcuts, all with the ultimate goal of making pd-l2ork as robust and stable of an environment as humanly possible. In 2015, through the heroic efforts of Jonathan Wilkes who joined pd-l2ork developers in 2013, pd-l2ork is scheduled to transition into a node-webkit graphic environment (a graphics engine used by Google’s Chrome and Chromium) which will put it within an arm’s reach of becoming a platform-agnostic web browser-compatible programming environment. All in all, pd-l2ork offers over thousand improvements and bug-fixes and increasingly diverges from the Pd code base, even though the project continues to maintain near perfect backwards compatibility.

Raspberry Pi Orchestra -- A 2014 Virginia Montgomery Public Schools summer gifted program

Unsuspectingly, Pd-L2Ork has also attracted a growing developer and user base and is increasingly being used around the world both in educational and production environments. I also utilized it in a number of other scenarios unrelated to its original intent, including artistic works (e.g. Cloud and Symmetries), as well as over dozen Maker camps and workshops across the globe. What makes it particularly helpful within L2Ork is its robust audio-visual environment with added functionality (e.g. global presets), its essentially free nature that lowers the cost of the overall infrastructure, something that has enabled L2Ork to expand into the K-12 and Maker arenas, and perhaps most importantly, it seamlessly integrates various interfaces and controllers, such as the Nintendo Wii remotes, Arduino boards, and Raspberry Pis.

Pd-l2Ork started out being Linux-centric, mainly because such an approach minimized the cost of L2Ork infrastructure. With the upcoming introduction of node-webkit based user interface, my colleagues and look forward to supporting other platforms. In developing pd-l2ork, I’ve taken a number of detours, focusing on contributing to other related projects, such as the fork of the abandoned cwiid library whose source code is actively maintained in pd-l2ork’s git, as well as the now defunct tkpath project that has served as an interim GUI solution between 2013 and 2015.

If interested in helping and/or providing financial and infrastructural support for the project, please do not hesitate to contact me–developing pd-l2ork is a formidable task and the project will undoubtedly greatly benefit from such support. You can find more info on the project’s github page.

Research Publications: