No, this isn’t a polemic against complex rhythmic notation or the New Complexity. Since the 80s I’ve been a fan of such music, even if as a composer I don’t generally employ its techniques. Most of the arguments against “impenetrable” rhythmic complexity have been demolished by the simple passage of time coupled with a continued interest in the music. A considerable number of top-notch performers want to perform and record the best of this music because, we must assume, it has significant musical depth and aesthetic richness. A compelling defence of the New Complexity is found in Stuart Duncan’s article To Infinity and Beyond: A Reflection on Notation, 1980s Darmstadt, and Interpretational Approaches to the Music of New Complexity. The most salient point for me is that the assumptions of some of complexity’s opponents—for example, that the notation somehow imprisons the performer in a symbolic system so micro-managed that there is no room left for interpretational freedom—is actually quite the opposite of the case. As with any complex text, the web of possible interpretations and meanings leads to a quite personal and multi-faceted but by no means arbitrary understanding on the part of anyone who grapples with it. By necessity, making sense of such a text involves creative and flexible engagement. One view of the matter with regards to complex music is that such an engagement should be aimed less at some notion of a faithful rendition of a precisely notated musical vision and more at an exploration of what the notation suggests or might achieve in terms of both physical and musical gesture.

It’s true that my own music of late—such as you are coming into us who cannot withstand you and for rei as a doe—has been exploring much simpler rhythmic relationships than my music of, say, the late 90s and early 00s. But this post is mainly about exploring through software the beautiful yet complex relationships that can arise from the expression of rhythms as divisions of simple durations into equally simple integer proportions, such as

(2 ((3 (1 1 1 1)) (6 (1 1 1)) (4 (1 1 1 1 (1) (1) 1)) (7 (1 1 1 (1) 1 1)))) =


More on how that list translates into the rhythmic notation is given below. For now let’s draw our attention to a slightly simpler example which I’m thinking of working up into a 3-4 minute transcription (by hand) for small ensemble, something quite tongue-in-cheek, fun, even ‘encore’-like.

I’ve created the following test piece by dividing a 3/4 bar into the proportions 3:6:4:5. Through a technique involving wrapped permutations—I call it jitterbug, hence the image above; I’ll release the code for this some time in the future, when I’ve explored and refined it enough to render a proper piece or two—I’ve generated 24 bars or, in slippery chicken terms, rhythmic sequences, which I then transition through using slippery-chicken’s fibonacci-transitions routine to create a 100-bar short piece with clear repetitive oppositions. The pitches are generated via a ring modulation method which generates harmonic sequences. These are transitioned through in parallel to the rhythm sequences, in order to strengthen the sense of repetition and therefore the internal dialogue within the musical structure.



Beginning of the test score. Click for the full PDF.


Here’s a version generated with marimba samples:


And here’s one generated with glitchy samples (my favourite of the two):


What I enjoy about these results is the sense of flexible and constantly shifting micro-pulse: groups of several notes move at the same speed before slipping a gear, notching it up, slipping again, and so on. There’s something quite natural sounding (oh dear…) about this, something reminiscent of the kinds of rhythmic, metrical, or tempo relationships I hear in certain improvisations. These are often hard to capture or represent in conventional notation. Of course there’s still lots of potential here for the macro-organisation of tempo and dynamic—both are missing from the examples up to now. (Furthermore, because of the nature of the samples, in neither sample mockup will the pitch correspondence to the score (register in particular) be absolutely faithful, but as pitch repetition relationships are clear and this is intended to be more percussive and rhythmically driven, this isn’t a great loss here.)

Alternative Tuplet Notation: RQQ

The RQQ approach will probably be familiar to composers who have worked with IRCAM’s Patchwork/OpenMusic, especially those with a New Complexity leaning. I first came across it in Patchwork in 1995, when I noticed that this particular piece of IRCAM software used Bill Schottstaedt’s CMN (also a core part of slippery chicken) for the definition of rhythms and their rendering into notation. RQQ (Rational Aliquot Quarter?) was Bill’s invention, in response to a request from (if Bill’s memory serves him correctly) Walter Hewlett (son of Bill, of Hewlett-Packard fame). IRCAM, specifically Gerard Assayag, then made some improvements and incorporated it into their own software.

With RQQ notation, any arbitrarily nested rhythmic structure can be expressed in simple proportions. In slippery chicken this kind of notation can be used in the definition of rthm-seqs and freely mixed with the kind of notation we’ve been discussing thus far. This will be available in the upcoming 1.0.6 release:

:rthm-seq-palette '((1 ((((4 4) (4 (1 1 1 1))))))
		    (2 ((((4 4) (4 (1 1 1 (1 (1 1))))))))
		    (3 ((((4 4) (4 (1 1 (2 (1 1 1))))))))
		    (4 ((((4 4) { 3 (te) { 3 (18) 36 } { 3 - 36 36 36 - } }
			  (1 ((4 (1 (1) 1 1 1)) (5 (1 1 1 1))))
			  (1 (1 (3 (1 1 1 1))))
			  { 5 fs x 5 })))))


Here the definition of rhythms is made via integer divisions of a given number of quarter notes. The first example is the simplest. This is a 4/4 bar of four quarter notes, but instead of q q q q we write (4 (1 1 1 1)). The first 4 in this list indicates that we’re going to divide up 4 quarter notes. The following list of ones indicates that the four quarter note duration will be divided into four equal rhythms (i.e. totalling a whole note). So as bar 1 of the notation shows, we simply get four quarter notes.

The second example/bar (4 (1 1 1 (1 (1 1)))) proceeds similarly but this is where the nesting comes in: the last quarter note is subdivided into two equal parts (i.e. eighth notes), as indicated by the extra level of nesting here: the list (1 (1 1)).

The third example (4 (1 1 (2 (1 1 1))))) shows how this type of rhythmic notation can quickly and easily lead to tuplets and much more complex rhythmic structures (so-called irrational rhythms): Here the 4/4 bar is divided into three parts in the proportions 1:1:2. The final 2 (or half note) is itself subdivided into three equal parts, hence the triplet quarter notes in the generated notation.

The fourth example takes quite a leap. It shows first of all how standard slippery chicken rhythm notation can be mixed with RQQ notation: The first and last beats of normal notation frame two separate beats of RQQ notation. Each of these occupies a quarter note (hence the 1 at the start of both lists) but their subdivisions are quite different. ((4 (1 (1) 1 1 1)) (5 (1 1 1 1))) is interesting first of all as it shows that rests can be indicated in RQQ notation just as in normal slippery chicken notation, i.e. by placing the rhythmic value in a single element list, here (1). The first RQQ quarter note then is divided into nine equal parts (as indicated by the 4 and then the 5 at the start of the two sublists and the rendering of this beat as an overall 9:8 tuplet). The four is further subdivided into five equal parts, hence the 5:4 quintuplet bracket in the notation. The five is conversely divided into four equal parts, hence the 4:5 tuplet. The second RQQ quarter (third beat) division ((1 (1 (3 (1 1 1 1))))) necessitates no tuplets as the 1 and 3 indicate that the beat will be divided into durations of a sixteenth and a dotted eighth respectively. Note that the 1 here has no further subdivisions, hence it is rendered in notation as a simple sixteenth, whereas the 3 is further subdivided into four equal parts ((1 1 1 1)). The slippery chicken software recognises that this can be rendered as four dotted 32nds, as opposed to a 4:3 tuplet bracket (also acceptable but unnecessary).

Share Button