Monday, November 17, 2008

Generative Ambient Music: Bloom

One of the techniques I describe in The Productive Programmer is focus, distancing yourself from the all too common distractions in modern office environments. I suggest that you can wear headphones (or earbuds) while coding as an indicator that others shouldn't bother you. Some developers can code to music (in fact, some developers have a hard time not coding to music), but others fine it distracting. If you are in either group, you should try ambient music. The goal of ambient music is to create non-offensive background music. I find Muzak-style background music incredibly annoying and distracting, partially because they always choose sappy music (or taking good music and sappifying it) and partially because of a personality quirk described here. Ambient music strives to create a sonic background that not only doesn't distract but qualifies as good music. You can search for ambient music as a category on Amazon. Ambient music frequently uses techniques borrowed from Minimalist music, where you create a melody (which is too stong a term for some minimalist music) that repeats with minor variations.

Brian Eno is one of the pioneers of ambient music. He and Robert Fripp recorded the track The Heavenly Music Corporation on the album No Pussyfooting in 1972 by combining some experimental tape loop techniques from Eno, combined with Fripps guitar loops (called Frippertronics). No Pussyfooting is still available, and quite enjoyable. But the interesting part about it for this post concerns how it was created. Once Eno and Fripp had all the equipment set up, they started the tape loops and recorders for the background track and retired to Eno's front room and drank tea while the album recorded itself. No Pussyfooting has some early examples of generated ambient music (they were certainly not the first to experiment with generated music, but the first in a main-stream context). Eno and Fripp created several albums together. Eno has created a large catalog of ambient music (including the classic Music for Airports, recorded by several ensembles including the incredible Bang on a Can All-stars), and Fripp expanded the ideas behind Frippertronics using electronics for a stunning collections of recordings called Soundscapes.

Which brings me finally to Bloom. Bloom is an iPhone application created by Brian Eno and Peter Chilvers. When you launch Bloom, it starts a gentle drone sound as a background, and gives you the option to create ambient music by tapping the screen. When you tap, a note plays based on the location of your tap. You can tap single notes or chords. After about 5 seconds, the note repeats and continues while it gently decays. Using Bloom, you can create your own ambient music. I can play with Bloom for hours. It is one of the best iPhone applications I've found: a trully innovative application that takes great advantage of the iPhone interface.

The other option when you start Bloom is for it to generate music for you randomly. That brings us back around to focus. Using Bloom, you can generate unique, non-distracting music for an entire day. Rather than buy a collection of ambient recordings, you can generate your own ambient music. Bloom lets you set several "moods", changing the tonal range and drone sounds to add just enough variety in the music to keep it just interesting enough to not distract. What used to take tons of studio equipment now runs on the iPhone. This makes a great way to help enhance your focus in noisy environments. Allow Bloom to create music for you that doesn't distract yet effectively drowns out all the other distracting sounds in your cube-ridden environment. Bloom is a great example that the iPhone isn't just another mobile device: it's a new platform for software development.


DenverJuggler said...

Very cool - I will check out bloom.
Also if you haven't seen it, there's another app called "White Noise" that has only White, Pink, Blue, and Violet noise. Not sure what all of these are. It also has natural sounds ranging from crowd noise to wind, vaccum, beach, and shower. Some are too distracting but I like the Beach and can code to that. Just got done with a family trip a couple of weeks ago to Europe and listened to this while trying to relax on the plane.

L said...

Bloom sounds like a nice idea, I first started working and listening to music with Eno. Have you tried some Nik Baertsch ( minimalism meets small group jazz, great music to work to.

A couple of things your blog has brought to mind for me:

Firstly I read (I can't remember the reference though) that when someone listens to music and works they can stop the more creative side of the brain functioning, as it's busy enjoying the music. Not such a good thing for someone doing work that requires creativity like coding.

Secondly how does this idea of focus work for pair programming?

Unknown said...

Thanks for posting this Neal. I'm always on the lookout for ways to better focus at work. Another suggestion for good background music is Trent Reznor's (a.k.a. Nine Inch Nails) recent Ghosts project. Ghosts I - IV is an experimental project that is pretty close to ambient music. I guess it's about half way between Ambient and Nine Inch Nails. You can download the entire first album for free at or buy all four albums for download for $5. I've found Ghosts to be very helpful in getting into my flow at work.

Not Dennis Byrne said...

Ambiance? Neal, I have two things to say to you. Lots of caffeine and hard Trance.

wllm said...

Eno and Fripp are great for programming and general contemplative casual listening, but I think it's almost a crime not to call out Ambient 4: On Land by name; I've enjoyed some of my most productive hours listening to this album. All Eno/Fripp collaborations are excellent, as are- almost without exception- Eno/*anything* collaborations. For those looking for something a bit more modern: Biosphere- particularly Substrata, ambient-oriented Aphex Twin/Autechre, along with a bunch of gems on Pete Namlook's FAX label are all great picks.
But I better get back to focusing now. ;)