Projects proposed for 2007/8 academic year

  1. Generating random melodies

    Melodies that are generated randomly according to a set of given parameters are a valuable tool in music analysis when they are compared to real, existing melodies.

    The outcome of this project will be the implementation and documentation of an algorithm that generates tunes (sequences of pitches and durations) through a random mechanism, where the distribution is determined by parameters. Output to MIDI would be desirable.

    Suitable for BSc (CS), good at programming and maths, some musical background.

  2. Pop song segmentation by lyrics structure

    The aim of this project is to divide the lyrics of pop songs into meaningful segments based on their internal structure. Lyrics are provided in text files for about 10000 pop songs.

    Features considered could include syntax, semantics, word repetition, clichˇ, etc. The resulting segmentation should consider likely song structures, such as intro, verse, chorus and bridge.

    Suitable for BSc (CS,CIS), good at programming, some understanding of music. AI Module would be a big help.

  3. Characterising pop song lyrics

    There are a number of characteristics of lyrics from pop songs that can be distilled automatically with standard text retrieval methods. These might include the theme/subject (happy/sad, love, dancing, religious, political/protest, etc.), musical genre, type of narrative (e.g. ballad vs. poem), and so on.

    A database of approximately 10000 pop song lyrics from the last 50 years is provided. The output of this project should be an algorithm that categorises each song lyric within a scheme of characteristic lyric features

    Suitable for BSc (CS,CIS), good at programming.

  4. A Java Toolkit for Music Representation

    Suitable for BSc CS, some formal musical background required (eg Grade 5 theory)

    After from 15 years of research, it is still not clear what is the best way to represent music on computers. Several widespread schemes exist (eg MIDI) but they are rarely general enough to serve all users needs.

    One approach which has been successful in the research world is CHARM (Common Heirarchical Abstract Representation for Music). CHARM is a specification for how music representations should be built, rather than a representation itself. Several implementations of CHARM have been made, in Prolog, Lisp and ML, but no Java version exists. This project aims to correct this situation, and make CHARM available as a general toolkit expressed as a set of Javabeans and/or applets so that it can be used more widely.

    The project will require some understanding of the issues involved in knowledge representation and of abtsract data types. A fair amount of research will be necessary as the literature on CHARM is spread through several papers. Given a suitably active student, the project may go beyond the existing specification of CHARM into new areas of application and/or representation.

    This is a challenging, open-ended project, and will best suit a student who is prepared to take the initiative in carrying out research.

  5. A Graphical Interface for Sound Design

    Suitable for BSc CS, some physics (acoustics) or musical background required

    One of the most important developments in computer music over the past 20 years was the creation of the Music N series of programming languages. The latest version if this series is CSound, designed by Barry Vercoe at MIT. CSound is a very powerful mathematical method of making sound, and can, in princple, make any possible sound or sequence of sounds.

    However, CSound suffers from a very difficult-to-use macro-language interface, due to historical legacy. This project aims to build a graphical interface (using some appropriate readily available package) to allow CSound scores and orchestras to be designed and built graphically.

    The project will involve learning about CSound and about some of the algorithms it uses; the main focus will be the design and implementation of a suitable GUI to represent sound and express the outcome of the musical score in a human-friendly way.

    This is a challenging, open-ended project, and will best suit a student who is prepared to take the initiative in carrying out research.

  6. A new algorithm for geometrical matching, applicable to bio-chemical engineering

    Suitable for BSc CS, with some basic geometry.

    Meredith et al (2001) give a computational method for the discovery of structure in databases (in this case, music, but the technique is applicable elsewhere). One proposed extension of their approach, which finds repetition under Euclidian translation in data, is to find repetition under translation and rotation. This has potential applications in Chemistry, where it is known that chemicals bond together, and the atoms which are bonding are also known, but the geometrical configuration of the match is not. Possible extensions to the project involve improving the computational complexity of the implemented algorithm.

    The project will involve understanding the existing algorithm, the geometry of the new proposal, and the implementation of the new proposal in C, C++ or Java.

    This is a well-defined implementation project, though the maths may be challenging. It is only suitable for a student with strong programming skills.

Department of Computing, Goldsmiths College, University of London, New Cross, London, SE14 6NW

Tel: +44 (0) 20 7919 7850 | Fax: +44 (0) 20 7919 7853 | Email: