Why don't you have a seat, there.
The Big New Thing was multi-touch, back when I embarked on my grail-quest for a MS in CS at Georgia Tech in Fall 2009 […yikes?]. Microsoft claims that the Pixelsense technology driving it’s Surface 2.0 will be as affordable as an LCD display, given sufficient time. In the interim, I expect civilization to collapse once or twice.
here’s a [pdf] link to our work-in-progress-but-also-kinda-final paper.
The project is called Sketch-A-Song, designed in collaboration with Nicholas Davis (PhD Human-Centered Computing in-progress). If you have a chance to work with Nick (or even grab coffee), do. From the research perspective, he understands the importance of having a strong theoretical basis before setting out to build something, which I found to be a healthy counterbalance to my mindset of: “plug everything in and see where it takes us”, a methodology I liken to that of the average housepet — urinate on everything. From the non-work perspective, it’s just good fun to discuss theories of creativity, cognition, the arts, and Lisp programming while sipping a pure Columbian roast.
Our technology stack includes Java + Processing + Clojure + Overtone, with the Open-Sound Control protocol serving all of our communication needs. Very soon to come: integration with tangible objects for selective performance and composition of musical components. Have a safe and happy Winter Break, and look for us in 2012.
This is a screen-cap from a class project I worked on in Spring 2011. The onscreen icons represent song sparrows that are migrating across a landscape. Young sparrows migrate and learn songs from older sparrows, who prefer to remain stationary at their advanced age.
I’d consider this a pseudo-simulation since there isn’t much more to these birds than the fact that they automatically learn every song they encounter. I’d love to spend more time working on this project, and turn it into an ambient tabletop experience, but I’ve been pulled in multiple other directions recently (namely, I’ve spent time self-researching Computer Hardware Architecture and modern web programming).
A larger goal for this project was to allow participants to “play” the birds.. where creatures are instruments that can be played via touch and/or tangible interaction, and everything can be inspected/modified.
Damion Junk posted an awesome fractal rhythm that he created using Overtone and L-System fractals. Damion attended the Clojure/Conj in Raleigh, NC in November… I recall him barely having Overtone installed at the time — a testament to how quickly one can get work done in a powerful language? Or just mad skill on Damion’s part? I’d like to believe it’s a bit of both!
This is a late, shameless self-plug for a project I worked on in Fall 2010 with Denise Chew (PhD student Human-Centered Computing) for a Music Technology class taught by Parag Chordia*.
In MusEEGk, participants wearing an EEG headset control a musical step-sequencer to produce simple repetitive tunes. Imagine this, only seizure-inducing and a much less intuitive note selection process (participants had to stare at a single note for up to 12 seconds to select/deselect it). Great Fun!
I’ll be revisiting this project in January 2012, after having spent the last year better familiarizing myself with the Clojure+Overtone+Processing development environment. Here’s to hoping that we can find a way to make the note selection process faster without sacrificing too much in the way of accuracy!
Many thanks to the individuals in Melody Moore Jackson’s BrainLab who lent access to their machines and educated us well enough to prevent any test subjects from being electrocuted.
*- I highly recommend attending any of Parag’s lectures, if you can.
I’ve been using Overtone for everything sound-related that I’ve done in the past year.
Overtone provides abstractions for interacting with Supercollider’s sound synthesis engine, scsynth. Overtone is written in a modern JVM language [Clojure], and as such, it has access to the myriad libraries available for the JVM, including the ever-popular Processing visualization library [via Roland Sadowski’s the clj-processing wrapper]
It requires a working knowledge of Clojure, which is easy to learn (if you aren’t too heavily invested in imperative programming ala Java/C/Python/Ruby).
* As of 12/18/2011, Overtone runs with Clojure 1.3, and Sadowski’s clj-processing runs best with Clojure 1.2 … I recommend using Michael van Acken’s fork which uses gen-class instead of proxy … higher frame-rate and a more functional style.