Projects

In the 2016-17 academic year, I am interested in supervising projects in the general areas of Music Information Retrieval, Colour and Sound Perception, Computer Language Implementation and Automated Music Processing; some project topics are suggested below:

hip-hop Twitter bot

The project aims to create an agent to participate in discussions on Twitter related to music. Specifically, can we identify participants who might be interested in some kind of music, and can we craft responses that are in any way plausible? The hip-hop community maintains an extensive online database of lyrics and analyses; the project would mine this database for textual patterns, and use it both to recognize discussions of hip-hop on Twitter and to generate responses.

Deliverables might include some of:

perceptually-motivated colour space library

This project aims to implement a set of library functions implementing perceptually-motivated colour space handling. It will: provide conversion functions between various colour spaces; be able to compute the perceptually closest representable colour in some colour space to a given input colour; functions to generate colour palletes with smoothly varying perceptual features; and may integrate with existing colour-handling peripherals.

Project deliverables might include:

hypermedia portal for renaissance polyphony session tapes

This project is to produce an interactive hypermedia portal to help navigate, interrogate and visualise a dataset of four days of audio recordings (session tapes of renaissance polyphony). Deliverables might include:

mobile phone app for music fragment recognition

This project aims to build a mobile phone application to perform efficient retrieval of musical fragments from a database, in order to provide information to Opera-goers of motifs in the music they are listening to. The student would work on processing input audio from the device's microphone, and matching it to a set of canonical examples held as part of the programme. Deliverables might include:

optical music recognition on non-traditional music notation

Optical music recognition (OMR) can be made to work acceptably on examples of standard music notation. However, music comes in a wide variety of forms, and some repertoires of music are less well-served by modern tools. The student would work with existing OMR toolsets to develop and evaluate optical music recognition methods for music notations such as tablature, mensural or neumes.

Deliverables might include some or all of:

Background reading:

Python and C++ experience recommended

music use and propagation on social media and the web

The project is to study user behaviour on music-related Social Networks, and to see if there's any useful information. As an example, consider two sites: Musicbrainz, a site where interested parties input, edit and collate metadata about audio recordings, and RapGenius, where users input, analyse and discuss the lyrics of hiphop and rock songs. Can links be made between activities on these sites? Do they share a userbase? Do the communities (on the user or the media level) have any structure in common?

Deliverables might include:

Background reading:

compilation of pD to a low-level language

The project aims to convert pD programs to a lower-level language, in the hope of making them more computationally efficient and/or more reusable. The aim would be to write a compiler for (a subset of) the graphical and reactive language pD, to produce a program with the same effect but written in a language of your choice (such as C++, Java or LLVM IR). Deliverables might include:

sonnet rhyme scheme detection from spoken poetry

The idea of this project is to implement a system which, to the extent possible, determines the rhyme scheme used in a sonnet given a spoken word recording of it. The sonnet might in principle be in English, Italian or Urdu (or indeed other languages).

Deliverables might include some of:

a bot for a roguelike game

Roguelike games have simple interaction and very complex mechanics; it is very hard to write an implementation of good, let alone optimal play. This project is about exploring the space of artificial intelligence techniques that can be applied to roguelikes, in particular to Dungeon Crawl: Stone Soup, which has a lua scripting interface available to players. Deliverables might include some of:

interactive fiction and real space

This project aims to augment an engine for running parser-based interactive fiction with ways of interacting with the engine based on geolocation or other aspects of real space. The engine will need extending to be able to accept input of other kind than text; this can be done along the lines of Andrew Plotkin's modifications for the commercial game Hadean Lands. Deliverables might include some or all of:

randomized testing of lisp compilers and interpreters

Lisp is a programming language with the unusual property that programs written in it are represented as data structures that other Lisp programs can manipulate; this gives programmers the ability to write programs that interrogate or transform other programs. This project would develop systems for automatically generating Lisp programs, and verifying that their evaluation by contemporary Lisp systems is correct, where this is provable, or at least consistent with different implementation strategies.

Deliverables:

Background reading: