View on GitHub

Close Encounters - 220c

Tim O'Brien - 220c project and status blog - Spring 2013

Download this project as a .zip file Download this project as a tar.gz file

Introduction

I will leverage my previous projects combining human-computer improvisation and musical synthesis via swarm simulation to allow networked collaboration and performance integrating dynamic visualization. My ultimate goal is to compose an ensemble performance with computer(s) and my fellow CCRMA classmates.

Previous Work

I used a somewhat utilitarian, single-user/single-swarm version of such a program in several performances. (See the maiden voyage as well as the two recent performances at CCRMA modulations 2013.) The current non-web-app version can be found here.

Swarm simulation in JS

My working directory for a multidimensional music-ready swarm/boids implementation in JavaScript and Node.js is here.

April 15, 2013

Motivation

My interest in real-time computer-assisted composition and computer improvisation stems from my desire to meld my previous musical work, which was more acoustic than computational (though I of course utilized highly electronic elements) and quite improvisational, with the dazzling array of digital tools and approaches available today. In particular, the work of Roberto Morales-Manzanares and George Lewis [1], among others, has influenced my desire to create systems which mimic or simulate the non-deterministic, unpredictable nature of human gesture and approach to improvisation.

[1] G. E. Lewis, “Too Many Notes: Computers, Complexity and Culture in Voyager,” Leonardo Music Journal, vol. 10, pp. 33–39, 2000.

Status

Currently my javascript boids implementation seems to be working well enough, as I have squashed some bugs that I just uncovered. I added server-side simulation iteration -- that is, the swarm recalculates velocities and positions at a given time step, in milliseconds, which is set when the app is instantiated. Other parameters are set at instantiation time as well, such as the number of dimensions for the swarm simulation, the number of elements in the swarm, etc.

The next step, as I mentioned on Thursday, is enable visualization of the swarm in the browser. I believe the best bet here is D3, since the swarm will ultimately be comprised by a large amount of data which will require different and dynamic visualization approaches.