juggling ACTS circus CHARACTERS literary VAUDEVILLE booking INFO

Overview | Technical Details | Art Pretense | Songs | Gallery | Credits


Technical Details


The juggling motion sensors, custom made by Bret Battey.

Piezo buzzers in the palm detect ball catches. The variable voltage from the piezo triggers is converted to MIDI note-on commands with variable velocity. The conversion is performed by a PAVO MidiTools MIDI Computer, with detection circuitry and firmware developed by Steve Macatee and Bob Moses.

Variable resistors measure arm movement at the elbow. Battey designed a mechanical interface that suspends the potentiometer in the elbow while providing for ease and flexibility of movement. Special thanks to the inventors of velcro and hot glue. A PAVO MidiTools MIDI Computer performs the conversion of the variable resistance to MIDI continuous controller messages. Steve Macatee developed the firmware and hardware for this conversion.

The eight vending buttons and the Mars Electronics International bill and coin mechanism utilize a Mars Electronics International logic board to control availability of selections based on the amount of money that has been entered. Switch throws indicating the song selection are converted to MIDI note numbers by a PAVO MidiTools MIDI Computer Custom Instrument kit.

Three foot switches allow the juggler to control the routines appropriately during rehearsal or on ball-drops. Again, the MidiTools Custom Instrument converts the switch closures to MIDI note numbers. The PAVO MidiTools MIDI Computer is described in the book Digital Projects for Musicians by Craig Anderton, Bob Moses, and Greg Bartlett. For more information, see the PAVO MIDItools web page.


Computer/MIDI interfacing is provided by a Mark of the Unicorn MIDI Time Piece provides. The MTP runs in high-speed mode to handle the high volume of motion and musical data being routed through the MIDI stream.

A Macintosh Centris 650 is running the Juggling Jukebox program, which was developed using Opcode's MAX package for interactive, MIDI-based applications. The running application takes approximately 6.5 megabtyes of RAM.

The input parser routes the incoming MIDI messages to the appropriate handlers depending on the message type and the software state (off, practice mode, vending mode, and testing mode).

Each song is divided into 'phrases', each of which has its own set of routines for generating the appropriate musical responses to the juggler's motions. Each phrase routine also contains the logic for detecting when it is time to move to the next phrase.

Arm motion data can be routed as needed through a range detector and a slope detector. The range detector can be given a top-of-range value and a bottom-of-range value, and returns four possible messages: entering bottom of range, leaving bottom of range, entering top of range, and leaving top of range. The slope detector can be given a sampling rate in milliseconds; it returns one of three states: rising, falling, or steady.

Algorithmic techniques vary widely across routines. A common technique was the use of Lehmer's Linear Congruence formula for parameter control and for the generation of melodic or velocity sequences (see Charles Ames, A Catalog of Sequence Generators: Accounting for Proximity, Pattern, Exclusion, Balance and/or Randomness, Leonardo Music Journal, Vol. 2, No. 1, pp. 55-72, 1992). Routines were also developed to track tempo from ball catches, and rhythms or harmonic elaborations then unfolded algorithmically within the given tempo.

In order to handle ball drops, routines had to be designed so that they could be interrupted and restarted without malfunction.


A light display representing three jugging balls is an integrated part of the Juggling Jukebox logo on the vending enclosure. While the jukebox is waiting for someone to make a selection, it draws attention by flashing the lights in a variety of patterns and tempos. MAX generates the patterns, sending MIDI commands to a Rolls Patchwork RP93 set of MIDI-controlled relays to switch the lights.

Mode switching of the vending interface is also provided by the RP93, controlling return of change and disabling the interface while a juggling routine is in progress.

The sound sources are a Yamaha TG77 FM Tone Generator and an Ensoniq EPS 16+ Turbo. Mixing and EQ is provided by Rane rackmount modules, and amplification by an ADCOM GFA-353II.


The Juggling Jukebox routines were developed to have very tight relationship with the movements of the juggler. It was quite impractical to have a juggler hooked up to the interface for hours on end, repeating motions until the program was debugged. For this reason, development unfolded in two stages: filming and programming.

In the filming stage, a video tape was made of the James Jay performing the routines. A SMPTE signal was also recorded on the audio track of the video tape, and the same SMPTE signal controlled a Macintosh sequencer that was recording the MIDI data received from the juggling interface.

During the development stage, the video tape was played back. The audio track SMPTE signal was decoded and controlled the playback of the sequence on Macintosh 1. The MIDI information from Macintosh 1, describing the juggler's motions, is routed to Macintosh 2, where the MAX application was developed to provide precise response to the motions of the juggling routines.

Please contact Bret Battey (bret@BatHatMedia.com) if you have technical questions or comments.

The high-tech Juggling Jukebox by Bret Battey and James Jay

Overview | Technical Details | Art Pretense | Songs | Gallery | Credits

"Juggling Jukebox" is a trademark of James Jay.

Hear Bret Battey's other endeavors in his Music Gallery.


go HOME jugglers!

© 2003
Berlin & Seattle

to... James Jay MENU

James Jay: Innovative kinetic engineering for the entertainment industry
Juggling Acts | Circus Characters | Literary Vaudeville | Booking Info