ï~~Proceedings of the International Computer Music Conference 2011, University of Huddersfield, UK, 31 July - 5 August 2011 foremost is the distribution and maintenance of software infrastructure. 2.1. Software and Version Control There are a wide array of software environments available to composers and ensembles for the creation of music for Laptop Orchestra. Max [15] [9] is a widely used graphical programming environment for MIDI, audio and video. Its history is rich with applications for interactive computer music, and it is a language commonly used in the development of laptop orchestra music. Max can operate as an interpretive application (i.e. running an application from a user-defined document) or it can compile a standalone runtime application from a user-defined document. Max is a commercial program distributed by Cycling74 2. ChucK [13] is an easy-to-use open-source audio programming language that runs scripts within a compiled virtual machine. It is a fairly lightweight environment to work with, especially because the programming is done through simple text files, and it has built-in hooks for managing network communication using OpenSoundControl (OSC) [14]. Both the Princeton and Stanford laptop orchestras have created a lot of LO music using ChucK, and they have made these works available on the ChucK website 3. Our group has used it, in large part, because it is very easy to get students started with the language. There are plenty of other possible environments such as SuperCollider [8], and composers are also creating works for laptop ensembles directly in programming languages like Java. Jason Freeman's LOLC is written in Java, and uses JSyn [5] as its sound engine. As well, some compositions rely on external peripheral devices such as Wiimotes that require other middleware (i.e. OSCulator) to translate data into OSC. The point here is that Laptop Orchestras need to manage a variety of core and middleware environments across any number of laptop computers. This means checking to make sure these environments are up-to-date AND making sure that the compositions are compatible with those particular software versions. That is, it is possible that a ChucK script might not be compatible with the most recent version of ChucK, and so it is important to have access to both current and previous software versions. This is no easy task when dealing with one computer, let alone five or twenty-five computers. 2.2. Configurations and Performance A second challenge is the variety of configurations that are used for laptop ensemble music and the likelihood that such configurations could conflict with one another. A specific instance of this happened with our group. A composer wanted to use the audio driver Soundflower to reroute an audio stream generated by a command-line application into Max. The problem was that when he was done, his specific audio configuration interfered with other 2http://www.cycling74.com 3http://chuck.cs.princeton.edu compositions, preventing them from operating correctly. So a specific "de-configuration" script had to be created so that the computer would return to a neutral audio configuration after his piece was completed. Finally, the biggest challenge is the general demands of concert performance. Imagine trying to prepare a laptop piece for performance. You need to be sure you have the right software, the right middleware, that all the peripherals were properly connected, and that you have the correct computer configuration. And you have to do that for each laptop in the ensemble. And you have to do that 8-10 times, depending on how many pieces you would perform on a concert. This quickly becomes a time problem that is magnified exponentially by the techical savvy (or lack thereof) of the individual performers in the ensemble. 3. A CONTEXT FOR GRID COMPUTING In discussing these challenges with some of my colleagues, we realized that the laptop orchestra was in fact a grid computer for music. Grid computing is a form of distributed computing where a virtual supercomputer is created out of a loosely coordinated network of computers, all acting in concert towards a large common task. Grids are largely comprised of heterogenous collections of computers, each connected to a common network, but not tied directly to one another in any synchronous way. [4] Grids are used in all kinds of scientific applications, with the SETI@home [2] project being perhaps the best known. Here, participants in the project donate "down" cycles from their home computers for the purpose of processing radio astronomy data in the search for extraterrestrial intelligence. A central computer communicates with each computer, sending the networked machines bits of data to process when they are not doing anything for the owner of the computer. The grid leverages available cycles without tightly connecting processes across computers. Laptop orchestras are also computer grids, although perhaps not at the same scale as SETI@home. Still, they are a loosely coordinated group of computers tasked towards the common goal of a musical composition. By recognizing this, we are able to identify new kinds of solutions that can address the critical challenges posed by software version control, configuration and performance. We have embarked on a project we call GRENDL, for GRid-ENabled Deployment for Laptop orchestras. This project uses the SAGA framework to build a commandline application that manages laptop orchestra configurations and provides controls for the performance of music composed for these ensembles. 3.1. GRENDL The GRENDL project builds off the premise that laptop orchestras are, in fact, computational grids for music. It is an integrated system that deploys, manages, and controls 461
Top of page Top of page