Text only

CM30076 / CM30082
Individual Project

Project Ideas

Prof. John ffitch



Agent-based Composition
Prereq: The agents course
There have been a number of recent agent systems to produce sounds (eg Cyber Sound Project -- www.csp.sfc.keio.ac.jp and paper in ICMC) but they are usually musically bad. By using a just intonation process it should be possible to generate ambient sounds that are pleasing. There are a couple of models, but the real challenge is to provide some global structure.
Spectral Editor
Prereq: C, C++ or similar; graphics.
One is familiar with sound editors but spectral editors are rarer. There is a good model in SPEAR but that runs on OSX and Windows only. A platform-independent partial track editor would be very useful.
Sound Classification
Prereq: Java; music/dsp a help
The classifications of sound (genre) is a big subject. The ACE system provides a structure to handle the mechanisms, and provides some basic classifiers. The project is to deploy this and check that it can work, for example, for the AGULA free song collection, or URB.
Pitch Tracking
Prereq: Music/DSP, some maths.
Traditionally pitch tracking has been done with autocorrelation, with a few attempts with FFTs or wavelets. Recent work on the Sliding DFT opens an alternative approach. Project is to implement the SDFT pitch tracker and compare with autocorrelation.
UPIC Clone
Prereq: C programming; knowledge of graphics and music useful.
A clone of UPIC or HyperUPIC, an interesting graphics-to-music systems designed by Iannis Xenakis.
Prereq: C programming; knowledge of graphics and music useful.
IBSEN is a spectral language which I have been considering for some years. It could involve graphics.
Sound Understanding
Prereq: C programming; knowledge of Music useful
Understanding a street scene is extremely hard. However if the input sound is simple (monophonic music, known tuning) it may be much easier. Investigate whether simple melodies can be understood from synthetic sources, and develop.
Prereq: Knowledge of parsing, XML
Csound is usually considered to be hard to learn. Some people advocate a graphical front-end, but that is also restrictive. Using the Diag program, develop an abstract XML representation, so editing can be via graphics or via text editing.
Filter Design
Prereq: C programming; Music/DSP useful
Turn Meteor or Ellf filter design program into a useful program, preferably generating Csound filters.
Instruments with Understanding
Prereq: C programming; Music/DSP useful
There is a desire for instruments in csound that understand their amplitude response, pitch response etc. The project is to devise instrumentation systems to scale instruments for use in the performance agent system.
Algorithmic Composition
Prereq: Musical knowledge
Construct programs to compose music in any one of the myriad of styles. Possibilitiesd include jazz-improvisation, free jazz, harrmonisation, orcheatration, dance music, chaotic structures......
Sonnification (I)
Prereq: Numeracy
The ear is very sensitive, and it can be used to understand data. Sonnification is the process of constructing sound from (large) data sets. Mapping the numbers to sounds can be challenging, but the idea is to allow different flights through the data.
Sonnification (II)
Prereq: not much
Similar to the previous project idea, but take pictures -- 2D computer pictures for example -- as the input data


Emacs Mail Organiser
Prereq: Knowledge of LISP, especially emacs LISP
I read mail in emacs using the long-standing RMAIL format. This allows messages to be labelled with tags, and displayed via tags. I have a draft program to organise tags, count messages with each tag etc. The project is to take this program and tidy it up, and extend with new organisational features.
A Virtual Library
Prereq: Perl or CGI programming. Web
Starting from the existing collection of virtual libraries, create a deployable virtual library.

Area: Compilation and Languages

Instruction Scheduler for SHARC
Prereq: Stage IV compiler
The SHARC processor can do up to 4 instructions simultaneously. The project is to take assembler and generate better assembler.
Byte-coded C system
Prereq: Stage IV compiler
Compile C into a byte code stream, with an interpreter. Use the NCC or GCC front end so this is a project in code generation.
Csound compiler
Prereq: Yr2 compilers
The Csound parser is old and difficult to maintain. I have a draft YACC parser but there is a need to deploy this compiler, linking into the current code, with sufficient semantic analysis.