Music 270c: assignment 3


One of two things, depending on whether you'd rather do something audio or something symbolic.


Here is a pitch/amplitude trace of this short, emotive sung phrase. The first column in the text file is the pitch (MIDI), and the second and thirs are RMS linear amplitude estimates. (Second column is total RMS amplitude and third one is the RMS total of the first 9 harmonics of the detected pitch, which should be a better measure of the loudness of the voice separated out from the background noise.) Each line is one 10.667-msec time slice.

The challenge is to make a saxophone play the line using the analysis as pitch and amplitude, for example using an artificial neural network inspired from the Lee/Wessel paper. Here's my horrible result, which I got using the patches in the "fann" subdirectory of the example patches.


Take as input a melodic contour consisting of 29 MIDI pitches. Output a set of 29 pitches that (1) approximate the melodic contour but (2) have sensible intervals (whatever that means), (3) have a believable harmonic trajectory, and (4) have 2 or more instances of transposed repetition (same intervals starting from different starting pitches, but without repeating yourself un-transposed. This will make an 8-measure melody of 28 quarter notes and a whole note to finish.

Two possible ways to do this: 1. write a function that evaluates any array of 29 notes as to how well it fits the criteria, and use one or another optimization algorithm to maximize the "quality" the function returns; or 2. train a Markov chain (1 or 2 deep, say) from a Bach 2-part invention, top line, and run the Viterbi algorithm on it as an HMM with the contour as the "observed" output.

(I don't have good examples of either of these yet.)