Consider the Happy Birthday tune in the figure below.

Happy Birthday

Suppose we call each note of a particular duration a state. For example, all eigth-notes constitute one state. We would like to compute the likelihood that an eigth-note will be followed by another eight-note, by a quarter-note, or by a half-note. One way of doing it is by just counting how many times an eigth-note is followed by each of the other note values at hand and then writing down that information in the form of an array of values, like the one below:

The array above reads: in the Happy Birthday song, there are four eigth-notes that follow an eigth-note, four quarter-notes that follow an eigth-note, and zero half-notes that follow an eigth-note. We can certainly then extend this array to a table in which every line represents the same procedure we just did for eight-notes, applied respectively to quarter and half-notes. This table would then be:

Similarly, the second array above reads: there are four eigth-notes thar follow an eigth-note, four quarter-notes that follow an eigth-note, and zero half-notes that follow an eigth-note; one eigth-note that follows a quarter-note, ten quarter-notes that follow a quarter-note, and three half-notes that follow a quarter-note; finally, there are three half-notes that follow an eight-note, zero half-notes that follow a quarter-note, and zero half-notes that follow a half-note. You should inspect the score to see this is accurate.

Now if we forget about the original Happy Birthday tune at this point, we can compose a somewhat new song based on the table of probabilities alone, that is, we can use the information we stored in the table to trigger a random process. The chain of transitions from one state to the next based on a table of probabilities like the one we just computed is called a Markov chain. In order to implement a Markov chain in Max, we use two objects, namely the anal and the prob.

News & Events

Subscribe at the bottom of the page to be informed of news as they arrive.

RunloopSound Released on the App Store

Aug 12, 2016

RunloopSound brings the world of Csound to iOS devices. With a gorgeous user interface and complete integration to all major cloud providers, RunloopSound allows you to keep designing incredible sounds wherever you go.

Read more

Unbalanced Connection 57

Feb 19, 2016

The Unbalanced Connection is a semiannual series of concerts hosted by the University of Florida and dedicated to electroacoustic music.

Read more

Society of Composers, Inc.

Mar 15, 2014

Read more

O Guri Takes Over Portugal!

Oct 8, 2012

Read more

Première of O Guri in Bagé

Jul 7, 2011

O Guri is a feature film directed by Zeca Brito whose original music was written by me.

Read more