You are viewing content from a past/completed QCon

Presentation: Functional Composition

Track: Modern CS in the Real World

Location: Whittle, 3rd flr.

Duration: 4:10pm - 5:00pm

Day of week: Wednesday

Share this on:

This presentation is now available to view on

Watch video with transcript


Marc Andreessen famously observed that "software is eating the world". As an increasing proportion of our culture becomes codified (literally), we need to consider how to authentically express theory and insights from diverse fields in our software. This must account for domains besides business process automation, because information technology impinges on every area of our lives, not just commerce.


Music is an excellent domain to explore using programming, because it has a long history of pre-computational notation and is culturally vital. In this talk Chris will demonstrate that music theory can be delightfully represented as code. He will show how to make music starting with the basic building block of sound, the sine wave, and will gradually accumulate abstractions culminating in a canon by Johann Sebastian Bach.


Examples will be live-coded in Clojure, but no prior knowledge of Clojure or Lisp is required.

Speaker: Chris Ford

Technical Principal @ThoughtWorksESP

Chris began to make music with code to compensate for his poor piano technique. It was only later that he realised that programming offers deep insight into musical structures. Over the past few years, Chris has given many talks presenting music theory to programming audiences, covering topics including European classical music, complexity theory, jazz, central African polyrhythms and tuning systems. Day-to-day he works as a consultant for ThoughtWorks Spain in Barcelona.

Find Chris Ford at

Last Year's Tracks