ISE599: Engineering Approaches to Music Perception and Cognition

Final Projects (5 May 2003)

Mu R us by Yun-Ching CHEN
The purpose of this project is to experience the music with eyes. To accomplish this objective, at each given time, we first extract a center of effect (CE), which spatially represents the summary information of melody up to now, out of the input music. Next, we calculate the distances between the previous and current CEs, and translate the distances into a rotation angle. By drawing the changes of angles on a 3D trajectory, users could feel the music as riding on a path of chords. [ screenshot ]

Generating Melodies By Genetic Algorithms by Cindy LEE
Genetic Algorithm is considered an efficient search method. Here it is used for automatic composition. Given a chord progression, this program will generate jazz-like melodies. Users can customize the melodies by specifying contour, speed...etc. In this project, the mutation operators are music related, including changing and sorting musical elements, swap and restricted copy. The fitness is evaluated by qualities which people generally consider a pleasant melody owns.

Piano R Us by Andy LEE and Frances KAO
This is an interactive companion program for use while practicing piano. Using Java MIDI package, this program can show you the note progression of a MIDI piece on the interface, save your playing, also let you play on keyboard along with some pre-recorded songs. Response to users' performance and comparison with original melodies is also possible. [ description | screenshot ]

Re-Inventing Bach by Arpi MARDIROSSIAN
This project generates music with Java. The patterns of pitches to play are chosen by selecting triangular groups of pitches from the Harmonic Network. Each selected group must be a 'neighboring' triangular group to the previously selected group. Duration patterns are also selected for each group.

A Project About Chord Recognition by Xumei TAN and Zhenyao MO
In this project we try to recognize the chords in a piece of music. Then we visualize the results in a harmonic network. Also, along with the current chord, we show the predictions of Piston table: what's the next possible chord.

Query-by-Humming: Query Engine and Transcription by Erdem UNAL
In this project I had the chance to code my algorithms and test it. The idea is to search the humming sample in a database. Rather than searching the whole piece (the information that we get by the signal processing tools-time and frequency) I claimed, retreiving characteristic feature at the local points where the hummer achieved the highest frequency differential in semitones and gather these local points as a package and search this package into the database, where I tested 25 humming pieces in a database of 6 melodies and I got a hit rate of %96. Future work includes the extension of the databse and creating alternative characteristic vectors about timing as well as frequency contour.

VoSA - Voice Separation Analyzer by Phillip WU
Project VoSA was initiated for voice separation of polyphonic music. A new voice separation algorithm was developed, which is mainly composed of Dynamic Quantizing Technique, Separation of Voice Synchronism Phase, and Separation of Voice Transition Phase. A multimedia user interface on JAVA platform was developed to demonstrate the outputs of the algorithm. And the result of this new approach was satisfied after a limited evaluation. [ screenshot | GUI ]

Identifying Parent Classes of Melodies in Indian Classical Music by Shivani YARDI
This project aims at mapping a melody ( set in an 'incomplete' scale ) of the raaga in Indian Classical Music to its parent class ( comprising of a complete or heptatonic scale) by comparing the pitch information in both. The database consists of the scales of all the parent classes in MIDI format; the input data is also recorded as MIDI. The comparison was done by converting recorded MIDI information to text files. This was a stepping stone towards trying to build a system that can effectively handle voice data as well as music data continuous in time. The purpose of identifying such parent classes is to be able to link a melody to other melodies evoking a similar emotion.

Posted 5 May 2003