Generative rhythm as a self-avoiding random walk

A rhythm is just a binary vector of a certain size with some of the bits turned on. The layering of rhythms is the generation of new binary vectors (each representing a new percussive instrument) that “go well” with the previous ones. Typically, one avoids having two instruments “clash,” or occur on the same beat. Therefore, the construction of rhythm is, in a sense, a kind of self-avoiding random walk on a hypercube.

For short rhythm loops (binary vectors of a small size), for example four bar loops in dance music, you can only add so many layers before you “fill up” all available space in the loop. In other words, the random walk is rather short and not very interesting. But what if we increase the length of the loop to 32 bars? Or 64, 128, 256? How would those rhythmic random walks evolve? Would such a rhythmic progression work on a dance floor?

I’ve started investigating some of these questions. You can follow my progress in this soundcloud set!

Some have helpfully pointed out that certain rhythm tracks do overlap to good effect (see the track below for example, where the clap is on every kick). This is true, but I think this sort of constraint might be interesting to consider, as self-avoiding random walks can have interesting properties, like fractal structure http://en.wikipedia.org/wiki/Self-avoiding_walk. It has also been pointed out to me that drumming with such self-avoidance is called linear drumming.

Advertisements

One comment

  1. CMLOEGCMLUIN

    (this is Doug) cool, yeah I agree — avoiding coinciding is a good constraint for this purpose! keep up the good work 🙂

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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

%d bloggers like this: