Keyboard composes its own music

Summer is right around the corner and all the final projects from electronic design classes are rolling into the tip line. This time, we’ve got [Chaorong] and [Siyu]‘s auto-composing keyboard from their time in ECE4760 at Cornell.

The keyboard has two modes: a ‘happy’ mode and a ‘tender’ mode, the difference being the tender mode is slower and sounds a little like a lullaby. After two keys are pressed, the ATMega644 figures out what key it should play in and starts generating a random-ish sounding song using a Markov probability matrix.

There’s a third option for the keyboard as well: play a short melody and the software will loop through a few permutations of the melody. After the break, you can see [Siyu] play Ode to Joy and have the autocomposer improvise around the tune. Very, very nice work and we can’t wait to see more senior design projects hit the tip line.


  1. Kevin N. Haw says:

    A very neat project – made me look up Markov Chains, so I learned something today!

    Total aside (and apologies for being pedantic), but the post title should be “its” not “it’s.”

  2. zuul says:

    pretty cool but i’m wondering why they decided to use a toy keyboard rather than using midi

    maybe they had to use hardware for their class

  3. Galane says:

    Wasn’t there something a while back about a program that composed poetry?

    Getting more into “Nineteen Eighty-Four” land…

    Press Start to Stop. Where have we seen that before? ;)

  4. James says:

    This is a great project, I love the randomness!!!!

  5. markS says:

    The Policeman’s Beard Is Half-Constructed

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,369 other followers