Final Year Project Ideas - Simon Dixon

My main research interest is music informatics, that is, using computers to access and manipulate musical content (audio recordings, digital scores, tabs) and knowledge (metadata). I also have a background in AI. Some project ideas are listed below; please come and see me to discuss any of these or other related ideas that you might have.

Office: Engineering E201 (bridge block)
Office hours: Tue 4pm / Wed 2pm (best to mail first to confirm)

Singing in Tune

I have several ideas for projects related to intonation and singing. These could be combined or refined as necessary:
(1) Automatic evaluation of singing ability. Design a system to analyse someone singing and rate how well they sing in tune.
(2) Predict the pitch drift in unaccompanied singing given a model of intonation. This does not require any knowledge of DSP, but you would need a good understanding of music (and some basic maths/physics).
(3) Measure the intonation of intervals in unaccompanied 4-part harmony.

"Count in" App

Musicians often rehearse along with recordings of songs they are learning. It is hard to play along with the first few notes or bars, as most recordings don't warn you when they are going to start, nor how fast they will be. In a live rehearsal or performance, the drummer will often count in (e.g. "1,2,3,4") so that musicians can synchronise from the first note. The idea of this project is to analyse the rhythmic structure of the beginning of a recording and automatically create a count in which can be prepended to the recording. Once this works, it can be built into an app giving the users control over the features, parameters and error correction.

What's That Song?

There are millions of music files available on the Internet, but it is surprisingly difficult to identify the song title, composer and/or performer reliably for a large music collection. For audio recordings, fingerprinting can identify a recording if it is known in the system's database, but there is no reliable way to identify a MIDI file if it has no metadata. The aim of this project is to investigate, implement and evaluate different methods of identifying MIDI files. Other file types (tab, video, audio) could also be considered if time permits.

Guitar Tab and Fingering Generator

This project involves taking a file in MIDI format and generating a text file (or graphical representation) showing how the file could be played on the guitar. That is, for each note, the output should list the string, fret, and finger(s) which play the note. The aim is to select from the vast number of possible solutions the solution which has minimum playing difficulty and maximum musical quality. You will need to estimate a numerical difficulty for fingering each chord and performing each transition, and then use dynamic programming to find the optimal path through the solution space. The student taking this project should have some knowledge of guitar playing.

Music Rehearsal Tools

Learning to play a musical instrument involves many hours of practice, the majority of which take place alone, away from any teacher. This project examines the role (current and potential) of computers in learning musical instrument skills, including an assessment of user needs and the design and/or implementation of one or more prototypical solutions to instrument learning problems.

Music Expression Editor

The idea is to combine existing software for analysis and modification of audio data to modify the expression in performances of classical music. Programming skills (some combination of Java, C/C++ and Matlab) will be required, as well as some knowledge of music.

Web Mining of Music Information

The task is to automatically find chord symbols, lyrics, MIDI files, etc, for any song that the user is searching for. The system should not just find the relevant web page, but also extract the desired information from the page and synchronise it with other representations of the same piece.

Analysis of Symbolic Music Collections

I have several ideas about analysing large music collections in formats such as chord charts, tabs, MIDI or Band-in-a-Box.
(1) Finding patterns that represent the genre, style or composer of the music, or that are common across a range of styles.
(2) Look at errors in human annotations and categorise the types of errors and try to explain why they occur.

Interactive Alignment of Audio and Metadata

The aim is to build on the MATCH software and its extensions to produce an interactive interface for directing and correcting the automatic alignment produced by the algorithm.

Musical Structure Finder

In most music, there are sections which repeat several times throughout the piece. In popular music, these sections are usually called verses and choruses, and songs can be described concisely in terms of the order of verses, choruses and any bridge passages between them. The aim of this project is to analyse musical recordings and find the repeating patterns in the music. Good programming skills and some mathematical ability will be required for this project.

General Game Player

There are many two-player games in which the only unknown factor is the opponent's future moves (e.g. tic-tac-toe, reversi, chess, draughts, go). AI search algorithms can be used as the basis for computer algorithms to play most of these games, depending on the complexity of the game. Your job is to design a software framework for solving such games, so that new games can be implemented simply in your framework. The framework will be demonstrated by the implementation of more than one game.

Mobile Card Game

Build an application which runs on a mobile phone platform and allows users to play card games such as bridge or hearts with each other. Your project involves designing the user interface, communications protocols and security (can you stop people cheating?), and building these into an application that also acts as referee and scorekeeper.