tuesday, december ninth, I installed an 8 channel network piece expressing micro-rhythmic patterns with flocking algorithms and force simulations. in each of the four computers on the LAN, I placed a world with 40 agents, each representing a train of semi-pitched impulses, resembling steel drums. the x coordinates represent the rate of the train, and the y coordinates represent the position within the cycle (phase). these drummers each had proportional masses to their pitch, and exhibited the following behaviours:
1) move toward the average location of the nearest drummers you can see
a) visibility is determined by an angle width and a distance.
b) width is centered around the drummer’s heading, the distance is proportionate to the drummer’s mass.
2) steer to avoid those drummers that are too close
3) collisions are possible, forces determine outcome
each of the other 3 nodes in the LAN are represented, in terms of their average position, as supermassive drummers in the worlds. they do not react to their surroundings directly, but pose as obstacles for each flock.
for debugging purposes, i used sc’s cocoa interface to animate the drummers. this video is from one of the local debug runs.
each drummer plays a single drum whose pitch remains constant, so the resulting texture is a pitch constellation whose changing parameters include timing relationships, overall density, local coherence, and speaker position.
the performance on tuesday was well received, despite the fact that the context was less than ideal.Â to show a piece like this in a setting where the focus is on particulars and not on the subtle aspects of experience is tough and somewhat frustrating.Â regardless of this, i feel as though my explanation was adequate for that setting, and the system worked just about flawlessly, with the only hiccup my being locked out of one of the computers and needing a reboot.
as i explained to the group, this setback actually fulfilled part of my aesthetic requirements for the piece as i disapprovedÂ of the power paradigm implied by the piece.Â if i am to be positioned as a godlike dictator over these four computers, then an act of civil disobedience is only responsible.
later in the week, on the 15th, i presented an improved incarnation of the piece which added to this self-organizingÂ flocking algorithm a second, more insidious one. this behaviour i programmed to spread virally and without bounds across the network, choking the router and the distributed virtual machines.Â once triggered, this behaviour almost immediately results in a Denial Of Service lockout from LAN access.Â the only way to kill the virus is by quarantine.
the virus is essentially a version of the network oscillator pieces i had come up with early in my experiments with networked systems. Â essentially, each receptor, on being triggered with a value of 1 or -1, broadcasts to the network the opposite of that signal.Â as a result, in systems larger than 2, this results in an oscillation between 1 and -1 on each node in the network.Â this value is used as an excitation signal to a karplus-strong-like pluck algorithm which is sensitive to the timing between plucks.Â imagine a frettlessÂ (or alternately, slide) guitarist whose left hand moves closer to the bridge as his right hand’s tremolo moves faster.Â i took extra measures to make the sound extra-plinky, and to give it more dynamic range.
click here for a recording of both textures running, as each computer is faded in.
the performance on the 15th was at diapason, an art spaceÂ run by michael schumacher.Â before i began i explained a bit about the process.Â i used my laptop to wirelessly start the flocks on each computer, which were panned around the space’s 12-channel system.Â since i re-initialized the environment prior to the performance, i set up the entire composition right there in front of the audience using the interface Ron and I came up with.Â This provided a nice parsing between computers, as each one started in turn.Â Having informed the audience about the viral code I would deploy, I simply waited for a few minutes to allow the flocks to organize and shift around each other, and then at a moment I determined to be opportune, I infected the network, giving the audience a visual cue.Â Finally, after a few minutes of letting the clogged network suffer, I ping-flooded a few of the computers on the LAN, experiencing 100% packet loss.Â Then I got up and somewhat dramatically unplugged each of the cat-5 cables connecting to the router, giving a few moments between them so we could hear each infection site heal.Â The flockers continued plinking away after this, and I reconnected the nodes to allow for networking between the flocks.Â Then, having regained access to the router, I stopped the flocks one by one from my laptop.
I was very happy with the performativity of the system in this form, but I would like to improve on the composition by allowing the virus to inject vm’s with its code receptors programmatically, and chase it with some kind of healing function or antivirus.Â This incarnation of the composition could then be installed, with perhaps distributed, bus-driven led systems (anything visual but non-cgi) to portray more clearly which nodes are infected and which are not.
this was my first experience of the composition in a true multichannel context, previous versions (like the recording above) had been mixed down to 2 channels.Â i found the system a lot simpler to navigate, its processes more immediate to locate, in this new context.Â i look forward to the next opportunity to work in a massively multichannel arena.
i am coming up with a proposal for thisÂ installation toÂ be deployed at several sites, such as the supercollider symposium at Wesleyan University in the spring, as well as at Diapason once again in the above mentioned installation form.Â it would really be a treat to show Ron and the other guys what i’ve been up to.