2.2. Tutorial: Breathing Duet

In this tutorial we will explore creating expressive behavior using breathing as a prompt. The objective is to set up a pair of simple single-actuator ‘characters’ and have them appear to respond to each other as revealed by their breath pattern. This tutorial will continue exploring Max as we will apply it to controlling pneumatic machines.

A demonstration example can be found in the breathing-duet folder. (Also available with everything else in a single zip file.)

There are several technical approaches we will explore:

One controller, two actuators. A single patch can just script or generate a choreographed sequence.

Networked controllers. Separate one-axis robots, communicating via message passing. Each group will produce one controller which can interact with an unknown controller by sending and replying to messaged using a common protocol.

There are several options for the physical form. The emphasis of this tutorial is on expressive timing, not mechanical engineering, but something needs to make the airflow visible or audible.

Single pneumatic actuator. There are several valve topologies we can use, including single-ended fill-empty, double-ended fill-empty, or threeway-fill. (This can eventually include 5-port 2-way.) The single-ended topologies will need a spring or gravity return.

Bag or balloon. We are using high-pressure air with limited flow, so any ‘lung’ will need to be fairly small, but a small bag on a tube could be a body. Be careful, it is easy to obtain pressures which will explode a bag.

Open vent. Constricting airflow to an orifice will make a noise which could be suggestive of breathing.

The challenge: use Max timing and sequencing operations to build a patch that can produce several parameterized primitive movements suggestive of breathing. Add automatic sequencing and operator controls to build an interactive timeline. Add inputs and outputs to govern the flow of the timeline in response to another ‘breathing agent’. Test the pair locally against itself and then over the network against an agent from a different group.