{"id":598,"date":"2015-07-08T12:20:10","date_gmt":"2015-07-08T12:20:10","guid":{"rendered":"http:\/\/michael-edwards.org\/wp\/?p=598"},"modified":"2019-06-21T11:24:23","modified_gmt":"2019-06-21T10:24:23","slug":"keep-it-simple-complex-rhythmic-notation","status":"publish","type":"post","link":"https:\/\/michael-edwards.org\/wp\/?p=598","title":{"rendered":"Keep it Simple: Complex Rhythmic Notation in Common Lisp"},"content":{"rendered":"<p>No, this isn&#8217;t a polemic against complex rhythmic notation or the <a href=\"https:\/\/en.wikipedia.org\/wiki\/New_Complexity\" target=\"_blank\" rel=\"noopener noreferrer\">New Complexity<\/a>. Since the 80s I&#8217;ve been a fan of such music, even if as a composer I don&#8217;t generally employ its techniques. Most of the arguments against &#8220;impenetrable&#8221; rhythmic complexity have been demolished by the simple passage of time coupled with a\u00a0continued interest\u00a0in the music. A considerable\u00a0number\u00a0of top-notch performers want to perform and record the best of this music because, we must assume, it has significant\u00a0musical depth and aesthetic richness. A\u00a0compelling defence of the New Complexity is found in Stuart Duncan&#8217;s article\u00a0<em><a href=\"http:\/\/www.searchnewmusic.org\/duncan.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">To Infinity and Beyond: A Reflection on Notation, 1980s Darmstadt,<\/a>\u00a0<\/em><em><a href=\"http:\/\/www.searchnewmusic.org\/duncan.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">and Interpretational Approaches to the Music of New Complexity<\/a>. <\/em>The most salient point for me is that the assumptions of some of complexity&#8217;s opponents&#8212;for example, that the notation somehow imprisons the performer in a symbolic\u00a0system so micro-managed that there is no room left for interpretational freedom&#8212;is actually quite the opposite of the case. As with any complex text, the web\u00a0of 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\u00a0with 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\u00a0engagement 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.<\/p>\n<p>It&#8217;s true that my own music of late&#8212;such as\u00a0<em><a title=\"you are coming into us who cannot withstand you\" href=\"https:\/\/michael-edwards.org\/wp\/?p=46\" target=\"_blank\" rel=\"noopener noreferrer\">you are coming into us who cannot withstand you<\/a><\/em>\u00a0and <a href=\"https:\/\/michael-edwards.org\/wp\/?p=131\" target=\"_blank\" rel=\"noopener noreferrer\"><em>for<\/em> <em>rei as a doe<\/em><\/a>&#8212;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<\/p>\n<p>(2\u00a0((3 (1 1 1 1)) (6 (1 1 1)) (4 (1 1 1 1 (1) (1) 1))\u00a0(7 (1 1 1 (1) 1 1)))) =<\/p>\n<p><a href=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-eg.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-606 size-full\" src=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-eg.png\" alt=\"jitterbug-eg\" width=\"494\" height=\"128\" srcset=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-eg.png 494w, https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-eg-300x78.png 300w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><\/a><\/p>\n<p>More on how that list translates into the rhythmic notation is given below. For now let&#8217;s draw our attention to a slightly simpler example which I&#8217;m thinking of working up into a 3-4 minute transcription (by hand) for small ensemble, something quite tongue-in-cheek, fun, even &#8216;encore&#8217;-like.<\/p>\n<p>I&#8217;ve created the following test\u00a0piece by\u00a0dividing a 3\/4 bar into the proportions 3:6:4:5. Through a technique involving wrapped permutations&#8212;I call it <em>jitterbug<\/em>, hence the image above;\u00a0I&#8217;ll release the code for this some time in the future, when I&#8217;ve explored and refined it enough to render a proper piece or two&#8212;I&#8217;ve generated 24 bars or, in\u00a0<em><a href=\"http:\/\/www.michael-edwards.org\/sc\" target=\"_blank\" rel=\"noopener noreferrer\">slippery chicken<\/a><\/em> terms, rhythmic sequences, which I then transition through using <em>slippery-chicken&#8217;s\u00a0<\/em><em><a href=\"http:\/\/michael-edwards.org\/sc\/manual\/intraphrasal-loops.html#fibonacci\" target=\"_blank\" rel=\"noopener noreferrer\">fibonacci-transitions<\/a>\u00a0<\/em>routine to create\u00a0a 100-bar short piece with clear repetitive oppositions. The pitches are generated via a\u00a0<em><a href=\"http:\/\/michael-edwards.org\/sc\/robodoc\/set-palette_lsp.html#set2dpalette2fset2dpalette2dfrom2dring2dmod\" target=\"_blank\" rel=\"noopener noreferrer\">ring modulation<\/a>\u00a0<\/em>method which generates harmonic sequences. These are transitioned through in parallel to\u00a0the rhythm sequences, in order to strengthen the sense of repetition and therefore the internal dialogue within the musical structure.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_604\" aria-describedby=\"caption-attachment-604\" style=\"width: 1016px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-test-score.pdf\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-604 size-full\" src=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-score.png\" alt=\"jitterbug-score\" width=\"1016\" height=\"634\" srcset=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-score.png 1016w, https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-score-300x187.png 300w, https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/jitterbug-score-768x479.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/a><figcaption id=\"caption-attachment-604\" class=\"wp-caption-text\">Beginning of the test score. Click for the full PDF.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Here&#8217;s a version generated with marimba samples:<\/p>\n<!--[if lt IE 9]><script>document.createElement('audio');<\/script><![endif]-->\n<audio class=\"wp-audio-shortcode\" id=\"audio-598-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/michael-edwards.org\/stopen\/michael\/jitterbug-marimba.mp3?_=1\" \/><a href=\"http:\/\/michael-edwards.org\/stopen\/michael\/jitterbug-marimba.mp3\">http:\/\/michael-edwards.org\/stopen\/michael\/jitterbug-marimba.mp3<\/a><\/audio>\n<p>&nbsp;<\/p>\n<p>And here&#8217;s one\u00a0generated with glitchy samples (my favourite of the two):<\/p>\n<audio class=\"wp-audio-shortcode\" id=\"audio-598-2\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/michael-edwards.org\/stopen\/michael\/jitterbug.mp3?_=2\" \/><a href=\"http:\/\/michael-edwards.org\/stopen\/michael\/jitterbug.mp3\">http:\/\/michael-edwards.org\/stopen\/michael\/jitterbug.mp3<\/a><\/audio>\n<p>&nbsp;<\/p>\n<p>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&#8217;s something quite natural sounding (oh dear&#8230;) 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&#8217;s still lots of potential here for the macro-organisation of tempo and dynamic&#8212;both are missing from the examples up to now.\u00a0(Furthermore, because of the nature of the samples, in neither sample mockup\u00a0will the pitch correspondence to the score\u00a0(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&#8217;t a great loss here.)<\/p>\n<h2>Alternative Tuplet Notation: RQQ<\/h2>\n<p>The RQQ approach will probably be\u00a0familiar to composers who have worked with <a href=\"http:\/\/www.ircam.fr\" target=\"_blank\" rel=\"noopener noreferrer\">IRCAM&#8217;s<\/a> <em>Patchwork\/OpenMusic<\/em>,\u00a0especially those with a <em>New Complexity<\/em> leaning. I first came\u00a0across it in <em>Patchwork<\/em> in 1995, when I noticed that this particular piece\u00a0of IRCAM software used Bill Schottstaedt&#8217;s CMN (also a core part of\u00a0<em>slippery chicken<\/em>) for the definition of rhythms and their\u00a0rendering into notation. RQQ (Rational Aliquot Quarter?) was Bill&#8217;s invention, in response to a\u00a0request from (if Bill&#8217;s memory serves him correctly) Walter Hewlett\u00a0(son of Bill, of Hewlett-Packard fame). IRCAM, specifically Gerard\u00a0Assayag, then made some improvements and incorporated it into their own\u00a0software.<\/p>\n<p>With RQQ notation, any arbitrarily nested rhythmic structure can be\u00a0expressed in simple proportions. In <em>slippery chicken<\/em> this kind\u00a0of notation can be used in the definition of <code>rthm-seqs<\/code> and\u00a0freely mixed with the kind of notation we&#8217;ve been discussing thus\u00a0far. This will be available in\u00a0the upcoming 1.0.6 release:<\/p>\n<pre class=\"source\">:rthm-seq-palette '((1 ((((4 4) (4 (1 1 1 1))))))\r\n\t\t    (2 ((((4 4) (4 (1 1 1 (1 (1 1))))))))\r\n\t\t    (3 ((((4 4) (4 (1 1 (2 (1 1 1))))))))\r\n\t\t    (4 ((((4 4) { 3 (te) { 3 (18) 36 } { 3 - 36 36 36 - } }\r\n\t\t\t  (1 ((4 (1 (1) 1 1 1)) (5 (1 1 1 1))))\r\n\t\t\t  (1 (1 (3 (1 1 1 1))))\r\n\t\t\t  { 5 fs x 5 })))))\r\n<\/pre>\n<p><a href=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/rqq.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-603\" src=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/rqq-1024x167.png\" alt=\"rqq\" width=\"620\" height=\"101\" srcset=\"https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/rqq-1024x167.png 1024w, https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/rqq-300x49.png 300w, https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/rqq-768x125.png 768w, https:\/\/michael-edwards.org\/wp\/wp-content\/uploads\/rqq.png 1067w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Here the definition of rhythms is made via integer divisions of a\u00a0given number of quarter notes. The first example is the simplest. This\u00a0is a 4\/4 bar of four quarter notes, but instead of <code>q q q q\u00a0<\/code>we write <code>(4 (1 1 1 1))<\/code>. The first 4 in this list indicates\u00a0that we&#8217;re going to divide up 4 quarter notes. The following list of\u00a0ones indicates that the four quarter note duration will be divided into\u00a0four equal rhythms (i.e. totalling a whole note). So as bar 1 of the\u00a0notation shows, we simply get four quarter notes.<\/p>\n<p>The second example\/bar <code>(4 (1 1 1 (1 (1 1))))<\/code> proceeds similarly but this is where the nesting comes in: the last quarter note\u00a0is subdivided into two equal parts (i.e. eighth notes), as indicated by\u00a0the extra level of nesting here: the list <code>(1 (1 1))<\/code>.<\/p>\n<p>The third example <code>(4 (1 1 (2 (1 1 1)))))<\/code> shows how\u00a0this type of rhythmic notation can quickly and easily lead to tuplets\u00a0and much more complex rhythmic structures (so-called irrational\u00a0rhythms): Here the 4\/4 bar is divided into three parts in the\u00a0proportions 1:1:2. The final 2 (or half note) is itself subdivided into\u00a0three equal parts, hence the triplet quarter notes in the generated\u00a0notation.<\/p>\n<p>The fourth example takes quite a leap. It shows first of all how\u00a0standard <em>slippery chicken<\/em> rhythm notation can be mixed with\u00a0RQQ notation: The first and last beats of normal notation frame two\u00a0separate beats of RQQ notation. Each of these occupies a quarter note\u00a0(hence the 1 at the start of both lists) but their subdivisions are\u00a0quite different. <code>((4 (1 (1) 1 1 1)) (5 (1 1 1 1)))<\/code> is\u00a0interesting first of all as it shows that rests can be indicated in RQQ\u00a0notation just as in normal <em>slippery chicken<\/em> notation, i.e. by\u00a0placing the rhythmic value in a single element list, here\u00a0<code>(1)<\/code>. The first RQQ quarter note then is divided into nine\u00a0equal parts (as indicated by the 4 and then the 5 at the start of the\u00a0two sublists and the rendering of this beat as an overall 9:8\u00a0tuplet). The four is further subdivided into five equal parts, hence\u00a0the 5:4 quintuplet bracket in the notation. The five is conversely\u00a0divided into four equal parts, hence the 4:5 tuplet. The second RQQ\u00a0quarter (third beat) division (<code>(1 (1 (3 (1 1 1 1))))<\/code>)\u00a0necessitates no tuplets as the 1 and 3 indicate that the beat will be\u00a0divided into durations of a sixteenth and a dotted eighth\u00a0respectively. Note that the 1 here has no further subdivisions, hence\u00a0it is rendered in notation as a simple sixteenth, whereas the 3 is\u00a0further subdivided into four equal parts (<code>(1 1 1 1)<\/code>). The\u00a0<em>slippery chicken<\/em> software recognises that this can be rendered\u00a0as four dotted 32nds, as opposed to a 4:3 tuplet bracket (also\u00a0acceptable but unnecessary).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No, this isn&#8217;t a polemic against complex rhythmic notation or the New Complexity. Since the 80s I&#8217;ve been a fan of such music, even if as a composer I don&#8217;t generally employ its techniques. Most of the arguments against &#8220;impenetrable&#8221; rhythmic complexity have been demolished by the simple passage of time coupled with a\u00a0continued interest\u00a0in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":602,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,108],"tags":[3,4,48,111,109,47,110,182,6],"class_list":["post-598","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algorithmic-composition","category-slippery-chicken","tag-algorithms","tag-common-lisp","tag-fibonacci-transistions","tag-irrational-rhythms","tag-new-complexity","tag-permutations","tag-rhythm","tag-rqq","tag-slippery-chicken"],"_links":{"self":[{"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=598"}],"version-history":[{"count":34,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/598\/revisions"}],"predecessor-version":[{"id":1274,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/598\/revisions\/1274"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=\/wp\/v2\/media\/602"}],"wp:attachment":[{"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michael-edwards.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}