BeatBender is a computer music project that explores a new method for generating emergent rhythmic drum patterns using the subsumption architecture. Rather than explicitly coding symbolic intelligence into the system using procedural algorithms, BeatBender uses a behavior-based model to elicit emergent rhythmic output from six autonomous agents. From an artistic perspective, the rules used to define the agent behavior provide a simple but original composition language. This language allows the composer to express simple and meaningful constraints that direct the behavior of the agent-percussionists. From these simple rules emerge unexpected behavioral interactions that direct the formation of complex rhythmic output. What is striking is that these rhythmic patterns, whose complexity is beyond human grasp, are both musically interesting and aesthetically pleasing.
The following section demonstrates an example of the complex rhythmic output the system is capable of generating. The composition below utilizes five rules applied to each of the six agents in the system. The rules make comparisons between adjacent agents and depending on their states (either on or off) the current agent’s state is changed.
The rules used in the final composition are represented below in textual as well as both visual and audio format. The visual representation uses the characters “X” and “_” to represent ON and OFF states respectively. In the textual descriptions the following abbreviations are used:
P = Previous Agent
N = Next Agent
final composition
The following composition results in a rhythm that plays 38,387 beats before repeating.
Uses 5 subsumption layers with the following rules:
RULE ONE: IF P=OFF THEN ON
RULE TWO: IF N = OFF THEN ON
RULE THREE: IF P = N THEN FLIP
RULE FOUR: IF P = OFF THEN FLIP
RULE FIVE: IF N = OFF THEN FLIP
Listen to Rhythm (MP3)
Visual Representation of Rhythm
rule one
IF P=OFF THEN ON
Length of Cycling Pattern: 6 Beats
X _ X _ X _
Listen to Rhythm (MP3)
rule two
IF N = OFF THEN ON
Length of Cycling Pattern: 6 Beats
X X X X X _
Listen to Rhythm (MP3)
rule three
IF P = N THEN FLIP
Length of Cycling Pattern: 60 Beats
X _ X _ X X
X X X X _ X
_ X _ _ _ _
_ _ X _ X _
X X X X X X
_ X _ X _ _
_ _ _ _ X _
X _ X X X X
X X _ X _ X
_ _ _ _ _ _
Listen to Rhythm (MP3)
rule four
IF P = OFF THEN FLIP
Length of Cycling Pattern: 63 Beats
X _ X _ X _ _ X X
_ _ X _ _ _ X _ _
X _ X X _ X X _ _
_ X X X _ X _ _ _
_ X X _ X _ X X X
_ _ X X X X _ X X
X X X _ _ _ _ _ _
Listen to Rhythm (MP3)
rule five
IF N = OFF THEN FLIP
Length of Cycling Pattern: 63 Beats
X X X X X _ X X X
X _ _ X X X _ X _
X X _ _ _ _ X _ X
X X _ _ _ X X _ X
X _ X _ _ X _ _ _
X _ _ X X _ _ X _
X _ X _ _ _ _ _ _
Listen to Rhythm (MP3)
Publication: BeatBender: Subsumption Architecture for Autonomous Rhythm Generation.