Now this is some DIY.
http://video.google.com/googleplayer.swf?docId=8393403029360051976
From the article:
What it does? Basically:
* Navigate around, collect some data, avoid obstacles, until it
* Finds something "worth playing on" (a single isolated object or a wide flat surface that it can find an angle onto)
* Snakes into place
* Plays some beats on what it have found, and samples this, checking it has a "good sound"
* Based on data collected in the area, and sample just made, then compose a little rhythm, and plays this along with the sample