|  | Expresso takes a simple musical expression (literally "X") and mutates it.
	In each generation, transformations are applied to
	components of the expression.  This is a fractal technique known as an
	L-system.
	The more generations there are, the larger and
	more complex the expression gets (and the longer it can take
	to compute).
	The output varies wildly, from boring to fascinating.
	Press "Mutate" a few times
	till you get something that looks interesting, then click
	on the image to play it.  See Composer's Quarry for examples of output. 
	 |  |  |  | 
 
 | After 11 generations the expression "X" became this: |  | ((step(((transpose((X|X) ,-5) +transpose((X+X) ,-5) ) +transpose(echo((((X+transpose(X,7) ) +transpose((X+arpeggio(X) ) ,4) ) +transpose((X+transpose(X,12) ) ,7) ) ,4,6) ,12) ) ,12) +transpose(transpose(transpose((((transpose(X,-7) +echo(transpose(X,-7) ,4,6) ) +transpose(shuffle((((transpose(X,4) +transpose(X,4) ) +transpose((X+X) ,7) ) |transpose(arpeggio(X) ,-7) ) ) ,4) ) +transpose((arpeggio((X+transpose(X,12) ) ) +transpose(shuffle(arpeggio(X) ) ,7) ) ,7) ) ,-7) ,-5) ,7) ) +transpose((shuffle(arpeggio(transpose(shuffle(transpose(((X|X) +transpose(X,7) ) ,4) ) ,-5) ) ) +transpose(arpeggio(shuffle(echo(((transpose((X+X) ,-7) +(shuffle(X) +transpose(transpose(X,-5) ,7) ) ) +transpose(shuffle((X+transpose(X,12) ) ) ,12) ) ,4,6) ) ) ,12) ) ,7) ) random seed used was 151282763
 | 
 
 
 
The algorithm for Expresso is written in
KeyKit, and
here's the source code.
 |  |  |  |