bret battey • bat hat media



Current Public Software


Nodewebba is generative music software in which a web of feedback-based pattern generators creates dynamic, interlocking melodic and rhythmic patterns. It brings my concept of Variable-Coupled Map Networks out of the research lab and into the home studio.

Max/MSP/Jitter Tools

Handy abstractions from my projects. Right now, just:

  • bat.bezier  (create control data using Bezier splines)
  • bat.keyPointGen (create keyframes for Apple Motion XML)


Useful Code Snippets



Objective C / OpenGL


Current Private Software

These are projects I have developed for my own work which are not currently public. This is not because I want to hide the magic, but more because refining coding and documenting software to make it fit for public distribution would be exceedingly time consuming, as would supporting the software after release.

OptiNelder FxPlug

A plugin for Apple Motion. Based on visualising Nelder-Mead optimazation processes to find brightest points on a source image or to find highest/lowest points in a source function. OptiNelder was Used in the Estuaries series of works and discussed in detail in Battey, B. (2020) "Technique and Audiovisual Counterpoint in the Estuaries Series" in Knight-Hill, Andrew, Ed., Sound and Image: Aesthetics and Practices. London: Routledge.

Brownian Doughnut Warper FxPlug

A plugin for Apple Motion. Based on 3D warping of a grid plus brownian displacement of points. Used and developed in Autarkeia Aggregatum and the Luna Series, Triptych Unfolding, and The Five. Discussed in detail in “Creative Computing and the Generative Artist” (International Journal of Creative Computing 1(2-4), pp. 154-173).

Brownian Doughnut Warper OF

An Open Frameworks implementation of the Brownian Doughnut Warper, for use in realtime performance. Used in Triptych Unfolding and The Five.

Trailz FxPlug

A plugin for Apple Motion. Implements motion trails by writing a new frame over the previous frame, with variable transparency. It breaks the rules of usage for a tool like Motion, but since this is just for my use, who cares? Motion 5 evolved to support parallel processing with multiple GPUs, requiring even more spit-and-glue with thread locking to allow Trailz to work.


PICACS (Pitch Curve Analysis and Composition System) is software for analysis and expressive computer rendering of pitch-continuum melodies (such as those found in Indian classical music). The concepts and techniques are described in my Computer Music Journal article Bézier Spline Modeling of Pitch-continuous Melodic Expression and Ornamentation.

PICACS was prototype hackware implemented via command line control in LISP using Common Music and Common LISP Music, with links to GNUPLOT. In other words, only usable by a small fragment of the human population.


Software Projects Archive


A code snippet for use with Rick Taube's CM/Grace algorithmic composition environment configured with David Psenicka's FOMUS. Converts Standard MIDI File containing Vienna Symphonic Library articulation keyswitches to MusicXML for import into a notation program. Enables reasonable, if not great, translation into appropriate articulation markings, dynamic markings, and slurs. I created this code for my own very specific compositional purposes when composing Clonal Colonies. Using this code requires coding knowledge (LISP/Scheme) in order to adapt it to your particular purpose. It is NOT a simple, standalone solution by any means. But, for a coder, it is probably simpler to use than starting from scratch. See the enclosed README file for instructions.

  • Version 1.0 - Dec 19, 2011 - Tested with Grace version 3.7.2, FOMUS version 0.2.28, and Finale 2010b.r1 on Mac OS 10.6


Drone-a-Tron Mark IIa

A cross-platform MAX/MSP program providing virtual tamboura and harmonium instruments with customizable just intonation schemes -- for practice of Indian classical music. Available on the Drone-a-Tron page.



A set of MAX building blocks for driving the Pioneer DVD V7400 RS-232 controllable DVD players. Includes a demonstration apps, a GUI "remote control", and a copy of the DVD V7400 RS-232 protocol specification. Probably also will work to control the DVD V7200 players. All written in MAX 3.5 and 4.0 (no custom objects), so easily alterable for specific needs.

Please note that I no longer have access to a DVDV7400 player, so I am no longer able to test, debug, etc.


WJMX20 Control

A set of MAX building blocks for driving the Panasonic WJ-MX20 RS-422 controllable video mixer. Includes instructions for creating a serial cable to connect a Macintosh and WJ-MX20 serial ports, a FIFO-buffered sender routine, demonstration apps, a GUI "remote control", and a copy of the WJ-MX20 RS-422 protocol specification. Could probably be easily altered to control other Grass Valley Group Protocol 100 (GVG-100) controllable video mixers. All written in MAX 3.5 and 4.0 (no custom objects), so easily alterable for specific needs.

Please note that I no longer have access to a WJMX20 mixer, so I am no longer able to test, debug, etc.


AECM – Animation Extension to Common Music

An extension to Rick Taube's Common Music 1.4 environment allowing it to export MaxScript animation script files for the 3D Studio Max 2.5 computer animation software. Used in the creation of Writing on the Surface. (The code has not been updated to current versions of Common Music or 3D Studio Max.)

  • Introductory Paper from the Proceedings of the Connecticut College Biennial Symposium on the Arts and Technology, 2001 (PDF)
  • Version Beta 1 - Feb 24, 2001