Variations 10b: A digital realization of John Cage's Variations II



Beginning in the early twentieth century, composition branched out into a variety of new representations, the most common being the graphical score. Cage’s Variations II is a prime example, utilizing only dots and lines as its basis. We have created an interactive version of Cage’s piece, called here Variations 10b, where a performer can change the score and get immediate feedback as to the result. We hope that both listeners and performers will develop a more nuanced understanding of the score through the use of the interface.

More information about Variations 10b can be found in the paper I wrote entitled Variations 10b: a Digital Realization of Cage’s Variations II .

The project is available for download .

h3. Running Variations 10b There are two components to Variations 10b: 1. The graphical score. Within the “variations10b” directory are a set of folders for the graphical score application for Windows, OS X, and Linux. Additionally there is the Processing source code; note that in order to run the Processing code you additionally need the OSC and Fullscreen libraries. 2. The sound server. The sounds for Variations 10b are generated using scanned synthesis in csound. I originally chose scanned synthesis both for its characteristic timbre as well as for more pedestrian pedagogical reasons. Unfortunately, the version of csound that comes with most recent Ubuntu distributions does not include the scanned synthesis opcodes. In those cases you will have to compile csound from scratch, something that is more difficult than it should be, and that is beyond my ability to explain here. Nevertheless, in order to configure the sound server you will need to change at least two variables in “variations10bConfig.ini”: the location to csound, as well as the command-line options. Within this configuration file you can also change the scanned synthesis table; included with Variations 10b are two options, the cylinder and the torus. Beware of writing your own table! It is very easy to create a table that will quickly “explode” into “infinity”! Therefore, to run Variations 10b do the following: 1. Start the sound server: “python” 2. Start the graphical score by either running one of the pre-compiled programs within the “variations10b” directory, or running the source code from within Processing. h3. License The code in Variations 10b is available under the GNU GPL V3 ( with the following modifications: The words “you”, “licensee”, and “recipient” are redefined to be as follows: “You”, “licensee”, and “recipient” is defined as anyone as long as s/he is not an EXCLUDED PERSON. An EXCLUDED PERSON is any individual, group, unit, component, synergistic amalgamation, cash-cow, chunk, CEO, CFO, worker, or organization of a corporation that is a member, as of the date of acquisition of this software, of the Fortune 1000 list of the world’s largest businesses. (See for an example of the top 500.) An EXCLUDED PERSON shall also include anyone working in a contractor, subcontractor, slave, or freelance capacity for any member of the Fortune 1000 list of the world’s largest businesses.

Additional Text

Additional Files


moving a single dot
Three dots activated in a performance

Add new comment