Building Networked Performances Using Node - MOXsonic 2020

  1. Getting set up for this workshop
  2. What is Node?
  3. Introduction to Node for Max
  4. Setting up local Node for Max client-server applications
  5. Creating a remote server on Heroku for your Node for Max client
  6. Using a web page interface

What is Node?

Node.js (Node) is “an asynchronous event-driven JavaScript runtime… designed to build scalable network applications…”

Basically, it’s a way to use JavaScript to make interesting projects. It is especially useful for communicating over networks and over the internet because it can handle input/output and generate HTTP requests to web servers.

Starting with Max 8, Cycling ‘74 included native support for Node in Max, allowing users to launch and control Node applications directly from within their patch.

Our good buddy Sam describes Node for Max as a swiss army knife that can be used to do increasingly obscure things e.g. create “a Max patch that automatically generates names for bespoke potpourri”.

The node.script object and Node for Max API provide a way for familiar Max objects and workflows to implement and interact with the core functionality of Node.js and its many supplemental libraries.

In this workshop, we will be demonstrating multiple approaches that we have found useful for creating networked performances with Max using Node, including a local client-server application, a remote client-server application, and a web interface.

Examples of networked performances built using Node (all presented on concerts at MOXsonic 2020):