repel study

Each ellipse corresponds to a pitch in a constellation, with regular occurrences (events of 'striking the bell') determined by position in the window (frequency vs phase). Ellipses have a mass directly proportional to their size and inversely proportional to their pitch. The ellipses are attracted to each other according to gravitational laws, and repel each other according to a 'force field', whose magnitude may vary across the arc of the video. When two ellipses repel each other, a transient sound event (grain-like) occurs, whose spectrum is determined by the ratio of the two pitches involved. When more than three ellipses repel each other at once, a squealing bowed metal sound occurs, also related to the ratios between constellation pitches.

I wrote the code in SuperCollider as part of an effort to clean up the sourcecode for other pieces based on dynamic systems, such as Sanction of the Victim's flocking algorithm.  Actually, this study uses SoV's pitch constellation and mapping of frequency and phase to x,y coordinates. SoV's debut performance at Diapason used classes based on Fredrik Olofsson's "Red Universe" class library, which I modified to get a "Boids"-esque behavior. While his class library was useful as a springboard, I found its implementation slightly troublesome. Not that his code was somehow bad or anything, but there were a few things I would do differently. Specifically, the reliance on inheritance made for confusing code, although I assume that his reasons for using that style were didactic. So my project has been to rebuild a class library specific to my needs and coding style. This gravitational forces study contributes to that effort.

Source code for the above movie available here: Class Definition, Implementation Script.

One thought on “repel study

Leave a Reply

Your email address will not be published. Required fields are marked *