School of Electronic Engineering and Computer Science

Mr Chris Cannam


Principal Research Software Developer

Room Number: Peter Landin, CS 321


Research Interests:

I work with researchers to produce finished software that people want to use.

My job is to make, package, publish, and maintain end-user applications based on research work, and produce new tools to help researchers carry out that work.

I help maintain the SoundSoftware services and a number of other servers for the Centre for Digital Music, providing infrastructure for audio and music researchers who need to develop software. I also provide and coordinate development effort for specific research projects, offer development support for new research grants, and am occasionally involved in industrial partnerships.

  • Sonic Visualiser, a widely used application for viewing and analysing the contents of music audio files.
  • Sonic Lineup, a tool for quick comparative visualisation and navigation of multiple related audio recordings.
  • Piper, a project to explore audio analysis using browser technology, Javascript, and network protocols. (code project)
  • Tony, a tool for machine-assisted annotation of pitch and note information from solo singer or monophonic instrumental recordings. With Matthias Mauch and George Fazekas. (code project)
  • A Python host for Vamp audio feature extraction plugins. (code project)
  • A Vamp plugin implementation of a shift-invariant latent variable model for multiple fundamental frequency estimation and polyphonic note tracking, from Emmanouil Benetos and Simon Dixon. (code project)
  • A C++ library and Vamp plugin for quick online constant-Q transforms. Based on work from Christian Schörkhuber and Anssi Klapuri. (code project)
  • Mechanisms for embedding machine-learning models trained using typical research workflows into native-code end-user applications.
  • The Vamp plugin SDK and API.
  • Sonic Annotator, a batch tool for feature extraction and annotation of audio files using Vamp plugins.
  • The QM Vamp plugin set.
  • EasyMercurial, a simple user interface for the Mercurial version control system.
Things I'd like to do
But won't necessarily get the time for
  • "Mini Edition" of Sonic Visualiser, with instant access to common visualisations and touch-friendly interface.
  • Library and plugin of analytical features for recordings of singing (vibrato rate and extent, vowel classification, etc). Ideally just collecting some existing methods.
  • Media player that does a sensible job organising recordings from the traditional classical canon. I made this dataset (related code project) while thinking about this once, but it didn't go far. I'd like to revisit it.