Abstract
Most people can sing or hum a song that they are familiar with. However, it is rather difficult, if not impossible, for common people without formal music skills or training to compose a song. To be able to do this, they need to use a keyboard to produce a melody, analyze its chords, and then add accompaniment via physical musical instruments or computer software. This series of actions require years of practice and experience. In this thesis, we have constructed a system that can convert a user’s humming into music score that contains a melody track and appropriate accompaniments. First of all, a user can hum to the microphone directly and the system will do pitch tracking and note segmentation to identify music notes and measures. In the second step, the system will analyze each measure’s music note and find the chord candidates as well as associated probabilities based on music theory and statistics from a set of sample music. Finally, the system will use dynamic programming to find the best chord sequence based on chord state probabilities and chord transition probabilities. Subjective tests on the resultant music show that the automatically generated chords are satisfactory for most common users.