News » 23 October 2008

Reducing Musical Redundancy

This pattern:

is just these notes: where for each note, these notes are played:

The Cosy sequencing language can express this reductive concept in a straightforward way:

(C Db D Db)@($ F G Ab G F)

Specifically, this means to play the second list once for each item in the first list. The '$' gets replaced with the current item from the first list:

C F G Ab G F Db F G Ab G F D F G Ab G F Db F G Ab G F

which is the pattern at the top of this article.

I feel that this is so much easier than drawing notes on a piano roll or using a tracker. It's easier than programming using a verbose music composition toolkit in some full-fledged programming language. And it more closely matches my mental representations of the music. This ease and succinctness is important for me to be able to quickly capture ideas as the come to mind.

You can try this out with the Cosy Online Preview (see the "for-each" example).