Next month’s OSCON open source conference in Amsterdam will be bringing together speakers from all sorts of disciplines. One of the keynotes on the first day of the event is from Sam Aaron, a postdoc researcher at The University of Cambridge Computer Lab, who will be discussing his live coding program Sonic Pi and teaching kids how to code through live performance. Tech.eu caught up with Sam to find out more.
Tech.eu: First of all, what is Sonic Pi?
Sam Aaron: It depends who you are, it’s many things. On one perspective it’s a tool for teaching children how to program and it does that by engaging them in a novel way. Rather than writing functions for sorting, not particularly exciting activities for the children, it engages them by writing music. So you write some very basic code and it makes some sounds and to write more advanced sounds, you need to write more advanced code. Rather than functions or variables, we’re teaching basslines and riffs.
Sonic Pi was born in a classroom context. The first two weeks development was blue-sky thinking. Other than those first two weeks, the rest of the two and three quarter years’ worth of development has all been closely associated with classroom observation. So watching children and seeing how they interact with it, seeing what makes them excited, making sure that Sonic Pi fulfils that engagement in the classroom.
Then on the other hand, in addition to the educational perspective, Sonic Pi is also a musical instrument. I use Sonic Pi to perform regularly at events such as night clubs and “algoraves,” it’s a crazy term where people use computer languages to make music to dance to, and other exciting musical activities.
What were the beginnings of Sonic Pi?
I had already been working extensively on a system called Overtone, which is a Clojure-based live coding platform with a chap called Jeff Rose. I was able to build the most sophisticated system I could imagine for turning code into music and I had a band, I was touring the world, called Meta-eX. I was having a lot of fun and then the Raspberry Pi Foundation came along and said is there any way you can turn what you’re doing into something that could be used to teach kids? Is there any way you could take some aspects and some ideas from the work you’ve been doing on Overtone and build something that could run on the Raspberry Pi computer, specifically for classrooms?
What will your talk at OSCON be tackling?
I aim to communicate a number of different things from education to art to programming research. The specific emphases of my talks really depends on the audience and given that OSCON is mostly going to be programming people, I want to communicate that programming is way, way, way more than writing apps for business, that really it’s one of the most powerful creative tools that we have. Also when you’re trying to explore that creativity, you can come up with some really interesting computer science challenges.
I’ll discuss a couple of those things, specifically to do with timing; most programs that we write don’t concern themselves with real time rather they’re concerned with the topological order of computation. Do A before B, don’t do B until A is completed rather than do A every second exactly on the second because that’s my beat. Then I also want to demonstrate that something like Sonic Pi is something they could pick up today and show them how easy it is to get started. Hopefully some of the audience will go away and think “ah, I could use my programming skills to make music” and get stuck in.
Another thing, it will be really good to increase awareness of Sonic Pi if any members of the audience have seen any opportunities to get more people in the broader community engaged in programming and music might be a good vehicle for that.
Do you work directly with any schools and other organisations to teach kids how to use Sonic Pi?
A huge amount. I’ve roughly reached out to about 100,000 children with Sonic Pi. I’ve been engaged with the BBC, that’s where I got a lot of those figures.
For example, I did a live lesson that was projected out to 66,000 children live, where I demonstrated making music with Sonic Pi.
I’ve also been to about 50 schools, I’ve spoken to a huge number of school children and demonstrated it in assemblies, workshops, classrooms, and talks. I’ve been heavily involved with Raspberry Pi’s free Picademy teacher training course for teachers to learn how to teach the new curriculum. Sonic Pi is a core part of that Picademy curriculum. Therefore, I’ve taught a lot of teachers how to teach with Sonic Pi. It’s really important to stress that every feature in Sonic Pi has only been allowed to go into Sonic Pi if I can imagine teaching it to a 10 year old.
Are there any other interesting uses for Sonic Pi?
You can use Sonic Pi as a compositional tool to describe when to do things ahead of time and press run but that’s not so interesting to me. I see other people doing exactly that and that’s great but personally for me the most exciting aspect is the live coding, the ability to write code that expresses how I’m feeling in the moment or allows me to communicate something in the moment. Then I’ll be able to modify and change it to modulate the communication.
That to me is the most exciting thing, the ability to learn how to continually express myself with greater clarity through code, to me, is a very exciting journey. I can express myself in music but I can also express myself in many other things but it’s still live coding. Live coding with lights, live coding with visualisation, live coding of robots, lots of different things you could live code.
What are some of your thoughts of OSCON?
I’m really excited to be attending my first OSCON and to discover what kind of conference it is. The open source focus is wonderful and while there seems to be a strong emphasis on business I hope the audience will be interested in my message that software can be so much more.