Page 1

Parametric Composition Computer-Assisted Strategies For Human Performance

Nigel Morgan with Phil Legard

To Pekka Tolonen and in memory 
 of Janet Owen Thomas (1961 - 2002)

Parametric Composition: 
 Computer-Assisted Strategies For Human Performance Foreword, by Professor John Cook Introduction

vii 1

Part 1 1. What I want to write


The idea of programming : Papert, LOGO and the microworld : tools for the composer past and present : 20th century composers and parametric thinking: sketching and drafting with Michael Finnissy : creating a toccata for solo clarinet from a four-note motif: working with the Slonimsky Thesaurus; John Adams and his Earbox software.

2. On not being too obvious


Randomization : Variation and Ligeti’s Fascar movement from the Sonata for Viola : permutations and transposition : introducing rhythm variation through filtering (or erasing) pitch : how Messiaen composed pitch and rhythm separately; further approaches to variation with rotation and L-Systems; Nigel Morgan’s Song from Array for solo violin.

3. Every composer is different


Personal understanding of a composing style - the Heartstone experience : focusing on rhythm and note length : binary rhythmics and accessing rhythms from library locations : constraints and limitations : the composing continuum - composing from start to finish : rough prototyping : pre-composition : defining a score : the allimportant manual : alternative solutions to on-line documentation : the contextual menu: arguments, values and annotations : learning a language : from aesthetic idea to code: the output is the score - String Trio (2012).

4. Being non-linear


The origins of collage and open-form: Berio’s Sinfonia : Umberto Eco and the Open Work : the proto-minimalism of Janacek and Bartok : collage structuring of Earle Brown and Henri Pousseur : Terry Riley’s In C : example scores - collage-1 & 2: Dreaming Aloud for solo guitar - movement 1 : structuring collage with modulated sine waves : graphical representations of collage structures : Live Coding for improvisation into composition : eBop by Julio D’Escrivan. !i

Part 2 5. Starting with Rhythm


After Stravinsky - from L’Histoire de Soldat : IRCAM software Patchwork and its composers : the ‘pulse-space’ program : collecting functions into one expression: Donatoni’s Concertino - rotating rhythms : Brian Ferneyhough, OpenMusic and rhythmic composition : varying and dividing pulsed rhythm in La Serenissima for violin and strings after Vivaldi : tuplet and irrational rhythmics.

6. Starting with Pitch


Pitch as a parameter : pitch - forms and functions : pitch collections - traditional, contemporary, experimental : making scales, making tonalities : the Hopalong algorithm : scale-raga examples : fragmentation functions : ornamentation of repeated pitches : introducing OpusModus Notation (OMN) : using integers to generate pitches and chords : a chorale .

7. Being Harmonious


Pitch collections making tonalities and chords : Morton Feldman and Howard Skempton : the chord object : devising harmonic objects : generating chords exploring the complex arguments of the gen-chord function : how to build a function : creating unique tonalities to produce arpeggiated chords in The White Light of Wonder - a piano work after Schumann’s Kinderszenen.

8. Coming Together


Bringing together rhythm and pitch : simple mapping - pitch to note-length : ‘making’ OMN pitch and note-length into a single data stream : using binary processing to create rhythms : swallowing pitch : Three Canonic Duos after Telemann : disassembling a melodic phrase into discrete parameters of pitch and rhythm.

9. Further Afield


Dynamics as parametric material: MIDI velocity and custom dynamics : A composition for sextet structured by a dynamic scheme: mapping parameters with substitution : generating clusters and cluster melodies : gen-cluster - a function with arguments: scoring : orchestration by using an ambitus function : demixing and generating pauses : articulation and performance effects : parametric attributes in a Canonic Quartet for 4 violins


10. Continuing with Pitch


Magnus Lindberg and Twine; creating a Study after Twine : working with intervals and pitch class sets : creating primary structural chords : making a rhythmic vocabulary after Lindberg : writing a script as an improvising machine : defining a ‘case’ : a serial Invention after Bach - working with interval sets : Lindberg’s Cantigas.

11. More on Rhythm


Metre - Rhythm - Note-length - Duration - Tempo - Pulse - Expressive Markings : Five examples of how different composers work with the active parameters of time : Setting up an improvisation script to test rhythmic possibilities - in the solo violin part from La Serenissima : using the length of the content of pitch lists to produce rhythmic phrases - in the first movement of String Trio (2012) : taking the words of a poem to derive pitch and metre - in Blaze for percussion ensemble : selecting sections : mapping pitches to untuned percussion : tempo changes - a short study with delta time.

12. Structural Forms


LISP primitives in structuring : division - rotation - inversion - appending phrases together : using the function repeat to intensify structure : repeat devices in Statements for piano : palindrome and interpolation as structural mechanisms : Studies in Movement for violoncello - customising the gen-palindrome function : introducing pitch-interpolation : Continuum and Blues after Ligeti : pattern-matching from Symbolic Composer to create rhythmic structures : a pitch interpolation example from Opusmodus : The chordal genesis of the author’s orchestral work Sounding the Deep.

Part 3 13. Melody into Accompaniment


How a complete piece for melody and harmony instrument comes about - from first ideas to finished score : Selah for violin and piano : before the first note - constraints and conditions : creating melodic phrases by vector mapping to pitch : working with a scale - the ‘single’ harmonic : using the attributes parameter in Opusmodus to include ornamentation : generating chords from melodic phrases : the roughprototype : Selah for cello and piano : similarities and differences.


14. Harmony and Chords


La Serenissima for violin and strings (after Vivaldi) - how its chords and harmonic sequences are made : generating a stream of pitches from a white-noise fractal : how to devise 4-part chords : how to create chord sequences : the idea of the function substitute-map : chaining score-scripts together : the problem of fashioning the solo part in the slow second movement : developing a trajectory generator to link intervals between chords : the third movement - a different approach to handling chords and sequences : marrying rhythmic articulation and harmonic rhythm : recovering the method - three keyboard studies. Origami Letters chord collection from integer generation.

15. Sextets


Scripting issues for orchestral and large ensembles scores : the decline of the piano reduction reference score : the rise of the small mixed chamber ensemble : simultaneous composition and orchestration : timbre and texture-centred scores : practical scoring size for rough-prototyping : the mixed sextet : The Starting Point series with Pitch, Intervals and Chords: the scripting of silence - the problem of the pause : graphical representations of what plays and what is silent : rhythmic shortcuts : looping lengths and pitches : removing pitches with the ambitus function.

16. Duos, Trios, Quartets


The legacy of MIDI : new directions from Michael Van der Aa and Nick Collins : Reinventing the Classical Duo, Trio and Quartet : Boolean editors to Real-time composition systems : Touched by Machine? : Duo Batterie and Serenade : Trio Lyrique and working with MIDI percussion : Trio Lento for Piano Trio : Le Jardin Sec for string quartet : visual scanning in score-scripts : a prelude to automated scoring and control of activity and silence : the rest or pause in scoring of pitch : Objects of Curiosity (SuperCity) - a commission for Kronos.

17. Quintets


A ‘viola quintet’ to a model by Mozart : building a 12-chord sequence and using the chord-variation function : rhythmic articulation using the metrics of Classical poetry : making a dialogue from melodised chordal material extended by looping : devising and working with a library location to store and retrieve poetic metrics : expanding rhythmics with length-augmentation : using length-rest-weight and length-condense for melodic variants : deriving a metric structure from a poem : a different quintet - Omphalus for piano and four percussionists : working with six of everything - clusters, Slonimsky patterns, and rhythmic motifs.


18. Solos


Introducing aspects of the contemporary solo repertoire : Composing with the Slonimsky Thesaurus : musical symmetry : approaches to good continuation : Interactions for Piano Left Hand : Studies in Movement for solo cello : introducing 2-D visualisation : Array for solo violin - reinventing the Baroque suite : Sense of Place for solo guitar - music generated from fingerings : use of library locations : collage : making spaces and musical punctuation using expression which set rules and conditions : Dreaming Aloud for solo guitar : Alexis Kirke’s Chromium 2 - a composition with Matlab.

19. Composing for Orchestra


Composers and orchestral composition : the role played by script-based programming in the composition of orchestral music : a survey of orchestral and large ensemble composition of one composer using CAC : Heartstone for wind, piano and percussion : L-Systems and visual beat /space scoring : two BBC commissions for code-based scores realised in distributed performance : reintroducing the Baroque continuo into the orchestra : Quatuor des Timbres computer-guided structuring and orchestration : Self-Portrait - an ensemble score in Open-Form.

20. Instrumentarium Novum


The new instrumentarium : the Baroque idea of music as speech : the ‘affections’ of music : the contemporary jazz orchestra : the ‘open’ score : towards a model for coding orchestral music : Piece d’Orgue - the adoption of i-functions and the scoresheet : the problem of visualisation in code-based scores : rough prototyping and optimum ensemble size : Six Concertos for self-directed orchestra : phrase partitioning with find-change and find-anacrusis : Concerto 1 – three-stage example of prototyping : two forms of short-score : Migrations for orchestra : expanding ifunctions : using integers in Objects of Curiosity for string orchestra ; novel tonalities in To the Dark Unseen for string dectet.

21. Text into Music


Alban Berg’s messages to his mistress : Landscape for solo piano : text mapping in two different software environments : differences in mapping to modes : the concept of the function patterns-to-scales : how to use words to create tonalities : Quiet Form for trio : prose versus poetry : Into the Green Inverted Dawn for string quartet : changing letter direction in words : the function gen-accompaniment : Quintet for piano and winds : contrapuntal texts : Schizophonia for three ensembles : word rhythms generating pitches. !v

22. Strategies


Towards the composing continuum : the IAMUS project : the desire for aesthetic control : starting the composing journey - the conditions for creativity : playful improvisation : verbal thinking and planning : After Hindemith - the 4-stage approach of Paul Hindemith : the diary evidence of the start of a piano trio : combining code with hand-crafted material : Strategic thinking in a fully-coded work : Objects of Curiosity II (The Prisoner)- a large-scale piece for double bass and string orchestra : how musical decision drive code solutions and structures : general strategic advice : strategic visualisation in large ensembles groups : aesthetic ‘honing’ : Xenakis and Barbaud : being realistic about the coding of musical detail.


Foreword It gives me great pleasure to provide this forward to Nigel’s book Parametric Composition. As you will see, this is an impressive contribution, where Nigel draws on some thirty years of composition practice in an eBook format with links to his own substantial archive of scores and code annotations. Indeed, my own association with Nigel goes back 20 years; at the time I was working on my PhD and together we took some of the ideas of educational theorist Matthew Lipman and put them, and a lot of other things, into the system that Nigel helped me develop called Coleridge (later called MetaMuse). Coleridge was based on the parametric musical design paradigm of the software application Symbolic Composer using a small part of Slonimsky’s Thesaurus of Musical Scales and Patterns to spark compositional ideas (more on this in a minute). When the tool transformed into MetaMuse, it became a tool for collaborative problem seeking (Cook, 2000). The idea of problem seeking is still important today in many design fields, but particularly in serious art music. This fits in with our cultural investment in serious art music: we still need composers, we still need performers and orchestras, we still need computers, but we still need tools that go beyond visualisation techniques. You don't just switch the radio on in your head for serious art music to suddenly appear! Let me go back in time and unpack this contentious statement. I took the view 20 years ago, and maintain this position today, that when we want to be creative there is often an initial stage where we pick the problem that we want to solve; this is called problem seeking. When we learn this ability to seek out a problem, dialogue with a peer (or internalised conversation as reflective dialogue) is crucial. In Morgan and Cook (2004) we summarise five mid-90s studies that revolved around using the Coleridge system to investigate the way in which tutors (both human and computer-based) were used to support a ‘creative community of inquiry’ in undergraduate musical composition. Later, in MetaMuse (Cook, 2000) I took this work one step further: as well as articulating and explaining a creative intention to peers and tutor (i.e. cooperative learning), the learner was encouraged to also internalise these dialogues as they become better able to problem-seek. Self-reflection on these creative !vii

intentions were scaffolded so that they became fine-tuned by reference to a history of external dialogues that the learner has been exposed to. Furthermore, newly devised creative intentions could be ‘tested-out’ by exposing them to further external dialogue. In 2000 I asserted that “such problem-seeking dialogues — that relate to creative intentions — have in the past been little studied. Furthermore, attempts to build computerbased tools to support cooperative learning in such open, problem-seeking domains are few and far between”. This is now changing, but at the time I firmly believe that Nigel and I were ahead of our time. Now we have many tools that enable problem seeking at the parametric level, for example the Maker culture that places an emphasis on learning-through-doing in a social environment. I enjoy playing jazz double bass with people but I recognised that composition is often an individual activity. How we learn may be achieved both formally and informally. As you will have seen, I take the view that we learn to compose in a socially constructed manner and I take the view that this is a process of professional learning. Since working with Nigel I have gone on to publish over 280 articles, some of which have fared exceptionally well in UK research audits like RAE and REF. Like Nigel I have stuck to my guns! Fast-forward to my current work on Hybrid Social Learning Networks or HSLN (Cook, et al., 2015). Working in an EC funded project called Learning Layers ( I have led on the proposal of mechanisms for interlinking and enhancing both the practice of professional learning and theories on informal learning. Our approach shows how we employ empirical and design work and a participatory pattern workshop to move from (kernel) theories via Design Principles and prototypes to social machines articulating the notion of a HSLN. We illustrate this approach with the example of Help Seeking for healthcare professionals. Writing this foreword for this book has made me realise that Nigel has provided the groundwork for HSLN for musical composition learning. This is a major achievement and I look forward to Nigel’s work been taken forward in the future to enhance the problem seeking of our early career composers and a social machine that firmly shows what it is to be creative and uniquely human. !viii

Professor of Learning Innovation Centre for Moving Images Research UWE Bristol staff profile References Cook, J. (2000). Cooperative Problem-Seeking Dialogues in Learning. In Gauthier, G., Frasson, C. and VanLehn, K. (Eds.) Intelligent Tutoring Systems: 5th International Conference, ITS 2000 MontrÊal, Canada, June 2000 Proceedings, p. 615–624. Berlin Heidelberg New York: SpringerVerlag. Cook, J., Ley, T., Maier, R., Mor, Y., Santos, P., Lex, E., Dennerlein, S., Trattner, C., Holley, D. (2015). Using the Hybrid Social Learning Network to Explore Concepts, Practices, Designs and Smart Services for Networked Professional Learning. In Yanyan Li, Maiga Chang, Milos Kravcik, Elvira Popescu, Ronghuai Huang, Kinshuk, Nian-Shing Chen (Eds.), State-of-the-Art and Future Directions of Smart Learning, Proceedings of International Conference on Smart Learning Environments (ICSLE 2015), 23-25 Sep'15, Sinaia, Romania. Lecture Notes in Educational Technology, Springer-Verlag, GmbH: Heidlberg. Paper available: Morgan, N. and Cook, J. (2004). Teaching cycles in the Creative Community of Inquiry. Musicus, 6. Paper online: Available http://


Introduction First and foremost, this is an e-book about composing music. It hopes to connect with a long tradition of pedagogy devised by composers from the 17th century to the late 20th century, from species counterpoint to spectralism. In the 21st century few composers of contemporary art and concert music will manage to avoid using computer technology as a part of the work of composing. Just as for authors of the written word, the advantages of the computer appear all too seductive, though there are possibly aspects of computer intervention that can have a negative effect on the creative process. For example, where composers need to build up compositions in multiple strands, horizontal ‘parts’ or in vertical blocks as ‘chords’, those once valued and much practiced skills of memorisation and internalisation have been replaced with facilities offered by the computer sequencer and scorewriter. Whilst digital technology as a recording device may provide a scratchpad for capturing, storing and editing improvisations of initial ideas, only with the art of programming can a composer gain full control of those distinct and parametric elements of music and sound that, in an abstracted or symbolic form, can be transformed by computer algorithms. Think of an algorithm at its most basic level as a ‘machine’ for enabling the kinds of common musical function most composers learn at the very start of their musical training (and without computers), for example in making repetitions and transpositions. By adding a repeat sign or octave transposition sign the composer is transforming structure and sound.

Simple ‘algorithms’ for repetition and transposition in staff notation.

Bringing composing together with this use of the computer and algorithmic approaches is most usually referred to in Europe as Computer-Assisted Composition and in the Americas and the Far East as Computer-Aided Composition. !1


This book has a lot to say about using the computer as a virtual assistant to what a composer already does. In the approaches explored herein, the computer is viewed as a mediator between the composer’s existing knowledge and experience and a computer-led search fuelled by the imagination to formulate new ideas and explore states of possibility. To engage in this search, a search for possible problems as well as solutions, the computer and its software can provide an interactive environment for creative thinking and reflection about intention. Despite the ever-ingenious routes developed in using graphical objects to manage this search, a basic grasp of programming, working with the word, the integer and the symbol rather than the object and the virtual patch cord, continues to be of lasting value if only because many of the graphic-based software packages can only be extended by or resolved to a written script. From Parametric Design to Parametric Composition The decision to explore computer-assisted composition under the banner of ‘parametric composition’ was inspired by a recent movement in digital creativity: Parametric Design. This is an approach that has already made a big impact in architecture and is illustrated in the work of Zaha Hadid and Patrik Schumacher. Here’s an image of the proposed Hoxton Square Gallery building approved for construction in December 2013.

The parametrically-rendered design for Hoxton Square Gallery, London



In the theoretical works of Schumacher it is possible to find many similarities with trends and future thinking in music composition. The rise of the parametric in architecture takes a step forward from a Modernism that was founded upon the idea of space. Parametricism is very much about differentiation of fields. Such ‘fields’ contain complex, highly fluid forms containing shapes and structures that are neither self-contained nor separate entities but have the capacity to blend, connect and interact. They don’t occupy set spatial forms but have the freedom to act and change within a space. Think of large, continuous open-plan office space or large exhibition halls that carry with their design the capacity for infinite change and own global qualities. There are no platonic, discrete figures with sharp outlines but biases, drifts, gradients, and perhaps even conspicuous singularities like radiating centres. The role of advanced design technology in this vision is paramount and has been led by software such as Autodesk Maya developed initially to coexist with Pixar’s Renderman for CGI effects and imagined structures within film and film animation, games and installations. This software has moved architectural design from drawing to scripting, a movement that allows for continuous differentiation rather the formal ‘plan and finish’ of the design task. A very practical aspect of parametric design is the need for a high-level of design data and the tools to enable different aspects of a project to communicate and react in a transformative way. Parametric design is governed as much by intent as by response. It can include within in it variables that are able to respond to natural or sociological / human conditions and thus manipulate the basic design if and when necessary. Parametric Design in Music Parametric thinking in music has powerful similarities to parametric design in architecture and points to future scenarios where, for instance, it may be desirable for a composer not to ‘fix’ a final score (or scoring). Each performance of a work could be altered or customised to particular conditions !3


of context: different performers, location, occasion, audience. There could be quite autonomous elements affecting the design, the kind of elements that in early music were embedded in performance practice. Already the technology and the blue-sky thought exists to make this a reality in forms of music notation on a virtual screen-based score. And just as architects are having to catch up with parametrics, so will composers who wish to transcend the current artistic and creative inertia for more radical outcomes and possibilities.

Six Concertos: An ‘unfixed’ composition with several realisations,
 each derived from the same ‘nuclear’ continuum.

Following the work of information scientist Werner Meyer-Eppler in the late 1940s and early 1950s on defining musical descriptions for electronic music, parametric thinking became a significant presence in the 1960s through the music of Stockausen, Cage, Babbitt and Xenakis. It has remained a lasting influence in today’s music. Although such thinking evolved before computers were readily accessible to composers, those with early personal computers who did start to use computation found parametric thinking both essential and productive. Before any transformational linkage could be made between, for example, pitch and rhythm, composers had to make very clear separations between parameters. These days any musician using a computer will engage in this kind of parametric manipulation, for example, by quantising or transposing in a sequencer or digital audio workstation (DAW). There is a lively example in the text of Part 2 that discusses a series of Starting Point compositions where each musical parameter is shown as a potential and discrete ‘starting point’ for an instrumental sextet.



The Foundations of Practice What this book presents in terms of the foundation concepts of computerassisted composing (CAC) is hardly new. Lejaren Hiller and Leonard Isaacson, a composer and an industrial chemist with an enthusiasm for music, laid down principles and approaches some 60 years ago to using standard computation forms as a composing aid. Their book Experimental Music still speaks much good sense, introducing ways of handling musical events (rather than sonic objects) that are still very relevant (and in use) today. The authors’ focus was an empirical one: they wanted to compose a string quartet with a computer, and like the good academics they were wrote up their experiments and produced a performance score (with annotations) of their string quartet. You can listen to and explore the rationale for their Illiac Quartet here.

From the Iliac Quartet, experiment 3.

There is no one type of composer. Everyone works differently, has different objectives and seeks different outcomes. We all take different pathways through the creative process: Hiller and Isaacson worked with the dodecaphonic language of the time alongside the rhythm and structure of a Haydn quartet. Some of us have been fortunate to have had guides and mentors who have shared aspects of their working techniques and musical literature that, to varying extents, have served as models or examples. But mostly, what we do is what we’ve learnt to do ourselves: our teachers and colleagues have stood by as critical friends, helping us produce our own work in the best way possible, so that it can be realised successfully by our performers and make its point with the listener. The examples in this book are often drawn from contemporary music or the authors’ own work in the field of art music – however, it should be stressed that the techniques discussed are fundamentally as transferrable as those repeat or transposition markings, and are intended to help all types of composers with an interest in CAC and !5


parametric composition: to deepen their understanding of the subject and to extend their musical language. Conditions Much of what composers do at the outset of a creative project is wrapped up in defining then extrapolating what Paul Hindemith referred to as the conditions surrounding any performance. Conditions might include: - a profile of the skill and style of performers; - responding to the space of the performance; - deciding upon a right duration for the music; - what is appropriate and right in terms of style; - what content may be suitable for performers and audience on a specific occasion and within a specific programme. 

These are the things a composer usually considers, part of that dreaming and imagining that will take the composer towards the first notes of a composition, and hopefully to the final bars. CAC offers an ever-surprisingly varied cornucopia of ways to prepare, compose and produce compositions rendered into sound and score. This is because in script-based programming the composer is not bound to those aesthetic decisions ready-made tools and functions can force upon musical invention. Remember, the emphasis (- or authors’ emphasis -) here is firmly on music for voices and instruments (real or in simulation), though there are many strategies and ways of thinking in CAC that transcend styles and media. Composers working in music for film, games, installations and online media could well find much of the text stimulating and useful.

Synopsis - How to Approach this Book The e-book is in 22 chapters. It’s not a ‘have to read from the start’ kind of text. It’s written to be browseable, to be dipped into. It can be read from start to finish of course, and there are certain advantages in doing so. To begin !6


with, survey the chapter summaries that preceded this introduction: read what appeals and excites the curiosity. The overall idea in Part 1 is to introduce the composer to the world of computer-assisted composition with script-based programming (that is using script or natural language you can write from a computer keyboard) and weighted towards composing music for human or simulated instrumental or vocal performance. The Introduction and first four chapters of Part 1 discuss the approaches to engaging with CAC and parametric composition. Although they might be described as a primer, they do not try to be a manual suggesting you have to do this before you can progress to that. They cover a wide range of material, and focus on developing an awareness of where CAC sits within a larger ‘composing continuum’, spanning a musical work or composition from first sketches to the finished score. These opening chapters set the scene for Part 2 and the next eight chapters (5 - 12), each profiling distinct parameters and how such parametric elements might combine and work together: - pitch, - rhythm, - dynamics, - ornamentation, - timbre, - orchestration These elements are all featured in later chapters. So too are musical structures and processes of traditional kinds: - transposition, - inversion, - retrograde, - variation, - heterophonic and contrapuntal forms, - collage and open-form structuring !7


These are presented in conjunction with more experimental approaches that come from the growing interest and awareness of: - evolutionary and natural phenomena, - mathematics and scientific worlds (such as fractals, wave-forms, boolean maths and cellular automata). Part 3, chapters 13 - 22 by contrast move towards the interaction of parametric elements within real composition scenarios. Chapters 13 & 14 look at two aspects that so often form a global structure of musical activity: Melody and Accompaniment, Harmony and Chords. In the first we see how the very idea of melody and accompaniment influences musical decision-making and examines the workflow required to manage a complete composition. In the second the organisation and structuring of harmony and chord progressions with rhythmic articulation and harmonic rhythm are examined within an ambitious reinvention of a Baroque concerto. Thereafter six chapters are devoted to instrumental forms: from the solo to sextets, to large ensemble and the orchestra. Finally, a chapter using prose and poetic texts to generate music and a concluding chapter on strategic thinking and the viability of seeking a composing continuum.

Examples in Code, Notation, and on the Web Although the text is often accompanied by very short examples of scriptbased code, what is discussed is not system-dependent, indeed many of the approaches shown could be explored in visual-programming systems such as OpenMusic. Some, like L-Systems, can even be achieved with pencil and paper (only rather slower!). Because of the book’s emphasis on composing music for human performance the text is rich in examples in staff notation, many of them taken !8


directly as ‘snippets’ from the notation output of a recently developed computer-assisted composition environment called Opusmodus. There are short pieces of code in Common Lisp, Opusmodus, OpenMusic, Symbolic Composer and Processing. The reader will also find copious links to YouTube of music from the contemporary repertoire cited in the text - including pieces by Morton Feldman, György Ligeti and Brian Ferneyhough. The Author’s unique web archive is also used as a valuable source of reference to many of the scores and projects described throughout the ebook. This archive contains downloadable scores, recordings, score-scripts, script annotations and background interpretation from over 25 years of working with CAC systems. Visual Programming and Script-Based Programming Whilst visual-programming among composers remains very much in the ascendent, born out of IRCAM developments such as MAX , PWGL and OpenMusic, it tends to favour discrete experimentation in the precomposition stage, rather than serving as part of a composing continuum: that is, the journey from first thoughts to finished notated score and reference recording.

Visual programming from IRCAM’s OpenMusic.

Composing either way can be a most productive activity: to grow ideas through experimentation, through saying ‘what if’ and realising that ‘what if’ !9


as musical output, and so letting the ear (and the eye) have a role in decisionmaking. Many composers use CAC systems to create material that they can then work into a growing composition in a more traditional way, albeit with a score writer, as we will see in the practice of Brian Ferneyhough in a later chapter, bringing together rhythmic material in Open Music with pitch in Finale. Composers using visual-programming systems often build their own libraries of material from which they can pull possibilities to furnish new or revisited musical situations. The ‘patch’ seen in the example below is a PWGL user-library by the Finnish composer Magnus Lindberg. This library specialises in various rhythmic manipulations, including quantising. The patch displays in the Score-Editor a quantised result of interpolating rhythmic gestures.

An example from Magnus Lindberg’s rhythm library in PGWL.

Creating a whole score inside a CAC system is another matter altogether, and, as yet, relatively few composers have the patience, time and commitment to work towards this end. But for those who have and can the results can be efficient and deeply satisfying, and, on the whole, it is script-based systems that manage to achieve this composing continuum. The example below is, in fact, a complete score-file for a short canon after the Telemann’s canonic sonatas. The source material for pitch is a modulated sine-wave, and the rhythm created from the generation of binary integers.



You can download the score and listen to simulation of this canon here.

A complete score-script in the colour-code script found in OpusModus.

However, visual programming is very much the approach of choice for those composers for whom the physical world of sound has become a possible the source of musical material for instrumental composition. Spectralism is a good example of this trend, requiring computer-analysis of live sound and effective mapping of digitally-recorded sound into notational forms that will involve the presentation of micro-tunings. This means that for a CAC system to handle spectral composition it has to be able input and export digital sound files. But in this text we’ll be concentrating on the symbolic and the abstract parametric nature of notated art and concert music and only on acoustical !11


phenomena when it can be represented symbolically by algorithmic computation. A Word on How and Why The text deals with how such programming might be approached as much as why such an approach might be considered as beneficial. However, there’s a secondary thread to these questions that refers to the description Matthew Lipman, an educational theorist, has made about thinking. He suggests there are two kinds of thinking: the algorithmic and the heuristic. He says, ‘the touchstone of the first is method, the second is results. An algorithm provides a track or procedure along which our thinking can move. Methodical thinking embraces logic, and by employing logic we might arrive at correct or ‘true’ conclusions.’ ‘The heuristic approach is more anarchic. It’s not fastidious about method. It’s what Edward de Bono has in mind when he distinguishes between vertical and lateral thinking. Lateral thinking de Bono says “is successful, productive. Creative thinking, whereas vertical thinking is mechanical, unimaginative and uncreative.”’ Personal experience suggests that in working with Computer-Assisted or Aided Composition (CAC), a composer needs to balance both kinds of thinking to produce successful music. We need the How and the Why. It’s useful to follow, or at least be aware of method, but equally we need to be critically sensitive to the consequences of our results. It’s for this reason the book attempts to balance musical making with examining the musical result, the finished score, performance or recording. Often the music examples the text offers and links to are not actually composed with computer-assisted means but serve as models of successful and transparent outcomes of musical thinking with procedures that might transfer well to or be extended by computer intervention. This would certainly include examples of music by György Ligeti and Franco Donatoni, !12


two composers whose music is rich in the kind of processes and outcomes that can now be achieved with CAC. Listen and look at these YouTube examples that bring sound and score together: Ligeti’s Sonata for solo Viola and Donatoni’s two-movement solo for clarinet titled Clair.


Part 1


1. What I want to write The idea of programming : Papert, LOGO and the microworld : tools for the composer past and present : 20th century composers and parametric thinking: an example of making a function to convert pitch to rhythm: sketching and drafting with Michael Finnissy : creating a toccata for solo flute from a four-note motif: working with the Slonimsky Thesaurus; John Adams and his Earbox software.

This is not a ‘learning how to compose book’, because composers know how to do this already. This text attempts to bring together existing techniques and ways of thinking about creating music with methods that have evolved through interaction and mediation with computer software. You’re half way there if you are an experienced composer, but perhaps you’d like to explore how interaction with a computer could possibly help you be more productive and its output nourish your imagination. You’d like to be able to investigate possibilities that in terms of calculation and representation might, any other way than using a computer, prove difficult, even prohibitive. By stealth, the idea of programming will infiltrate this text. Programming, coding or scripting describes that seemingly mysterious activity that enables a composer to communicate with a computer system so that it can respond to a personal way of thinking and doing. This notion has its seeds in the visionary writings of Seymour Papert of MIT who in the 1960s invented the computer language LOGO, a first language for children to develop ways of thinking about geometry, space, proportion, algebraic mathematics and function machines. His vision was, in essence, that people should be able to design and develop through the computer their personal ‘microworlds’, so interaction with a computer would reflect their needs and aspirations and not the mindset of professional software designers. Sadly, though the personal and comprehensive microworld remains a powerful idea, it became defused by a reliance on those de facto industry-standard tools such as the Microsoft Office and deflected by the seduction of the Internet. But there is another way…


1. What I want to write

Listen here to composer Kim Cascone talk about building his own software tools for composition. A Composer’s Toolkit In music the common applications of computer software are predominantly those that produce a performance score or recording of an existing composition. These applications are really the musical equivalent of Microsoft’s Word, an application that simply provides the virtual space to record our computer keyboard actions but doesn’t help us invent the content. It may watch over the grammar or syntax of a report, letter or a poem, but it doesn’t provide the words. Certainly, there is the creative interaction of seeing words appear on the virtual page. Writers respond to this - and by seeing what we write can help us respond critically and imaginatively. In composing music, whether we use software applications such as Sibelius, Finale or Logic X, we can respond in a similar way through seeing and hearing an emerging score, a score that has probably been previously composed or partially composed on paper or at the piano keyboard. True, there are tools within the software that help us further, to a certain extent. Copy and Paste are invaluable because repetition is such a fundamental function in music composition. Most applications will have the kind of tools relating to pitch and rhythm that Bach would have employed via his ‘brain computer’ as a matter of course - most certainly those involving pitch - transposition, inversion, retrograde, and in rhythm those of augmentation and diminution. Composers also develop ‘variants’ with selected deletion and erasure, and if they have some background in logical processes may use a Boolean thinking or a Logical Editor to undertake more complex editing tasks: ‘if’ I do this ‘then’ that will follow. Though most of these techniques originated in very early music they have remained as a vital part of a composer’s ability to make a ‘good continuation’. 


1. What I want to write

One of the logical editing screens in the Steinberg Cubase application.

But today we bring to the composing act a variety of other techniques that require an element of calculation, and these often come from outside the traditional domain of music. Think about interpolation, morphing and randomising. These processes, commonplace in the visual arts, are now widely used in music composition. Many of these are the result of composers considering the elements of music parametrically, a form of musical thinking that become apparent in the post-war scores of Cage, Messiaen, Xenakis and Stockhausen, but had its origins in the 14th century techniques of isorhythm and prolation. Most of these processes originate from outside the traditional canon of musical techniques and require some kind of conversion mechanism. For example, to a make pitch into rhythm one approach might be to read a pitch sequence within an octave as a series of intervals and convert them to absolute values. Each value between one and twelve might be associated with a rhythmic value (1 (semitone) = 1/16, 2 (whole-tone) = 1/8, 3 (minor third) = 3/16 and so on). This procedure could be wrapped up into a function called pitch-torhythm and produce, with the appropriate conversion mechanism, this kind of output:


1. What I want to write

Let’s break this process down into its component parts. Here’s a list of pitches: c4 cs4 ds4 g4 bb3 db4 f4 Here’s a list of intervals that lie between each pitch in absolute values: 124934 Here’s a table that makes an association between an interval value and a rhythmic value: 1 = 1/16 2 = 2/8 3 = 3/16 4 = 1/4 . . . and so on up to 12 = 3/4 This is precisely where computation outpaces pencil and paper, because it can do instant conversions that require such mathematical calculations and associations. Sketching and Drafting Sketching or drafting is something most creative people do. Composers are either highly organised or just plain messy. Michael Finnissy says that he’s obsessive about drafting ideas using up any piece of rough paper he happens to have about (see the image below). The anthropologist (and cellist) Tim Ingold likes to cut up empty cereal packets to create small squares to put thoughts into work. He then pins these cards to a notice board. One aspect of this messiness derives from the speed at which an idea can happen, and to take root has to be written down in some way.


1. What I want to write

A sketch from a string quartet by Michael Finnissy.

Nigel Morgan reflects on his own practice: If I look at my own sketching and drafting some forms of shorthand are often present, but intelligible only to me! When the sketching stage gets under way (when you’ve stopped pacing about your studio that is) most composers know the importance of filling a blank page. This page for me is more often than not a paper sheet of A3 and lesser sheet (about A4) of orchestral-stave manuscript paper. Once I start to sketch I’ve found it valuable to keep going until I fill the pages: to express as far as possible those ideas I have had through contemplation and experimentation. Some of it is complete rubbish; some of it comes close to a description of what I want to do; some of it is very likely to dwell on those conditions mentioned in the Introduction. Whatever it might be, it can be very reassuring to have something there on the desk. Recently, I’ve realised that first ideas are often less than easy to decipher, so I immediately write out those ‘difficult to read’ or shorthand passages in a different ink. The move from sketching to drafting can take a little time, and much additional editing (again, a different ink or pen can help). It is in this intermediate period that thoughts about coding ideas can often begin. The example given earlier about a conversion mechanism to make pitch into rhythm is just the kind of idea that I might explore prior to the drafting stage. I !19

1. What I want to write

recognise I need a way to articulate rhythm in a novel way and such a device or ‘tool’ just might do the job. So I invent a way to do it - and I script it in code.

Sketch for Prayer Bells by Augustan Read Thomas.

Listen to composers Augusta Read Thomas describe the sketching and drafting of her work for two violins Double Helix. A Useful Hint When writing code it’s easy to devise an expression in an unusual, even perverse way, so that half an hour later its meaning or direction might be forgotten. The immediate commenting of an expression in code becomes a valuable reminder: this is usually a brief text description, and even the best programmers do it. Throughout this book the reader / composer will find that the dominant computer language used is LISP, a language favoured by the many composers and academic institutions worldwide and increasingly found in commercial applications. The reader will find most techniques displayed may potentially be adapted to any language, and should note the presence of additional comments that help to elucidate the steps presented in the code.


1. What I want to write

Beginning to Script in Code Let’s imagine we’ve found a short motif using the single parameter of pitch, and we’d like to take this motif further, just as a discrete unit of musical information. There can be something seductive about turning a very little into a lot! One of the classic motifs that responds to this treatment must be BACH (Bb A C B natural) beloved of Liszt and Shostakovich among many others. Let’s set this choice into a context: a toccata-like invention for solo clarinet. The toccata is a form that evolved in keyboard music of the 16th century. It is usually a stream of ‘touch’ (toccare, It.) where rhythmic alteration is minimal; pitches flow unimpeded from beginning to end. So for our example the toccata context avoids dealing with the complexities of rhythm-change as our score can be a stream of pitches as 1/16ths. Taking a short motif and using the functions of repetition and transposition as a kind of generative device, let’s see if we can make this motif flow in a musical way. Try this on paper or on a digital score writer - copy the motif, paste it x number of times. Transpose the copies of the motif up and down and begin to build a structure. This takes a little time, and it’s likely you’ll work sequentially, making one transposition decision at a time. But with programming you can work and reflect on your intention in a global way, simply by writing down a string of integers representing a transposition value. Now look at these expressions in code: (setf motif '(bb4 a4 c5 4)) ; theme (setf m-x12 (gen-repeat 12 (list motif))) ; 12 repeats of the theme (setf flow (pitch-transpose '(0 3 2 6 12 4 2 0 3 6 12) m-x12) ; A list of transpositions applied to the 12 repeats


1. What I want to write

Now, let’s change the ordering of each set of transposed notes so get a different and more complex or richer effect. (setf motif '(b4 a4 c5 bb4)) (setf m-x12 (rnd-order (gen-repeat 12 (list motif))) :seed 2) ; Each of the 12 repeats has their order randomised (setf i-flow (pitch-transpose '(0 3 2 6 12 4 2 0 3 2 6 12) m-x12)) ; A list of 12 transpositions of the reordered repeats

If we randomise anything with computation the computer automatically consults its random generator, a valuable part of its operating system infrastructure. This means that without any further control each randomisation will produce a different result, or, as here, a different reordering. To bring such reordering under control we can set a seed value, here :seed 2, and so bring back the precise ordering as many times as we wish.

The code may look incomprehensible in detail, but it should nevertheless reveal something of the process. The motif should be obvious. Four pitches are presented as a list and ‘set’ (with setf) to the variable name motif. The computer now knows motif is a list of pitches (bb4 a4 c5 b4). To make the transformations required here are some functions named gen-repeat, rndorder and pitch-transpose. Some of these functions have arguments. For !22

1. What I want to write

example gen-repeat carries the argument 12 - for the number of repeats required. (setf motif '(bb4 a4 c5 b4) (setf m-x12 (gen-repeat 12 (list motif))) ; 12 repeats of the theme (setf m-rnd (rnd-order m-x12 :seed 2)) ; Each of the 12 repeats has their order randomised (setf i-flow (pitch-transpose '(0 3 2 6 12 4 2 0 3 2 6 12) m-x12)) ; A list of 12 transpositions of the reordered repeats

What’s important here is not so much the detail but the process: • make a list of pitches; repeat that list 12 times; • randomize the order of each of those 12 motifs; • now transpose each motif following a list of transpose values. This is just a tiny example of how we might think about the process. And this is just the tip of a large iceberg of possibility. Is this thinking about the composing process in a new and different way? To see a real-life example of such a script used to make a piece of concert music, look and listen to Dreaming Aloud for guitar solo. The link goes to the author / composer’s web archive from where a score and code annotation can be downloaded. There is also further discussion of its coding in the chapter on Solos in Part 3.

The opening of Movement 1 from Dreaming Aloud for solo guitar.


1. What I want to write

The example above isn’t a stream of pitches, but it is made in exactly the same fashion as the script quoted above and the ‘missing pitches’ have been swallowed by rests. There is a four-note motif at its heart, this taken from Nicholas Slonimsky’s Thesaurus of Scales and Musical Patterns. Slonimsky’s Thesaurus The author has used the Slonimsky patterns as a resource and a starting point for many works that use script-based coding in their composition. Slonimsky patterns he has found to be particularly attractive as neutral starting points because they so often contain powerful tonal ambiguities. As such, their potential as a basis for improvising and composing can be compelling. The great jazz innovator John Coltrane is supposed to have learnt all 2,000 and practised them daily. The composer and guitarist Frank Zappa frequently acknowledged his debt to the Thesaurus. Although hardly known for years after its publication, the patterns have now become a staple resource for most jazz musicians, which is why you can never find a copy in a public music library! It’s an expensive book, so it’s invariably been ‘borrowed’ - permanently. That said, in the world of contemporary art music Schoenberg had nice things to say about it and many composers now use it as a source book, the most notable being John Adams. Adams has written about his fascination with Slonimksy’s Thesaurus and Nicholas Slonimsky himself, who he described as ‘a character of mindboggling ability’, and for whom he even wrote an orchestral piece in his honour called Slonimsky’s Earbox. Anne McCuthan’s book The Muse that Sings devotes a chapter to Adams who reveals there some valuable insights into his composing process: ‘I have a little software module that I’ve created I call my Earbox. It has a large number of transposed scales and modes some of which I took straight from the Slonimsky Thesaurus, and others I made up myself. It exists permanently in my software system, so I can take any passage I’ve composed and multiply it by one of the modes in Earbox to create a different colour of emotional effect. I first employed Earbox in the !24

1. What I want to write

Chamber Symphony (1992), and made extensive use of it in the Violin Concerto.’

Above is one of the most celebrated patterns from Slonimsky’s Thesaurus. The author has coded the entire Slonimsky library into the composition system he uses, and reference to it will appear frequently in this text as it continues.

Listen here to a recording of Slonimsky’s Earbox by John Adams. Whether a composer or performer, the scales and melodic patterns of Slonimsky's Thesaurus offer an extension of traditional scales and modes that builds upon the idea of intervallic symmetry first explored in the late 19th century by Lizst, Rimsky-Korsakov, Scriabin, and Debussy. It can be a valuable companion to the Technique de mon language musical by Messiaen and the Harmony Book by Elliott Carter. The exhortation ‘What I want to write’ so often dictates the approach a composer uses to produce a result. A song dictates choosing a text: a choice that, in the choosing, begins to set constraints and conditions for the music that is to come. The next stage is likely to involve whether the melodic setting of the poem comes before or after the composition of the accompaniment. In instrumental composition the desire or plan is likely to be more open and diverse, so what our thoughts produce, and what sketches and drafts reveal, needs to be channeled towards a starting point that has the potential for having a ‘rightness’ about it. Experience shows that often it is not inwardly heard pitches or rhythms that produce that ‘right’ material but what bares comparison with a painter’s ‘mark’, a line, a gesture of the brush or crayon. !25

1. What I want to write

On its own this may, in music, be an insignificant and seemingly abstract row of pitches or a rhythmic phrase that carries no implicit meaning or expression; it is inert. But it can be brought into a becoming, and with the right ‘tools’ and ‘processes’ allows the composer to move forward into creative space and present the imagination with something concrete to work upon.


2. On not being too obvious Randomization : Variation and Ligeti’s Fascar movement from the Sonata for Viola : permutations and transposition : introducing rhythm variation through filtering (or erasing) pitch : Messiaen composes pitch and rhythm separately; further approaches to variation with rotation and L-Systems; Nigel Morgan’s Song from Array for solo violin.

One aim of this e-book is to be able to browse it rather than needing to read it sequentially. It aims to be an open-ended guide book and to stimulate ideas and possibilities. We probably learn best on an informal ‘need to do need to learn’ basis. So it seems helpful to bring together not just an idea or concept that we might seek to explore, but also its rationale and to illustrate its use in some kind of context. Let’s take one such, a preoccupation regularly found as a process in computer-assisted composition: randomisation. Randomisation As a creative and generative device randomisation has become embedded in contemporary musical thought. This has links with an awareness of the random ‘mark’ found in visual art of the Impressionists. Painters in this genre became very aware of how textural effects might be created by applying varying degrees of randomness to a natural but often complex surface: the sky, the sea, a forest, grass in a field. One artist who was particularly conscious of randomness, a painter who was also an accomplished musician, was Paul Klee. Many of his paintings reflect the idea present in his time that a ‘poetic’ quality might be achieved in painting and instrumental music by eliminating the imitative principle and replacing it with the free use of colours, marks and forms. Some of Klee’s watercolours resemble musical scores in the with irregular patches of local colour taking the place of notes and horizontal background lines as staves as in this architectural study from 1927.


2. On not being too obvious

Paul Klee - Seaside resort in the south of France.

‘Randomness’ is everywhere we look, and to some extent is also present in what we hear. A dawn chorus is one such example that the composer Messiaen explored in Le Réveil Des Oiseaux. Birds do not sing in time, and their songs often contain seemingly random alterations, a kind of constrained randomness. This is one reason for their fascination as ‘natural’ composers. Listen to Edward Cowie’s Birdsong Bagatelles for string quartet as testament to the extraordinary variety and constrained randomness of birdsong. In music, variation is a recognisable change of state evolving from a given subject. It is an established way to produce good continuation whilst maintaining the stamp or DNA of an original thought. Composers ‘play’ with the business of varying material, and they often do it with great subtlety and invention. In a contemporary setting a composer such as György Ligeti was a modern master. A good example of such invention can be found in the 3rd movement of his Sonata for solo viola (1992) where Ligeti uses a nine-note folklike melody and creates sequences of ostinatos that gradually transform through variation. The movement is called Fascar, Romanian for to ‘screw’ or to ‘wring’, and that’s what Ligeti achieves by gradually inserting different pitches into each five-bar phrase until by the middle of the movement almost all the pitches originally present have been changed. Any composer seeking !28

2. On not being too obvious

model scenarios for computer transformations need look no further than Ligeti! This sort of approach can easily be set up within a computer programme as a kind of interpolation. This observation owes much to the musicologist Benjamin Dwyer in GyĂśrgy Ligeti; In Foreign Lands and Strange Sounds by Louise Duchesneau, Ligeti's assistant of over 20 years.

Listen to the 3rd movement of Ligeti’s Sonata for Viola Solo. Randomisation in Code Ask yourself: what techniques do I use to vary pitch within a sequence? If we stick to a single parameter, a short pitch series in a fixed register, we soon reach a finite number of different orderings: (setf motif '(c4 cs4 fs4 g4)) (setf m-all-1 (permute motif)) => ((c4 cs4 fs4 g4) (c4 cs4 g4 fs4) (c4 fs4 cs4 (c4 fs4 g4 cs4)(c4 g4 cs4 fs4) (c4 g4 fs4 cs4) (cs4 c4 fs4 g4) (cs4 c4 g4 fs4) (cs4 fs4 c4 g4) (cs4 fs4 g4 c4) (cs4 g4 c4 fs4) (cs4 g4 fs4 c4) (fs4 c4 cs4 g4) (fs4 c4 g4 cs4) (fs4 cs4 c4 g4) (fs4 g4 c4 cs4) (fs4 g4 cs4 c4) (g4 c4 cs4 fs4) (g4 cs4 c4 fs4) (g4 cs4 fs4 c4) (g4 fs4 c4 cs4)


(fs4 cs4 g4 c4) (g4 c4 fs4 cs4) (g4 fs4 cs4 c4))

This is all very well, but how might these permutations become a musical texture? And what about the context? This motif of pitches from the first !29

2. On not being too obvious

pattern in the Slonimsky Thesaurus, generates in its four pitches a very distinct though ambiguous tonality. Imagine the pitches scored for log drums or marimba bars, then pick out (again at random) different reordered motifs to play in sequence. (setf m-all-2 (rnd-unique '6 m-all-1)) => ((g4 cs4 c4 fs4) (fs4 g4 cs4 c4) (c4 g4 fs4 cs4) (cs4 g4 c4 fs4)(g4 c4 fs4 cs4) (g4 c4 fs4 cs4))

(setf m-all-3 (rnd-sample 6 m-all-2 )) => ((fs4 cs4 g4 c4) (c4 fs4 cs4 g4) (fs4 c4 g4 cs4) (fs4 cs4 c4 g4) (fs4 c4 g4 cs4) (fs4 g4 c4 cs4))

These little scripts produce similar but different types of output: one has a unique sequence of patterns; the other allows for repeats, highlighted in the above example in red. With exposure to such examples the composing mind is quick to see the potential of bringing another function into play to produce more variations: transposition. (setf m-all-4 (pitch-transpose '(0 1 -1 4 3 -1 0) m-all-3 )) => ((fs4 cs4 g4 c4) (cs4 g4 d4 gs4) (f4 b3 fs4 c4) (bb4 f4 e4 b4) (a4 eb4 bb4 e4) (f4 fs4 b3 c4))

Let’s make one further expansion of the variation idea by introducing in the parameter of rhythm. Probably the easiest way to ‘make rhythm’ is to !30

2. On not being too obvious

generate a sequence of identical note-lengths and then erase (rather than delete) these lengths playfully. (setf m-all-5 (flatten (gen-filter-remove '(cs4 fs4 b3 e4) (flatten m-all-4) 's nil))) =>(-s c4 g4 -s - g4 gs4 d4 -s - f4 c4 bb4 b4 -s f4 -s f4 c4)

-s bb4 a4 eb4

This output list shown above is in a notation called OMN that combines into a single list multiple parameters, here: pitch and note-length. OMN is a syntax for describing musical notation in text and is found in the Opusmodus CAC environment. Using the notation example, see if you can ‘decode’ the script above with the help of the notation below.

Now we’ve taken out selected pitches and created a highly rhythmic variation. This is just one of many ways we could tackle this. Another would be to devise the rhythm we want as a separate parameter running alongside the stream of pitches. And then simply fill the note-lengths with the pitches. Some pitches would, of course, disappear. (setf pitches '((fs4 cs4 g4 c4) (cs4 g4 d4 gs4) (f4 b3 fs4 c4) (bb4 f4 e4 b4) (a4 eb4 bb4 e4) (f4 fs4 b3 c4))

(setf rhythms '((s s -s s s -s -s s ; s = 1/16

-s s s s s s s -s

(make-omn :length rhythms :pitch pitches :swallow t )


s s s s s s s s)))

2. On not being too obvious => ((s fs4 cs4 - c4 - cs4 g4 c4 fs4 cs4 g4 c4 fs4 - - c4 fs4 cs4 g4 - fs4 cs4 g4 c4))

What’s interesting here is that we’ve been able to merge together two parameter streams: of rhythms and of pitches. The result maintains the change in tonality outline of the motif (brought about by the transpositions), but it is now articulated rhythmically. Imagine the two phrases playing simultaneously on different instruments, say marimba and vibraphone. Listen to and look at this technique being demonstrated in a complete composition, a Toccata for solo piano. This Toccata is based on the same Slonimsky pattern used in the examples above, but extended to include patterns in series - like this:

What we’ve encountered here is a very common form of musical invention. It is ably demonstrated in the observation of Yvonne Loriod that her husband Olivier Messiaen created much of his music in two separate places: sounding out at the piano; silently inventing at a table. Anything connected with pitch was auditioned, played over, even improvised upon at the piano. This was where pitch collections were brought together in chords. Very often such pitches were referenced to tonalities - sets of pitches arranged in a scalic way. But for rhythm, the invention happened separately and silently. It was only when the rhythm was in place the two parameters of pitch and note-length were superimposed upon one another to make a composite whole.


2. On not being too obvious

L-Systems By way of concluding this chapter, let’s return to further ideas of variation demonstrated in Ligeti’s Sonata for Viola described earlier in the text. In the author’s own Song, the penultimate movement of Array for solo violin, a more conventional variation ‘script’ is attempted. This makes use of the Lindenmayer system, or L-System, an algorithm using a parallel generative grammar that in computer-based image-making is capable of producing stunning tree-like structures, often seen as CGI renderings in movie scenes. As with Ligeti, the influence on this score is one of folk-music: the piece should be played entirely on a single string with slides and folk-like effects and inflections. The six-note ‘refrain’ is punctuated with L-System ‘variations’ generated at different levels. Each refrain returns in a rotated form, its pitch and rhythm moving one ’step’ forwards. Look at and listen to the score of Array and read the detailed interpretation of this work that explores a variety of algorithmic techniques. The work is entirely written in scripted code.

Bars 1 - 7 of Song, from Array for violin solo.

Here is the code for L-System material in a symbolic format with one of the five verses generated from the sequence of definitions. The symbolic format has a symbol list mapped to a chromatic tonality with its root on Ab. !33

2. On not being too obvious

Example: (defsym a '(= = -b)) ; this means that the symbol a (an A flat) will generate ; two rest symbols then -b (or g natural) (setq figure '(a -b -e -c -d -g)) ; In pitches this would be ‘(ab4 g4 fs4 f4 e4 d4)) (defsym (defsym (defsym (defsym (defsym (defsym

a -b -e -c -d -g

'(= = -b)) '(-e -c)) '(-c -d)) '(-d -g a)) '(-g a = =)) '(a = = -b))

;; verse (setq figure-1 (gen-trans a 4)) => (a = = a -c b b -c e a -c e = = a a -c e = = -d e = = d d = d) ; The first of five L-System verses

To explain the gen-trans function let’s use its gen-notrans version followed by the gen-trans version: (a = = -b) ; no transpositions (a = = -b -e -c) ; no transpositions (a = = -b -e -c -d -c -d -g a) ; no transpositions

(a = = a) ; transposition up one symbol (a = = a -c a) ;transposition up two symbols (a = = a -c b a a a -d d) ; transposition up three symbols


2. On not being too obvious

Here is the code for L-System material in a pitch format. (setq figure-1 ‘(ab4 g4 fs4 f4 e4 d4)) (defsym (defsym (defsym (defsym (defsym (defsym

a -b -e -c -d -g

‘(- - g4)) ‘(e4 fs4)) ‘(fs4 f4)) ‘(f4 d4 ab4)) ‘(d4 ab4 - -)) ‘(ab4 - - g4))

;; verse (setq figure-1 (gen-trans a 4)) => (ab4 - - ab4 fs a4 a4 fs4 c5 g4 fs4 c5 - ab4 - fs4 c5 - - f4 c5- - b4 b4 - b4)

Notice that the rhythm in the definitions and first verse adheres to single length value and some rests have been consolidated in the notated version. L-Systems are widely used in CAC systems and will be further explained and demonstrated in other compositions. One of the joys of this algorithm is that is can be revealed and tried out on paper, though it comes into its own in computation. The L-System remains one of the simplest yet most powerful of algorithms that demonstrate characteristics of ‘natural’ growth or evolution.

Examples of trees ‘grown’ with L-Systems, from the 
 University of Calgary’s Algorithmic Botany project.

To see further examples of L-Systems in a musical setting, explore the web interpretation and annotations of two further compositions by the the author:


2. On not being too obvious

Treeness for viola and chamber organ includes a visual representation of the L-System in action as well as a concert recording of the music Heartstone for wind ensemble, piano and percussion provides a visual and aural interpretation of the score and access to an academic paper discussing how L-systems can be used in large-scale composition projects. The use of randomisation and generative grammars (L-Systems) are powerful ways to avoid not being ‘too obvious’, or indeed to avoid what might be retrieved from the imagination calling upon embedded memories of musical experience. The musical situations described here use the simplest of formats for randomisation, but there are many and more complex randomisation variants possible. Two examples of collections containing randomised types and objects can be found in the Supercollider Help Files by Daniel Nouri and the Real Time Composition Library (RTC-Lib) by Karlheinz Essl for Max/MSP. Surprise is a powerful element in the activity of listening to music. It is an established fact within empirical studies in music psychology that uncertainty in musical listening creates tension and expectation in the listener. When this listener is the composer a state of entropy can be induced through randomness and the deeper levels within generative processes and become a creative force. It can contribute to forming musical meaning by revealing patterns that have an innate tension that can make for a particular musical affect.


3. Every composer is different Personal understanding of a composing style - the Heartstone experience : focusing on rhythm and note length : binary rhythmics and accessing rhythms from library locations : constraints and limitations : the composing continuum - composing from start to finish : rough prototyping : pre-composition : defining a score : the allimportant manual : alternative solutions to on-line documentation : the contextual menu: arguments, values and annotations : learning a language : from aesthetic idea to code: the output is the score - String Trio (2012).

One of the attractions of computer-assisted composition is that it appears to offer a new and different way to compose, a way that just might be able to give new solutions to prevailing questions that can prevent pieces from being written. Below, the author, Nigel Morgan, reflects here on the problem of imagining music that seems impossible to compose: I remember working for most of a summer vacation on a large-scale composition for solo piano with wind, brass and percussion titled Heartstone. This I eventually abandoned after hours of thought and pages of sketches. Looking at these sketches now I realise my original ideas were largely unmanageable without computation. Pieces for large wind ensemble can require a lot of notes, because there are so many different instrumental parts and instrumental colours, more so than for a standard orchestra. If things go wrong, rewriting can become a very tiresome business indeed. Composers get around this by initially writing in short score, but the sheer quantity of music that the medium appears to need can be daunting and, eventually, as in my experience, defuse musical ideas altogether. The Heartstone Experience When I began to experiment seriously with CAC systems, the legacy of my abandoned composition Heartstone resurfaced and I began to see possibilities of realising it successfully. However, I was wary of getting stuck into such a large-scale composition project using a CAC system I was not wholly familiar with. Unexpectedly, personal events stayed my hand and I was given a sustained period of time to think and plan my relationship with this CAC.


3. Every composer is different

My eldest son was seriously ill and I spent many long days (and nights) in hospital where it was difficult to compose. I was away from my comfort zone my desk and my computer - but there were long periods of empty time, time when I could do nothing but wait and be the caring parent. However, this proved to be providential because it gave me a chance to think very carefully about a computer-assisted composition (CAC) system I had recently started to explore. Being away from my desk (and computer) gave me, curiously, a period of quality time to absorb this new system into my long-held working practice, particularly the system’s take on musical vocabulary and its lexicon of functions.

The final bars of the second movement, Prase, from Heartstone.

The first question that I had to answer, or so it seemed, was how I might more fully view my composing style as distinct parametric elements able to be coded. For example, could I describe effectively and accurately the metric and rhythmic structures present in my existing music? How did these elements surrounding time come about in the composing act? Was rhythm the primary source of my initial material, and if so could I describe the vocabulary of rhythms I would normally use, and if I could, would the CAC system be able to accommodate these? In a CAC system rhythmic coding begins from a single note length, which is not a rhythm per se : a rhythm requires as a minimum of two note lengths to incorporate duration. Previously, despite exposure to the multi-parameter serial thought of Olivier Messiaen, Milton Babbitt and Charles Wourinen, I had not ventured into a composing scenario where pitch and rhythm were !38

3. Every composer is different

tied together in any serial-like relationship. But I had been fascinated by the rhythmic groupings discussed and used by Messiaen, namely his notion of non-retrograble rhythms and his employment of ancient Greek metres, the Sarnfgadeva system of 120 degitalas, and the Carnatic or Southern Indian, system of 35 suladitalas. A sound example here of Messiaen’s Quatre Etudes de Rhythme: Mode de valeurs et d’intensitie. Here, a short explanation of Messiaen’s approach to rhythm in this highly structured piece might be useful. Take the series A,B,C,D and reverse it as D,C,B,A: the reversal has made it symmetrically different, a mirror image. This kind of series is subject to retrogradation. Take instead the series A,B,A. Reversed, this is A,B,A and therefore it is ‘non-retrogradable’ even if symmetrically reversible. Messiaen believed that such lateral rhythms are symmetrical and therefore time is cyclical: reading them from left to right represents the relation “present to future”, while reading them from right to left represents the relation “present to past”. Binary Rhythmics As I explored the rhythmic potential of my chosen CAC system I discovered that binary computation (working with combinations of 1 and 0) made possible the generation of 4-bit and 8-bit binary rhythmics. Binary rhythmics are common-place in African drumming and the Gamelan Music of Indonesia. They are also the mainstay of contemporary electronic dance music with ‘beats’ where duration is largely absent as a partner-parameter of rhythm. What is important is the attack onset, where the beat begins. Below is a symbolic presentation of a 4-bit binary list - all the possible combinations within a 4-bit list of the 1 and 0. These lists were placed in a library location that could be ‘picked’ at random but organised via a template. This is how it might work: ; a symbolic template (a b a a c d d a)

with four different symbols


3. Every composer is different ; Four different rhythms are picked at random from a library file (lib-symbol bin3 '(= = a a)) ; a (lib-symbol bin7 '(= a a a)) ; b (lib-symbol bin14 '(a a a =)) ; c (lib-symbol bin12 '(a a = =)) ; d ; The library file - 4-bit binary rhythmics (lib-symbol bin0 '(= = = =)) (lib-symbol bin14 '(a a a =)) (lib-symbol bin2 '(= = a =)) (lib-symbol bin3 '(= = a a)) (lib-symbol bin4 '(= a = =)) (lib-symbol bin5 '(= a = a)) (lib-symbol bin6 '(= a a =)) (lib-symbol bin7 '(= a a a)) (lib-symbol bin8 '(a = = =)) (lib-symbol bin9 '(a = = a)) (lib-symbol bin10 '(a = a =)) (lib-symbol bin11 '(a = a a)) (lib-symbol bin12 '(a a = =)) (lib-symbol bin13 '(a a = a)) (lib-symbol bin14 '(a a a =)) (lib-symbol bin15 '(a a a a)) ; The template output (a b a a c d d a) ‘((= = a a)(= a a a)(= = a a)(= = a a)(a a a =) (a a = =)(a a = =)(= = a a))

I quickly realised that I had intuitively worked with such rhythms and recognised in doing so the improvisatory nature of my own choice of such 4bit rhythmic groupings. This was particularly evident in my composition Metanoia, an extended piece for variable ensemble, a piece realised (but not directly created) in a hybrid computer language AMPLE.

A section from Metanoia using 4-bit binary rhythms.


3. Every composer is different

So by the time I started to plan a ‘new’ (and quite different) composition, still titled Heartstone, I acknowledged the advantage of defining my own libraries, which would allow rhythms to be organised by template-control. This device, a special function in some CAC software, enabled replacement rules to be enacted. Imagine having a library of 50 rhythms and the possibility of a picking device able select rhythms at random depending on how many different rhythms are required. Here below five different patterns are present in a template list. (a b a -> b -> c -> d -> = ->

b b a d c c c d a =) ; template ll6a '(1/16 1/16 -1/16 -1/16) ll9a '(1/16 -1/16 -1/16 -1/16) l9c '(1/4 -1/4 -1/4 -1/4) l10c '(1/8 -1/8 -1/8 1/8) l13c '(-1/4 1/4 -1/4 1/4)

So when a template as seen above is presented and evaluated this would be the outcome: (1/16 1/16 -1/16 -1/16 1/16 -1/16 -1/16 -1/16

1/16 -1/16 -1/16 -1/16




1/16 -1/16 -1/16

-1/16 1/16 1/16 -1/16 -1/16 1/8 -1/8 -1/8 1/8 . . )




Below is just part of the rhythm library that was used to pick the rhythmic values. The full code is available the score annotation here. ; Heartstone Rhythm Library; a 'basic' library file ; for note-length #2 - duple rhythms (lib-length l1a '(1/16 1/16 1/16 1/16)) (lib-length l1b '(1/8 1/8 1/8 1/8)) (lib-length l1c '(1/4 1/4 1/4 1/4)) (lib-length (lib-length (lib-length (lib-length

l2a l3a l4a l5a

'(1/16 1/16 1/16 -1/16)) '(-1/16 1/16 1/16 1/16)) '(1/16 -1/16 1/16 1/16)) '(1/16 1/16 -1/16 1/16))

(lib-length l2b '(1/8 1/8 1/8 -1/8)) (lib-length l3b '(-1/8 1/8 1/8 1/8))


3. Every composer is different (lib-length l4b '(1/8 -1/8 1/8 1/8)) (lib-length l5b '(1/8 1/8 -1/8 -/8))

In many ways the result of algorithmic decision-taking can be unnervingly close to human improvisation and inclination. This was revealed by the surprisingly fluent first pencil sketch on paper (i.e. a sketch with little or no correction) of a similar binary rhythmic passage (shown previously) in Metanoia. Other projects using early generative and interactive composition tools in the MIDI domain, such as David Zicarelli’s M and Dr T’s Programmable Variations Generator, imposed rhythmic imitations such as the use of tuplet rhythmics (groups of quintuplets and septuplets) and the difficulty of generating tied notes as part of syncopations. Later, and significantly, control of the parameter of a note-length’s duration joined these issues. This soon became a quite engrossing exercise, because to expose these issues demonstrated what was lacking, and might have to be written into the system. As new pieces begin development so too do new requirements in the rhythmic domain. Even with the advances in CAC systems since 1989 (when Heartstone was written) it's unlikely that every composer's requirements in the parameter of rhythm will ever be accommodated wholly. Listen to and view a dynamic web presentation of Heartstone and download its score and an academic paper associated with its composition. The Composing Continuum So to the big question: is it practical to think of CAC as handling the whole process of composing a concert piece from start to finish? Can a composing continuum be achieved that manages the whole composing process: from those pre-composition experiments to the production of a full-score (and parts)? For many composers who have investigated this approach the answer has been an emphatic no. But the gap between that no and a possible yes is closing.


3. Every composer is different

For some composers the goal of a composing continuum has not been so much the achieving a finished full-score in notation within a single computer application, but being able to experiment and try 'what ifs’, and at least produce, what is called in other design disciplines, a rough prototype. And this prototype should be in a transportable format, in musical format a MIDI file and/or MusicXML file. That said, some composers of note have made exciting and productive use of CAC systems to create the all-important body of material that underpins a composition. And this material is rarely ‘composed’ sections of scores, but collections of discrete parametric material from which a composer's imagination is able to gather together and fashion a comprehensible score. Towards a Sounding Score Although it has been mentioned previously the need to test out how a composer’s rhythmic language could be accommodated, the very first practical experiments usually start most successfully with the creation of small ensemble pieces for solo instruments of different timbres. Creating melodic lines is rarely a problem in a CAC system, but synchronising a quartet of melody lines is certainly more difficult. The parametric element can be summarised as requiring a melodic line to have at the very least rhythm and pitch. Rhythm and pitch are usually divided into separate parameters, but to talk of ‘rhythm’ can be a little premature, because what a system needs more precisely is a list of note-lengths to correspond or synchronise with a list of pitches. Like this: (setf pitches '(c4 cs4 c4 fs4 g4 fs4 cs4 fs4 c5)) (setf lengths '(s e s q q e e h q)) ;; s = 1/16, e = 1/8, q = 1/4, h = 1/2 (setf melody (make-omn :length lengths :pitch pitches ) => (s c4 e c5 s c4 q fs4 g4 e fs4 cs4 h fs4 q c5)


3. Every composer is different

In the code above pitches and lengths are brought together into a single statement by a function called make-omn that creates melody, OMN being an acronym for OpusModusNotation. This is the certainly the material, but it will only play out the melody as a ’snippet’ in the Opusmodus system. To go further into more than a single part we need to create (or define) a score, a score that will 'do the playing'. In most CAC systems a template is provided with a series of flexible slots into which the composer can fit the scoring details of instruments. Below is an example of such a template: to allow the variable melody to play with the sound of a clarinet at a defined tempo. (def-score clarinet-solo (:key-signature '(c maj) :time-signature '(24) :tempo 100) (clarinet :omn melody :channel 1 :sound 'gm :program 'clarinet )

Although first experiments usually begin with short solos they can easily be progressed to miniature quartets that start with the instruments playing together in unisons. Notice how each instrument has a stereo pan position value (0 -127). This ensures that the composer can hear the ensemble of instruments clearly by spreading their position across the stereo picture. (def-score quartet (:key-signature '(c maj) :time-signature '(24) :tempo 100 ) (alto-flute :omn melody :channel 1 :sound 'gm :pan ‘(15) :program 'flute )


3. Every composer is different

(bass-clarinet :omn melody :channel 2 :sound 'gm :pan ‘(45) :program 'clarinet) (violin :omn melody :channel 3 :sound 'gm :pan ‘(80) :program 'horn ) (violoncello :omn melody :channel 4 :sound 'gm :pan ‘(115) :program 'violoncello )

This may seem so very obvious, but it’s surprising how many composers come seriously adrift at this point. It all seems very longwinded, but this part of the ‘composition script’ simply has to be correct, and correctly laid out. However, once defined such a score definition can become a template for any number of experiments. Once the template is in place it can be saved under a file-name and pasted it into an empty file . . . Then, compose away knowing that it can be reused at any time. Don't belittle such experiments because you can very easily make them the starting point in the future for more elaborate test pieces.

The closing bars of a Quartet for wind and strings.


3. Every composer is different

Manuals, contextual menus and annotations
 In the past, composers beginning to use CAC environments had to search 'in the manual', and then spend hours of careful reading! The manual for David Zicarelli’s MAX system of 1992 was a vast loose-leafed file of over a 1000 pages! Gradually, designers realised that it was preferable for a system’s functions and their documentation to be available as menu items within the software, and imaginatively arranged to make it possible for the format to be printed into the score window. Documentation and exempla could be embedded in the system itself, and when needed brought to the composer in a separate window. We’re now seeing further ways to support the range and possibilities of a CAC system. One powerful solution is the ‘floating’ contextual menu:

This is at least somewhere to start. Nevertheless, taking in the potential of 700-plus functions is a huge undertaking. It’s good to have some strategies up your sleeve for managing this learning challenge. One recommended strategy is to collect together functions as you discover and use them, and place them into a dedicated ‘personal’ index. After a while, regularly print this list out. Have it by your side, or if you have a large enough screen display, keep it present in an open editor window on your system. Some CAC systems can give you a print out of all the functions used in a specific composition script. In creating a recent tutorial for a new CAC system the author made a text-file index (in alphabetical order), and kept it visually present so the function names became more and more familiar. This 30-stage tutorial was found to use just over a seventy different functions. The system itself contained over seven-hundred! !46

3. Every composer is different

So, a major challenge exists: how to discover and absorb the range and content of functions the CAC system contains. Acquiring function knowledge is like learning the vocabulary of a language. Some functions either generate material or process it, and these functions can be challenging because some contain many arguments and values; some are dedicated to the business of conversion from one data form to another, for example integers to pitches.; others can be described as utilities or even primitives having a subsidiary role, being one-shot functions doing one thing and one thing only. One such primitive is the append function able to join two or more lists of data together: (setq lis-1 ‘(c4 cs4 fs4 g4)) (setf lis-2 ‘(b4 c5 d5 f5)) (append lis-1 lis-2) => (c4 cs4 fs4 g4 b4 c5 d5 f5)

Learning a Language The analogy with learning a foreign language can be very helpful, even consoling. Developing fluency is often hard won; we can’t always immerse ourselves in learning by situating ourselves daily in the context in which the language is used. When working with a programming language in a sustained way, fluency develops gradually, but when that regular engagement ceases it can feel an uphill task making a re-engagement. For this reason making annotations of the code scripts you write can be very advantageous. An annotation is an extension of that all-essential commenting of code. It is not a shorthand for explaining what’s going on but an attempt to show a process or an outcome in more depth, and often with musical examples. It can provide not just an analysis of the narrative of the composition but a trace of the making process itself. The second author has made annotations of most of first author’s major composition projects using code, and they have been published on the latter’s web archive. Over the years these annotations have provided valuable sources of reflection on the how and why of composing. The composer Alexander Goehr has written famously that ‘a composer should always be conscious of the history of his (or her) art.’


3. Every composer is different

From Aesthetic idea, to Code, to Composition A good example of this trace of making can be found in the score and annotations of Nigel Morgan’s String Trio of 2012. This composition shows a piece created entirely through programming, and with no interventions, massaging or added decoration when taken to the stage of producing a fullscore. When the code is run, the composition is the output. This is not to say there is any particular merit or intrinsic value attached to being able to achieve this, except perhaps as a private demonstration of a certain consistency of purpose and thought. Here the composer tells the story of its composition: My String Trio began from the memory of hearing a broadcast of a string quartet by Franco Donatoni. It was probably my first experience of this composer’s music and it was not so much the sound or performance of the piece but the explanatory introduction that shed a little light on how it had been made. In his post-1970s compositions Donatoni developed what he termed ‘codes’ and ‘panels’. The very descriptions of these devices captured my imagination, and most particularly two aesthetic decisions peculiar to this string quartet. The first was that the quartet ensemble should ‘sound as a single instrument’. The second was that the music was to be created from a central event and be composed outwards in both directions. Intrigued by this idea, I developed a ‘code’ to make this happen in the String Trio’s 3rd movement. Here’s an integer listing that attempts to produce such an arrangement of pre-composed chords: (setq lis-x '(1 2 8 1 2 3 7 8 1 2 3 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5))


3. Every composer is different

Extract from the 3rd movement of Nigel Morgan's String Trio.

The aesthetic idea of the piece was carefully followed at the outset until a perceivable ‘plan’ had been devised. Then a script was put together able to follow and execute this ‘plan’, and with some accuracy. If you do view the annotation, you’ll notice the code contains several ‘home-made’ functions created especially for the composition. This is a further reward for those who gain some fluency with a CAC system: you can learn to devise your own tools. It is very common phenomenon to find that a composer has been led into working with a CAC system because it seems to offer a solution to solving a particular composition problem or realising an ambitious project. This is perhaps not the best premise on which to engage the challenge that CAC presents. It needn’t be all or nothing, one approach or the other, traditional skills and practice or computer scripted composition. We’ll see in the final chapter, ‘Strategies’, a composition (for piano trio) that uses a mixture of coded and ‘hand-crafted / ear-guided’ approaches. That said, as with learning a language properly, there comes a point of commitment where the composer has to be convinced the investment in time and a different mode of thought and action can be justified. When you learn a language seriously you begin to engage in the culture that stems from that language, and it is that culture that supports, colours and informs the hard and repetitive business of learning. Pluralism in music has become a feature of contemporary culture. In previous centuries there was more of a consensus about what represented the foundations, indeed expectations, of a musical composition. Music once had to contain certain elements related to formal rhetoric and affect. We are now !49

3. Every composer is different

in an age where there is an expectation that every composer is different and displays different qualities. Much of this ‘difference’ is about the means used to put the music together. To have and maintain a distinctive voice or style is helped by developing an understanding of what and how parametric elements contribute to a body of work. Programming the code of a composition provides a valuable trace of a composer’s way of working and the types of materials and processes being used, and if it is properly understood it can form the basis for reuse or expansion in future situations.


4. Being non-linear The origins of Collage and Open-form: Berio’s Sinfonia : Umberto Eco and the Open Work : the proto-minimalism of Janacek and Bartok : collage structuring of Earle Brown and Henri Pousseur : Terry Riley’s In C : example scores - collage-1 & 2: Dreaming Aloud for solo guitar - movement 1 : structuring collage with modulated sine waves : graphical representations of collage structures : Live Coding for improvisation into composition : eBop by Julio D’Escrivan.

One of the advantages of composing music within a CAC environment is that collage, open-form and/or non-linear structuring of material is possible. Within the time-line of musical history these approaches to making structure are relatively recent practices. Collage may have existed as a generative idea within traditional pattern-making for centuries as it can mimic natural processes. It was the invention of paper in China around 200 BC that first established its use by calligraphers in China and Japan where texts and images where created on separate sheets and then re-positioned. The term collage was first adopted by the early modernists in art, notably Picasso and Georges Braques who experimented with assembling an image with different surface materials giving a sculptural quality to their work. Since the 1920s collage has been recognised as a powerful and legitimate artistic medium and one whose influence can be seen across architecture, photography, film and poetry. It was certainly in film that collage became a technique employed in time-based art. The editing and cutting process makes it possible to produce powerful juxtapositions of scenes and events being assembled in a non-linear way. In music it has been the tape recorder and sampler that have given musicians the opportunity to explore the potential of collage in structuring and layering sounds, most usually from natural rather than instrumental sources. Where collage seriously enters the literature of formal vocal and instrumental composition is probably in the third movement of the Sinfonia by !51

4. Being non-linear

Luciano Berio. Here the composer creates a powerful composition for voices and orchestra from a collage of multiple quotations from the 2nd Symphony of Gustav Mahler. In addition there are at least sixteen recognisable excerpts from composers as diffuse as Bach and Brahms, to Boulez and Stockhausen. There could be said to be a wholly different aspect of collage found in the music of Leoš Janacek and Bela Bartok. Inspired and influenced by characteristics of their Eastern European folk music, they pioneered the use of very short motifs of pitch and rhythm material as the building blocks for their often extended compositions. Here is a selection of examples: In the opening of the wind sextet Mladi by Janacek we hear a chain of micro melodies revolving between each other in different combinations. Bartok’s Sonata for 2 pianos and percussion and orchestra plays relentlessly and with extraordinary invention on four and six-note motifs. Such pieces held a fascination for composers in the 60s and 70s and could be viewed now as a kind of proto-minimalism. Works such as Wildboy by Gordon Crosse and Ligeti’s Quartet No.1 (Métamorphoses nocturnes) prefigure aspects of systems music and minimalism whilst presenting a music of constant change of colour, direction and dynamic contrast without a relentless repetitive aspect.

The opening of Ligeti’s 1st Quartet.

In composing situations where a collage-like approach is required, weaving together very short lengths of parametric material can be explored !52

4. Being non-linear

through programming structures organised via symbolic ordering. Musicians are used to thinking of structural design with alphabetic symbols. Binary and ternary form uses A B A, A B C. Micro-structural forms as found in Janacek and later the minimalist Terry Riley work with many more symbolic elements (a to z, even) but in smaller metrical lengths, often only a few pitches within a single rhythmic expression. Think of Terry Riley’s In C, Mike Oldfield’s Tubular Bells, Rzweski’s Les Moutons de Panurge. And in more recent music the intricate patterning found in the percussion music of Michael Van der Aa and Rolf Wallin.

Part of the score to Terry Riley’s In C.

Alongside such approaches to composing there is the potential of working in Open-Forms. This is where structural decisions about the placing and sequencing of sections are freely made. During the 60s and 70s Open-Form technique appeared variously in the work of Stockhausen, Boulez, Henri Poussuer, and Earle Brown. The most comprehensive discussion of this approach to structuring time-based material can be found in the book The Open Work by Umberto Eco. In the chapter The Poetics of the Open Work Eco discusses Berio’s Sequenza for solo flute, the 3rd Piano Sonata by Pierre Boulez, Pousseur’s electronic work Scambi , and the Klavierstuke XI by Karlheinz Stockhausen. Such works, according to Eco, ‘reject the definite, concluded message and multiply the formal possibilities or the distribution of their elements. They appeal to the !53

4. Being non-linear

initiative of the individual performer and hence offer themselves not as finite works, which prescribe specific repetition along govern structural coordinates, but as ‘open works’, which are brought to their conclusion by the performer at the same time as he experiences them on an aesthetic plane.’ Eco is discussing here four works that are for solo performers. It was Earle Brown and Henri Pousseur who defied the logistic difficulties involved and conceived ‘open-form’ pieces for ensembles. Henri Pousseur made some significant electronic pieces using OpenForm, notably Scambi. Earle Brown was a pioneer in the use of novel notations and aspects Open-Form structuring. Here is a late work Special Events from 1999. Whilst Open-Form has long been problematic in live performance because of the difficulties surrounding the presentation and ordering of a physical score it has now entered the domain of musical and sonic installations, the dynamically mixed or composed soundtracks to some computer games, and graphic scores, now able to be delivered by digital displays. Although part of both authors’ academic research has been involved with Active Notation, which makes Open-Form structuring possible in a live context with a small ensemble, it has proved a rich area to work with as part of the composition process, whether it be the algorithmically-controlled ‘play’ of fragments within works for solo instruments (Array for solo violin, Dreaming Aloud and the movement Autumn from Sense of Place for solo guitar) or larger-scale ensemble works (with correspondingly larger sections of material) such as Self Portrait. In the realm of computer-assisted composition, collage and open-form enable the composer to become an improviser. There follows two short examples that illustrate how a collage may be realised. !54

4. Being non-linear

The first example is made out of seven short pitch phrases. Each phrases is identified with symbols a to g. Using a random generator these seven symbols (masquerading as pitch phrases) are extended to make a symbol-list of twentyfour symbols. This symbol-list is then turned back into pitch phrases. This makes for a very efficient method of producing a collage. In this piece the rhythm is based on a single length value e (1/8) and dynamics a single mf. ; using symbols to create collage-like structures #1


a '(c4c2 fs4) b c d e f g

'(cs4cs2 g4) '(c4 g4g3) '(fs4 c5fs2) '(fs5 cs5cs3) '(g5 c5fs4) '(g4c3 cs5))

(setf symbol-list (rnd-sample 24 '(a b c d e f g) :seed 2)) ; => (b a f b e b c e d d g e g d c b f f f f d b g g) (setf p-list (flatten (apply-eval symbol-list))); ; => (cs4cs2 g4 c4c2 fs4 g5 c5fs4 cs4cs2 g4 fs5 . . . (setf phrases (make-omn :length (span p-list '(e)) ; e = 1/8 :pitch p-list :velocity '(mf) )) (def-score collage-1 (:key-signature atonal :time-signature (get-time-signature phrases) :tempo 80 :layout (piano-grand-layout 'piano)) (piano :omn phrases :channel 1 :sound 'gm :program 0))


4. Being non-linear

So the flow of the above script is: • Seven phrases of pitch are ‘set’ with setf into the computer memory each carrying an alphabetic symbol as the variable name; • As a list of alphabetic symbols instead of pitches this symbol-list can be extended and randomised by the function rnd-sample; • The 24-item list can then be evaluated by apply-eval back into pitches as p-list; • Given a single rhythmic value of an eighth (e) and a dynamic (mf) the pitch phrases can become with make-omn a collection of phrases sounded out as a def-score named collage.

Collage #1.

The example above uses just a single parameter (pitch) as its source material, but we can attach further parameters, such as note-lengths and dynamics, and align exactly. In the example below we can see the way it’s done. Notice that instead of an alphabetic series, this example has an integer series: ; using symbols to create collage-like structures #2 (setf r0 '(e e) r1 '(-e e) r2 '(-e s e.) r3 '(-s e s) r4 '(s s s s s s) r5 '(-e s s -e))


4. Being non-linear (setf p0 p1 p2 p3 p4 p5

'(c4c2 fs4) '(cs4cs2 g4) '(c4 g4g3) '(fs4 c5fs2) '(fs5 cs5cs3) '(g5 c5fs4))

(setf v0 v1 v2 v3 v4 v5

'(f) '(mp) '(f) '(pp) '(p f mf) '(fff))

(setf (setf (setf (setf

sec (rnd-sample 12 '(0 1 r-list (assemble-section p-list (assemble-section v-list (assemble-section

2 3 4 5) :seed 2346)) 'r sec)) 'p sec)) 'v sec))

(setf phrases (make-omn :length r-list :pitch p-list :velocity v-list)) (def-score collage (:key-signature atonal :time-signature (get-time-signature phrases) :tempo 80 :layout (piano-grand-layout 'piano)) (piano :omn phrases :channel 1 :sound 'gm :program 0) )

The flow of this script is: • Three groups of seven phrases of are ‘set’ with setf into the computer memory each group have an alphabetic symbol combined with integer


4. Being non-linear

as their variable names. Group 1 is rhythm; group 2 is pitch; group 3 is velocity. • As lists of integers instead of rhythms, pitches and velocities the variable sec can be extended and randomised by the function rnd-sample; • The 12-item list can then be evaluated by assemble-section back into rhythms, pitches and velocities as r-list, p-list and v-list; • These three parameters lists are now brought to synchronise together with make-omn, a function that creates a single list in OpusModusNotation, then sounded out by def-score. => ((-e cs4cs2 mp) (-e s c4 f e. g4g3) (-e s c4 f e. g4g3) (-e cs4cs2 mp) (-e s c4 f e. g4g3) . . . .

Collage #2.

This approach to making texture out of the collage of micro-motifs forms the basis of part of the first movement of Nigel Morgan’s composition for guitar Dreaming Aloud.

An extract from the first movement of Dreaming Aloud.


4. Being non-linear

Seventeen short motifs of different phrase lengths were derived by the composer from a single pattern of pitches, (c4 g4 fs4 cs5). This pattern is No. 53 from Nicholas Slonimsky’s Thesaurus of Scales and Melodic Patterns. The patterns are arranged in a similar way to the example titled Collage-2 only instead of randomising a list of alphabetic symbols a modulated sine wave creates the ordering of the alphabetic collection. The expression below shows the detail of the two sine waves, the second modulating the first. The function list-plot enables the expression to be drawn on a graphical interface. (list-plot (gen-sine 48 1.9 60 :phase 90 :modulation (gen-sine 48 7 0.9)) :point-radius 0 :style :fill)

This kind of graphical representation of complex data can be a powerful tool in the composing process. It is yet another example of the potential of data conversion. Here the wave-form generation produces a collage collection shown below. (vector-map '(a b c d e f g h i j k l m n o p q ) (gen-sine 48 1.9 60 :phase 90 :modulation (gen-sine 48 7 0.9))) ; => (i l o o n n p q g c k q q o b l m a k m e l e i g d f b h o b o a a o j b o q c e i e p o n i o)

Deriving material in this way can have a powerful sense of improvisation attached to it. Once the expression is written it can be evaluated (with a different random seed) and an output ‘read’ (and heard) over and over again !59

4. Being non-linear

- with different, but controllable results. The mechanism for this lies in the changing of the arguments and values associated with the wave generator; and with randomised operations, the change of value in the random seed. The script for such improvisation can be subsumed into a Live-Coding environment, where the composer sets in motion a loop of the composition and interacts by changing and evaluating code as part of a real-time process.

Opusmodus - Live Coding Instrument (LCI).

Here’s the description of the Live Coding Interface from the documentation of the Opusmodus CAC system: LIVE CODING (sometimes referred to as ‘on-the-fly programming’ or ‘just in time programming’) is a programming practice centred upon the use of improvised interactive programming. Live coding is often used to create sound and image-based digital media, and is popular now in computer music, combining algorithmic composition with improvisation. Opusmodus joins Macintosh software such as SuperCollider, Chuck, Max and Pure Data in featuring live coding as a lively addition to its composing and improvising possibilities. View here a demonstration by composer Stéphane Boussuge of how Live Coding might create a sketch for a composition from within a CAC system. !60

4. Being non-linear

Integration of a Live Coding system inside a Computer-Assisted Composition environment is, at the time of writing, still unusual. Most of the developments of this phenomenon are focused towards the genre of improvised live electronic music, often with integrated graphics and video. Live Coding is undeniably script-based programming, so despite its restrictive musical idiom, it comes within the remit of this text. One of the most persuasive demonstrations of Live Coding development and practice has to be within the work surrounding Andrew Sorenson’s Impromtu software (now being developed as Extempore). This application marks a return of interest in interactive performance and composing software after a flurry of systems were developed in the late 1980s by David Zicarelli whose M software features in the chapter in Part 2 on ‘Duos’. Listen to Andrew Sorenson talk and demonstrate Live Coding with his software Impromtu.

The Impromtu Integrated Development Environment.

One of the delights of experiencing Live Coding is hearing how micro and macro abstractions and combinations of different processes can be revealed. Most CAC systems that offer some kind of real-time output (such as Opusmodus LCI featured above) can be linked to a MIDI or Digital Audio Workstation, so experiments and ideas can be transcribed in traditional !61

4. Being non-linear

notation and possibly then contribute to the material used in a formal composition. Patterns A good example of this approach can be seen in the way some composers make use the Patterns (Pdef) section of the Supercollider software. A composer can make phrases and structures through improvisation and test things out. Then a ‘performance’ can transmit MIDI data in realtime and be recorded onto a sequencer. This raw MIDI data can be used to make a score by refining and further quantising where needed. An example of this approach is found in some of the music of Venezuelan composer Julio D’Escrivan, in particular his eBop for solo baritone saxophone and live electronics. This score was created by accessing samples of every note on the saxophone (including its many multiphonics) and then devising parametric patterns of MIDI data using Supercollider through live-coded improvisation with particular functions and routines available in the software. Once patterns and structures were established and rehearsed, the composer recorded his virtual performance onto the Logic sequencer and then transferred the MIDI data into Sibelius to create a performance score.

The opening of eBop by Julio D’Escrivan.

If we relate what D’Escrivan is doing here to the earlier descriptions and discussion of collage the result is not dissimilar. What is different is that a !62

4. Being non-linear

simulation of an instrument has in the first instance been devised so that a kind of composition-instrumentation hybrid is created. This means that the composer’s experience of playing and improvising with this virtual instrument actually affects and impacts compositional decisions and informs the final score. Here is Julio D’Escrivan’s eBop played live by saxophonist Ben Cottrell.

Linearity in music is all about succession. Melodies and Intervals are linear constructs. Some of the most beautiful pieces of music, for example Gregorian plainchant, have an expressive linearity in conjunction with poetic text. But even in the early instrumental music of the Renaissance, music is patterned into sections, and such patterning provides the opportunity for vivid changes of content be it melodic, harmonic or rhythmic. As dramatic and expressionist movements became absorbed into musical composition, and the experience of cinema demonstrated the expressive potential for the juxtaposition of time and place, non-linearity developed as formal possibility in music. The structuring of music in a non-linear way can produce playfulness, surprise, and highly dramatic changes of expressive content. Using scriptbased programming such attributes can be controlled, and indeed organised in real time through scheduling and triggering instructions and as part of the user vocabulary of Live Coding.


 We hope you enjoyed this preview of Parametric Composition. To download the full book in ePub, mobi and PDF formats, visit:


Parametric Composition: Computer Assisted Strategies for Human Performance (preview)  

Composed music in its symbolic language of music notation remains fundamental to contemporary concert music. Technology may play a necessary...

Parametric Composition: Computer Assisted Strategies for Human Performance (preview)  

Composed music in its symbolic language of music notation remains fundamental to contemporary concert music. Technology may play a necessary...