This week I was reading a paper called Music Emotion Classification. I think this article is really helpful and related to my project.

In my thesis, I also would like to analyst emotion related to music. According to this article, I can understand more how to analyst music in emotion.

I also found it’s useful because in this article, it make clearly definition about each words in the topic. Such as definition of music and emotion. I think I would also need to state my definition for my topic words in my background section for people to better understand my project. In my experience of explaining my project to people. I think it’s hard for people to understand the basic terms in music theory such as chord, note, chords progression and so on. So, I would definitely add more information in my background section.


I had a meeting with prof. Ivan this week.

I had figured out how the Markov chain analysis code online worked. Also found some bugs in the code.

This is my flow chart of how my code going to work after I understood the theory of the code on this website.


I already did the part to move the tonality of each song to make it easier to gather statistics of each note.

Next step I will need to figure out how to analysis chord. I did some research and realized it’s also a big topic of Music Recognition.

Week 3

I have continued doing research on Markov-chain algorithm composition this week.

Base on the open resource on line, I did understand the basic rule of his script and also figured out some main reasons that would make his composition better.

  • Separate right hand and left hand midi track(analysis chord from melody)

  • Separate music into INTRO, VERSE, CHORUS, BRIDGE

  • Move all midi score into C major scale for data statistic

  • Generate key and tempo for the score

Since this script can only collect database from one midi score, I will need to figure out how to collect database from numerous midi score and also where I can get those scores.



I had the second meeting with my thesis advisor Prof. Ivan.

I did some research on different means of algorithm composing. So, algorithm composing have two major types:

  • The computer compose by itself.

  • Using as an aid for composing.

Also there are two majored propose of algorithm composing:

  • To provide notation information(to create scores). (this would be my main focus)

  • To provide an independent way of sound synthesis(to create new sound).

There are six ways to process data:

  • Mathematical models

    Most common way is stochastic processes

    ex: Markov Chain and Gaussian Distributions

    Using integer sequence as 12-tone equal temperment music.

  • Knowledge-based system

    Choose specific input as training data, isolate to certain music genre.

  • Grammars

  • Evolutionary methods

    Music structure is interate by transforming a simple composition into a complex one.

  • System which learn

    No giving music genre, algorithm would modeling style of the inputs.(Also mention in Sony’s flow machine)

  • Hybrid system

    No such one way could perfectly produce music by algorithm, use hybrid system would help to get more musical results. But the complexity of growing while combining different method.

Existing project:

  • Automated Composing System

    The project was did in 1994, he used TURBO C++ on DIS console.

    Based on his own music composing style, the software first generated CHORDS then draw a curve based on the chords to match the melody notes(so the music would be in tune). Then, generate rhythm by using RHYTHM PATTERN.

    What we can pick up from this project is his algorithm is based on his composing style, it also happens to be mine composing style. So, I might also could use this work flow.

  • MARKOV CHAIN example

    The person use python and MIDI library(mido) to build the software. MIDI library read midi file into a vector contain different parameters for instrument/note/duration/volume.

    In his example, he only uses one song as input data. (Too less training data would effect the result to be too similar to the data itself) So, based on the midi input, he generate a graphic for note progression.

  • Sony Flow Machine

    Sony also uses markov chain in this project. The machine generate the scores, but the composer as a human filter, will listen to the music and filter out the part that they are not satisfy with.

  • Other emotion input

    Often use machine learning to let computer learn the relation between emotion and music.

Other related research:

Some paper also talk about the authorship of the music generated by machine. I think this would also be an important topic to talk about.

Advice note:

My challenge would be to inquire MIDI scores for training data. (Too less training data would effect the result to be too similar to the data itself)

And also based on the categorize of emotion in music, it would be better if I categorize the inputs I will use to train the machine. The simpler the better.

I can also use my own music to test the algorithm to check if it does learn the traits of my composing style.

First I will build a simplest software, and then add music theory into my markov chain data sets to get more constrains. Hopefully the result would be more musical.

Also, put music theory in the data base would also help to build more musical results. I could also use existing midi data to test the simple music theory algorithm prototype to find out the random parameter. (Sometime music would sound better with those note that is out of the rules)

Video reference:

Music Geometry


Keep on researching for algorithm composing and music analysis.

I will build a prototype this week using the simplest rules.


Project proposal

This week I had a meeting with my thesis advisor Prof. Ivan. Based on the time I have to finish my thesis project, Prof. Ivan suggested me to start with a research about ALGORITHM COMPOSING. There are many existed way to use computer either as an aid or a way of composing music. The most important thing for me this week is to figure out different ways to fulfill this task and find the best way for me to do it. Here are some points that Ivan suggested:

  • Complicated algorithm might not be the best way do the task, easy algorithm might also work well

  • Which way is the best(not too complicated but also work well)?

Other suggestion:

  • Markov Chain - is commonly used in Music composition

Here is my thesis proposal that I will share with the class.

Tomorrow I will have a meeting with Prof. Ivan to discuss more about the ways of Algorithm composing and to figure out the best and doable way for me.


Hi, I’m a master student in NYU’s Integrated Digital Media.

This is a processing website where I will weekly update my thesis research and prototype.

My thesis will focus on algorithm composing. Since I am interested in pop music composing, I found out there are some patterns in pop songwriting. I think it would be interesting to use algorithm to automatically compose the music.

So, I started some research from the pre-thesis class last semester.

Here is my pre-thesis processing website & Pre-thesis presentation