Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Examples code for making Whitney Music Boxes in various languages

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 basic
Octocat-spinner-32 chuck
Octocat-spinner-32 flash_actionscript
Octocat-spinner-32 html5
Octocat-spinner-32 midi
Octocat-spinner-32 nyquist
Octocat-spinner-32 pd
Octocat-spinner-32 perl
Octocat-spinner-32 processing
Octocat-spinner-32 pyo
Octocat-spinner-32 supercollider
Octocat-spinner-32 syd
Octocat-spinner-32 README.html
Octocat-spinner-32 README.txt
README.txt
This is a collection of examples of Whitney Music Boxes.  Some of them are purely visual 
representations of Whitney's "Incremental Drift" concept.  Some use the visual to trigger sounds, and
some produce sound or sound files, only.

The motion graphics used in these examples was developed and popularized by John Whitney (Sr), who 
described it in his 1980 book "Digital Harmony". Whitney's book contained example code in the BASIC 
programming language, written by Paul Rother.

Amazon has a listing for this book here: 

http://www.amazon.com/Digital-Harmony-Complementarity-Music-Visual/dp/007070015X

The "Whitney Music Box", in which the spiral form of this animation is used to trigger closely 
related musical sounds was created by Jim Bumgardner in 2006. Jim's first blog article can be found here: 

http://www.krazydad.com/blog/2006/04/visual-harmony/

The processing/digital_harmony_examples directory contains ports of the sample code from
the book.  The programs have ported in a fairly straightforward manner from BASIC to
Processing.

basic/
  This directory contains the original BASIC examples by Paul Rother, intended for the Apple II.  
  The program "Column BC" is the basis for the animation in the Whitney Music Box.
  
chuck/
  Sample ChucK version.

flash_actionscript/
  Sample Flash versions which sync to pre-generated audio.

html5/
  Sample HTML5/Canvas version
  
midi/
  Sample MIDI versions, generated by the perl script in the /perl directory.
  
nyquist/
  Simple program for Nyquist, a lisp-based language. Very elegant!
  
pd/
  Audio patches for Puredata.

perl/
  Scripts to generate MIDI sequences that match the animation.
  
processing/
  digital_harmony_examples
    Ports of Paul Rother's original sample code from the book.

  plus_midi
    Versions which trigger MIDI instruments (both rwmidi and midibus libaries)

  plus_pd
    Versions which talk to PD (puredata) and response to OSC.

  plus_pd
    Versions which use the BEADS library

  visuals_only
    Versions which generate visuals only.

pyo/
  Sample pyo version.

supercollider/
  Sample versions in Supercollider

syd/
  Patch for Jim Bumgardner's Syd software synthesizer.

All code licensed under a creative-commons (Attribution-NonCommercial-ShareAlike) 3.0 unported license.

If you'd like to help maintain this code, drop me a note. - jbum
Something went wrong with that request. Please try again.