Recorded November 12th, 2011, first in a series of conversations from Clojure Conj 2011.
I had the great pleasure of hanging out with Sam Aaron both before and after his presentation at the Conj. In that presentation, he delivered a brief survey of the history and state of affairs in computer music and an overview of Overtone — an “open source audio environment” built with Clojure — with live, interactive musical performances interspersed throughout to demonstrate some of its capabilities.
This was the last talk of the Conj, and Sam and I recorded this very shortly afterwards. I don’t know if the organizers were being purposeful about it, but that positioning was brilliant: I (and, I suspect, many others) were so completely blown away by what Sam and the rest of the Overtone team had achieved and by his palpable, absolutely riveting delivery and performance, that I’m not sure the conference could have carried on effectively had he been scheduled midway through. The reaction of the crowd was jubilant throughout, helping Sam off the stage with a rousing standing ovation of the sort that you hear more often in concert halls and theatres and ballparks than at technical conferences.
For my part, I was stunned. Totally beyond the cerebral appreciation for the application of Clojure and its powers of abstraction to a domain like music (something that many programmers likely view as “untouchable” in various ways), I always love seeing someone so clearly consumed with passion for their craft. The sight is inspiring and humbling and I was on a high for the rest of the night.
So, if I sound more enthused than usual through the course of my conversation with Sam…that’s why.
We talked a bit about his explorations with producing music using Ruby, his path to helping to combine Clojure and SuperCollider into Overtone, the connections between programming, musicality, creativity, and fearlessness, and what he has in mind to help us all make some music, have some fun doing it, and help our friends do the same.
“Sam, you’re badass!”
— Rich Hickey, after Sam’s Overtone presentation
(Note: while we were recording, we had a number of people stumble into the room we were recording in, so there are some hard stops and odd audio transitions here and there each time we restarted.)
Discrete topics mentioned:
- The monome, which Sam used to control Overtone on stage
- Max Matthews
- Other tools
- ugen (unit generator)
- Jeff Rose, Sam’s primary co-conspirator (along with a pile of other contributors listed on the Overtone site)
- Dan Stowell
- “You can trade your programming skills in for musicality.” — Sam Aaron (a hypothesis)
- overtone.music.pitch — a formalization of music theory, codified into Clojure
- Cambridge University
- Garry Kasparov: “Weak human + machine + better process was superior to a strong computer alone and, more remarkably, superior to a strong human + machine + inferior process.”
- freesound— Creative Commons-licensed samples
- to be integrated with a forthcoming dedicated asset management system for Overtone
- Overtone mailing list
Source code for this episode’s bumpers, produced by Sam Aaron in Overtone:
- “Wubdub” intro, produced entirely programmatically
- “Satie” finale, played by Sam using the Monome device
…and I can’t and don’t want to approximate one, either. I think that’s pretty obvious, and might seem like a non sequitur, but you’ll see why it’s not in a second.
One odd thing is that, in the process of emailing a couple of people to suggest that we record some material for the podcast at the Conj, I encountered a few jokes (expressed most definitely tongue-in-cheek) around the prospect that I’d be trying to run a hardcore interview. I can picture it now, me sweating a Clojure library author with curveball questions and shooting for that perfect ‘gotcha’ moment where they mispronounce “Leiningen“. (Like I do sometimes. Not on purpose, I promise.) Yikes.
While people were joking, and I presume they don’t actually think that would happen (insofar as everyone I’ve approached has assented to being on the ‘cast), my mother always told me that there’s a kernel of truth in every jest. Further, I can appreciate that being recorded for posterity can be anxiety-inducing, and I’ve now heard at least one story of someone being unpleasantly grilled by an aggressive podcast host.
So, as much as possible, I’d like to reassure anyone being recorded at the Conj, and anyone that might be on the podcast in the future that I am sooooo not looking to create or experience any stress of any kind. I’m not interested in being a journalist (my biases and vested interests are too flaming obvious, anyway), and I’m certainly not interested in being a ‘gotcha’ journalist. I’m just someone that really, really likes Clojure, likes the people I know that use Clojure, and would like to know more people that use Clojure. I’m not even super-interested in doing interviews per se; having a conversation with someone that I might have if the podcast didn’t exist at all is my main goal for when “guests” are on. I’d rather just can the whole project than let things ever get “weird”, either for me or other hosts or “guests”.
If this has seemed like a bizarre digression…you’re right. But, hopefully the above clarifies what I’m up to and what my intentions are.
- Clojure Contrib and its transition since Clojure 1.3 was released
- Where did Clojure Contrib go?
- Not all replacements for “old contrib” libraries are in “new contrib”, e.g. Slingshot being the best replacement for clojure.contrib.condition
- Dependency management
- Clojure SQL libraries:
- Chas’ extreme ignorance re: ColdFusion prior to “meeting” Sean
- Sean’s experience bridging ColdFusion/CFML and Clojure
- Sean’s FrameworkOne and his port of it to Clojure
- Codebase Radio
- Clojure Conj 2012
- Clojure West
- “Real-world Clojure”
- Sean’s blog post series of the same name, on topics like:
- Cascalog, Storm
- Sean’s work introducing Clojure to World Singles and using Clojure to solve internationalization and localization challenges there
If you have any suggestions, questions, or comments, feel free to leave them below. And, if you’d like to get your comments or questions out onto the podcast, feel free to send audio clips to the email address you see to the right — I can’t guarantee your clip will get used, but let’s see how it goes.
BTW, thank you very much for all of the feedback in the comments here and elsewhere. All of the ideas are very appreciated, and many of them will hopefully be incorporated in future episodes as things progress and I get my podcasting legs.
I certainly enjoyed podcasting for the short time that I tried it, and it seems like the broader Clojure community could use some auxiliary informational and entertainment material out there. Not all of us can lurk on IRC or read Clojure blogs all day — and after all, there is something very humanizing and enriching about being able to have some kind of palpable contact with birds of a feather, even if it is only hearing the voice of the author of that cool new Clojure library.
Ironically, the first post here has no audio — but only because I first want to hear from anyone potentially interested in a Clojure podcast:
- What would you like to hear about?
- Who (or, what sorts of people) would you like to hear from?
- How do you prefer to get podcast content (iTunes, other RSS, SoundCloud, embedded flash player…)?
I have a variety of ideas re: format, topics (both one-off and recurring), “segments”, and so on, but I want to listen to what you have to say first.