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
The more generations there are, the larger and
more complex the expression gets (and the longer it can take
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 14 generations the expression "X" became this:|
| transpose((arpeggio((echo(shuffle((X+transpose(((X|X) +transpose((X|X) ,7) ) ,7) ) ) ,4,6) +step(arpeggio(((X+transpose(X,12) ) +transpose(step(X,12) ,12) ) ) ,12) ) ) +(echo(((step(transpose(X,4) ,12) |(transpose(X,-7) +transpose(transpose(transpose((X+transpose(X,12) ) ,-7) ,-5) ,7) ) ) +((X+transpose(X,7) ) +transpose(shuffle(transpose((X+X) ,-5) ) ,7) ) ) ,4,6) |transpose((transpose(transpose((X|transpose(X,-7) ) ,4) ,-5) |((transpose(X,4) +(X+transpose(X,7) ) ) +(X+arpeggio(X) ) ) ) ,4) ) ) ,-5) |
random seed used was 160213923
EXPR = shuffle(shuffle(transpose(transpose(transpose(((step(echo(transpose(X,4) ,4,6) ,12) +shuffle(shuffle(shuffle(X) ) ) ) +transpose(echo(arpeggio(arpeggio(transpose(echo(transpose(X,4) ,4,6) ,-5) ) ) ,4,6) ,12) ) ,-7) ,-5) ,-5) ) )
random seed used was 0
The algorithm for Expresso is written in
here's the source code.