Photo (c) Jan Trutzschler von Falkenstein; CC-BY-NCPhoto (c) Rain RabbitPhoto (c) Samuel CravenPhoto (c) Gregorio Karman; CC-BY-NC


I am a research fellow, conducting research into automatic analysis of bird sounds using machine learning.
 —> Click here for more about my research.



Older things: Evolutionary sound · MCLD software · Sponsored haircut · StepMania · Oddmusic · Knots · Tetrastar fractal generator · Cipher cracking · CV · Emancipation fanzine


On Monday I did a bit of what-you-might-call standup - at the Science Showoff night. Here's a video - including a bonus extra bird-imitation contest at the end!

science · Permalink / Comment

This weekend I was invited to take part in an event called Soundcamp. Let me quote their own description:

Soundcamp is a series of outdoor listening events on International Dawn Chorus Day, linked by Reveil: a 24 hour broadcast that tracks the sounds of daybreak, travelling West from microphone to microphone on sounds transmitted live by audio streamers around the globe.

Soundcamp / Reveil will be at Stave Hill Ecological Park in Rotherhithe from the 30th of April to the 1st of May 2016, and at soundcamps elsewhere in the UK and beyond.

So as an experience, it's two things: a worldwide live-streamed radio event that you can tune into online, and also if you're there in person it's a 24-hour outdoor event with camping, talks and workshops, with a focus on listening and on birdsong.

(Photos here are by @lemon_disco)

There was a great group of people involved. I was very happy to be on the bill with Geoff Sample the excellent bird recordist, and with Sarah Angliss the always-entertaining musician/roboticist/historian. We each spoke about bird sound from our own different angles and I think it was a really good mix of perspectives. There was also Jez Riley French the field recordist, who led a workshop on ultrasonic underwater sound, and Iain Bolton who took us on a bat walk: the immersive sound of multiple bat detectors clicking and squeaking away around the pond at dusk was much more of a sonic experience than I expected, quite memorable.

For myself - well, I talked about our work on automatic bird sound recognition, in particular our app Warblr: how it works, and how it has been used by people. But more than that, it was a great opportunity to think about how we listen to sound. Trying to get computers to make sense of sound is a good way to emphasise what's so strange and amazing about our own powers of listening.

It was also a perfect setting for the little collaboration Sarah Angliss and I put together last year. Sarah has built a robot carillon, a set of automated bells, and we worked together to transcribe birdsong automatically into musical scores for the bells. These bells, singing away in the corner of the park, with the warm spring weather and the real birdsong all around, were right at home.

At dawn on the Sunday we took a dawn chorus walk. It was an interesting thing to do, and the star of the show was undoubtedly when we reached the end of the walk, almost ready to go back, and a grasshopper warbler sang out loud and long and strange - an unfamiliar sound to me, and apparently the first time anyone had heard one around there! Is it an insect, a bird, a piece of machinery...?

The main Soundcamp organisers - Grant Smith, Maria Papadomanolaki, Dawn Scarfe - also brought their own great and really thoughtful approaches to listening too. Grant and his son led a workshop on making a soundscape streaming device, really quite simply with a Raspberry Pi and a couple of microphones (based on Primo EM172 capsules). I've been really impressed by the quality of the sound field they get from a pair of mics stuck in a section of poster tube.

Here's Maria mixing the radio stream, in the temporary on-site studio:

There are more photos here from Dawn Scarfe

sound · Permalink / Comment

I love a lamb tagine, so I'd like to make a vegetarian tagine that competes with it for the fullness of flavour. Here's my best one so far, making it deep and main-coursey by having large chunks of aubergine flavoured with cinnamon to take centre stage, and bitterness from fried lemon slices so that there's contrasting objects in there along with the standard tagine backing.

And yes you're meant to eat the lemon slices, rind and all. You don't have to eat the rind if you don't want, but it's doing the bitter/sour job we've got it for.

Serves 2, takes maybe an hour (including the stewing time).

In a deep pan that has a lid, heat up a big glug of olive oil, and fry the diced onion at a medium heat for 3-5 minutes to soften. Then add the chopped tomatoes. Stir and let it cook for a minute or two, then add the dates/prunes, 1 cup of veg stock, the honey, and a handful of almonds. Put the lid on, bring to the boil, then turn the heat right down to a simmer.

Chop the aubergine into big pieces, maybe 1 inch cubed. Don't go smaller than that. Put the aubergine in a bowl and sprinkle over a good dose of cinnamon, maybe 2 tbsp. Toss this around to coat the aubergines fairly evenly.

Get a big frying pan and put it on a hot heat. (No oil.) Add the aubergine pieces. Let them dry-fry for maybe 6 minutes, tossing them occasionally to turn over. A couple of minutes before they're done, slice the lemon into 0.5 cm slices, remove the seeds, and cut the slices in half (i.e. into semicircles), then add the lemon slices to the dry-fry pan. This gets them a little bit browned too. If you're increasing the quantities, you'll need to do the dry-frying in batches.

Put the aubergine and lemon into the stew pot. Stir around. Now put the lid back on and let this bubble gently for maybe 20 minutes minimum, 40 minutes maximum.

About ten minutes before the end of the cooking time, add a handful of chickpeas.

Then, just before serving: taste to check the sweetness, and decide whether to add a bit more honey. Add 1 tbsp olive oil, and stir. Then finally sprinkle some more sliced almonds over.

recipes · Permalink / Comment

OK now here we've got lots of lovely good news. Not only have my colleague Andrew McPherson and his team created an ultra-low-latency linux audio board called Bela. Not only can it do audio I/O latencies measured in microseconds (as opposed to the usual milliseconds). Not only did it just finish its kickstarter launch and received eleven times more funding than they asked for.

The extra good news is that we've got SuperCollider running on Bela. So you can run your favourite crazy audio synthesis/processing ideas on a tiny little low-latency box, almost as easily as running it on a laptop.

Can everyone use it? Well not just yet - the code to use Bela's audio driver isn't yet merged into the main SuperCollider codebase, and you need to compile my forked version of SC. So this blog is just to preview it. But we've got the code, as well as instructions for compiling, in this fork over here, and two of the Bela crew (Andrew and Giulio) have helped get it to the point where now I can run it in low-latency mode with no audio glitching.

Where do we go from here? It'd be nice if other people can test it out. (All those Kickstarter backers who are receiving their boards sometime soon...) There are a couple of performance improvements that can hopefully be done. Then eventually I hope we can propose it gets merged in to the SC codebase, perhaps for SC 3.8 or suchlike.

IT · Permalink / Comment

After a tip-off from a friend, I've had a couple of different attempts at doing a nice simple meal with courgette fritters. This one is working well so far. I keep the courgettes in pieces (rather than grating them) which maintains the nice structure with the squishy middle bit, and the egg coating helps to make them into little parcels.

Takes 10 minutes, serves 2 as a light meal.

First get the courgette ready. If you rinsed it, pat it dry with kitchen paper. Cut it into 1cm-thick slices and put them on kitchen paper to dry a bit more.

Put a large frying pan on a medium-hot heat, and put a good slug of vegetable oil in it, a couple of millimetres deep.

Mix the flour and parmesan in a bowl. In a second bowl, lightly beat the egg. These are going to be for coating the courgette.

Take the courgette slices and toss them in the flour/parmesan. Try to get a nice even coating.

Now we fry. With one hand, take the courgette pieces one at a time, dip them in the beaten egg, turn them to coat, and then put into the hot pan. By the time you've got them all into the pan it may well be time to turn the first ones over - they need 2 or 3 minutes each side. Do the turning-over one slice at a time (e.g. using tongs), in roughly the same order that you put them in.

When the courgettes are nicely golden-brown on both sides, lift them out onto kitchen paper. In a bowl or directly on the plate, mix them with the salad leaves. Sprinkle more parmesan over them, then squeeze lemon juice over them.

Serve with crusty bread or hot buttered toast.

recipes · Permalink / Comment

I've decided to cook more vegetarian food. Meat-eating is one of our biggest contributors to CO2 emissions and climate change, and certainly it's the biggest one that I can do something about. The nice thing is you don't have to go vegetarian - it's not all-or-nothing - just eat a bit less meat than normal, and you're on your way to improving your carbon footprint.

I'm not a fan of the "fake meat" vegetarian route (quorn, lentil sausages, etc) so what I've done is asked friends for some good new everyday veggie meals. So how's it going so far?

Some other nice little recipes I came up with are beetroot nisk soup and kale and rosemary flatbread.

I've been adapting/replacing meaty recipes as I go along - a nice example is to adapt the fab standby tupperware chorizo recipe and simply use mashed black beans (or kidney beans) instead of pork mince. Hey presto you've got this stuff you can keep in the fridge for ages and fry it into a simple meal to add some depth and complexity. Of course the texture is nothing like pork but that's not what I was trying to do.

I'm still eating meat but definitely less, and I find now that I don't need to have meat always in stock as a default fallback. Just add a handful more everyday veggie recipes to your lineup.

food · Permalink / Comment

"Nisk" is a kurdish soup. I don't know much about it but I've modified it with a pack of beetroot to make a simple storecupboard thing that's a lovely warming and hearty soup. Takes 20 mins, serves 1 as a main or 2 otherwise:

Set up the lentils: put some hot water on them briefly, then drain and rinse them.

Heat some vegtable oil in a saucepan and start the garlic and ginger frying gently. Open the beetroot pack (carefully!), drain the liquid, and but the beetroots into bite-size pieces (eighths).

Add the turmeric to the garlic/ginger, stir once, then add the beetroot. Stir.

The rice and lentils to the pot, then add just enough stock/hot water to cover. Bring to the boil, add the dab of chilli sauce, then put a lid on and turn the heat right down.

Simply simmer really gently for 15 minutes. Then serve, perhaps with a bit of parsley. You probably don't need bread with it.

recipes · Permalink / Comment

I'm nearing the end of a great three-week research visit to the Max-Planck Institute for Ornithology at Seewiesen (Germany). It's a lovely place dedicated to the study of birds. Full of birds and ornithologists:

Watch out for ornithologists

I'm visiting Manfred Gahr's group. We had some ideas in advance and some of them have turned out nicely fruitful for this brief visit.

I'm staying on-site, and I've been lucky enough to catch the tail-end of the beautiful snowy weather, making it look like this:


Thanks to my hosts and collaborators for their involvement!

science · Permalink / Comment

Other recent posts: