cao generation accords

8
Score Generation in Voice-Leading and Chord Spaces Michael Gogins [email protected] Irreducible Productions Abstract Common principles of voice-leading can be represented using an orbifold (i.e. a quotient space) in which each point is a chord, and the smoothness of voice-leadings corresponds to the closeness of their chords in the space (Tymoczko 2005). The set of such voice-leadings for the major and minor triads includes the Tonnetz  , which leads to an understanding of how to use related geometries for all trichords, higher arities of chord, voice-leading solutions , and chord pr ogress ions. The  present work demonstrates the use of such spaces for algo- rithmic composition. A Lindenmayer system takes an axiom and symbol replacement rules, and recursively rewrites the axiom by applying the rules. A turtle that represents a chord, which moves within either a voice-leading space or a chord  progr ession space, then interpr ets the symbols in the nal  producti on of the Lindenmayer system as commands for writ- ing a scor e. This shows how scor e generat ors can work in mathematical spaces which have intrinsic musical structure. 1 Intr oducti on The use of algorithms to generate scores is as old as com- puter music (Hiller and Isaacson 1959). T oday there are many methods of algorithmic composition (Burns 1993). They can broadly be categorized as either grammatical , i.e. based on some sort of generative grammer, or mathematical, i.e. based on mathematical operati ons or forms such as fractals. Some notable examples of grammatically-generated pieces are the works of David Cope (Cope 1991; Cope 1996; Cope 2000). Some examples of mathematical ly-generated pieces are Viola  Elegy (Dodge 1994) and Gendy 3 (Xenakis 1995). I nd that the mathematical algorithms appeal more to my sense of musical taste, yet I also nd them difcult to control with respect to harmony and counterpoint, whether in the tra- ditional sense, or in the more general sense of having large- scale pitc h structur e and being well -formed. I do hear pro- ductions from grammatical algorithms that are harmonically and contrapuntally quite well-formed; yet to my taste, they do not sound sufciently original. Consequently, I have long searched for a means of imbuing the abstract spaces used by mathematic al algorithms with intrinsic musical structure . Recently, I chanced across Dmitri Tymoczko’s work on the geometry of musical chords (Tymoczko 2005). He identi- es some mathematical spaces that do have inherent musical stru ctur e. I think these space s could be used by a var iety of mathematic ally based compositional algorithms. The present work demonstrates such an algorithm, a Lin- denmayer system that generates scores by moving a turtle repr esen ting a chord about in two rela ted musica l spaces: a voice-leading space, and a chord progression space. 2 Musical Spaces T ymoczko and colleagues (Tymoczko 2005; Callender , Quinn, and Tymoczko 2006) have begun developing a geo- metric approach to music theory. The starting point is to rep- resent chords as points in a linear chord space, which has one dimension of pitch per voice, distinguishing inversions, oc- tav es, and order of voices. This space ext ends up and down to innity from a reference pitch at the origin. Chord space is continous, and every equally tempered and non-equally tem- pered chord can be dened in it. Musi c theor ists dist ingui sh var ious equi val ence clas ses for chords. For each equiv alen ce class (such as octa ve equiv- alence, permutational equivalen ce, inver sional equivalence, transpositional equivalence), as well as for each combination of equivalence classes, there is a corresponding orbifold in chor d space. The equiv alenc e denes which point s of the space are identied to form an orbifold (Callender, Quinn, and Tymoczko 2006). An orbifold is a quotient space whose points are equiva- lent under some group action (any combination of translation, rotation, glide rotation, and reection) that denes a symme- try . In other words , the group acti on permut es the corners of the orbifold, thus gluing faces of the quotient space to- geth er . For example, a stri p of pape r is a quotien t space of the plane; gluing two ends together creates a ring, which is an orbifold. Giving the ends a half twist before joining them creates a Moebius band, another orbifold.

Upload: fabian-gonzalez-ramirez

Post on 14-Apr-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 1/8

Score Generation in Voice-Leading and Chord Spaces

Michael Gogins

[email protected] Productions

Abstract

Common principles of voice-leading can be represented using

an orbifold (i.e. a quotient space) in which each point is a

chord, and the smoothness of voice-leadings corresponds to

the closeness of their chords in the space (Tymoczko 2005).

The set of such voice-leadings for the major and minor triads

includes the Tonnetz , which leads to an understanding of how

to use related geometries for all trichords, higher arities of 

chord, voice-leading solutions, and chord progressions. The

 present work demonstrates the use of such spaces for algo-

rithmic composition. A Lindenmayer system takes an axiom

and symbol replacement rules, and recursively rewrites the

axiom by applying the rules. A turtle that represents a chord,

which moves within either a voice-leading space or a chord 

 progression space, then interprets the symbols in the final

 production of the Lindenmayer system as commands for writ-

ing a score. This shows how score generators can work in

mathematical spaces which have intrinsic musical structure.

1 IntroductionThe use of algorithms to generate scores is as old as com-

puter music (Hiller and Isaacson 1959). Today there are many

methods of algorithmic composition (Burns 1993). They can

broadly be categorized as either grammatical, i.e. based on

some sort of generative grammer, or mathematical, i.e. based

on mathematical operations or forms such as fractals. Some

notable examples of grammatically-generated pieces are the

works of David Cope (Cope 1991; Cope 1996; Cope 2000).

Some examples of mathematically-generated pieces are Viola

 Elegy (Dodge 1994) and Gendy 3 (Xenakis 1995).

I find that the mathematical algorithms appeal more to my

sense of musical taste, yet I also find them difficult to controlwith respect to harmony and counterpoint, whether in the tra-

ditional sense, or in the more general sense of having large-

scale pitch structure and being well-formed. I do hear pro-

ductions from grammatical algorithms that are harmonically

and contrapuntally quite well-formed; yet to my taste, they

do not sound sufficiently original. Consequently, I have long

searched for a means of imbuing the abstract spaces used by

mathematical algorithms with intrinsic musical structure.

Recently, I chanced across Dmitri Tymoczko’s work on

the geometry of musical chords (Tymoczko 2005). He identi-

fies some mathematical spaces that do have inherent musical

structure. I think these spaces could be used by a variety of 

mathematically based compositional algorithms.

The present work demonstrates such an algorithm, a Lin-

denmayer system that generates scores by moving a turtlerepresenting a chord about in two related musical spaces: a

voice-leading space, and a chord progression space.

2 Musical Spaces

Tymoczko and colleagues (Tymoczko 2005; Callender,

Quinn, and Tymoczko 2006) have begun developing a geo-

metric approach to music theory. The starting point is to rep-

resent chords as points in a linear chord space, which has one

dimension of pitch per voice, distinguishing inversions, oc-

taves, and order of voices. This space extends up and down

to infinity from a reference pitch at the origin. Chord space iscontinous, and every equally tempered and non-equally tem-

pered chord can be defined in it.

Music theorists distinguish various equivalence classes for

chords. For each equivalence class (such as octave equiv-

alence, permutational equivalence, inversional equivalence,

transpositional equivalence), as well as for each combination

of equivalence classes, there is a corresponding orbifold in

chord space. The equivalence defines which points of the

space are identified to form an orbifold (Callender, Quinn,

and Tymoczko 2006).

An orbifold  is a quotient space whose points are equiva-

lent under some group action (any combination of translation,

rotation, glide rotation, and reflection) that defines a symme-try. In other words, the group action permutes the corners

of the orbifold, thus gluing faces of the quotient space to-

gether. For example, a strip of paper is a quotient space of 

the plane; gluing two ends together creates a ring, which is

an orbifold. Giving the ends a half twist before joining them

creates a Moebius band, another orbifold.

Page 2: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 2/8

Of course, the orbifold most familiar to musicians is pitch

under octave equivalence, or pitch-class set space, R/12Z,

where the octave is defined as 12 semitones.

For another example, equivalence under range R for nvoices defines the orbifold (R/RZ)

n. I call this ranged chord 

space. It has a top and bottom pitch for each voice, like a

score. Voices that move past the top of the score re-appear atthe bottom. Figure 1 shows ranged chord space for 3 voices.

Augmented triads are white, major triads red, and minor tri-

ads blue, but this is hard to see in the printed grayscale. Be-

cause its opposing faces are identified, the cube in the figure

can be considered a 3-dimensional torus.

Figure 1: Ranged chord space for 3 voices, 2 octaves

2.1 The Tonnetz

(Tymoczko 2005) has identified the orbifold that divides

pitch-class set space for n voices by the symmetry group for

n voices: (R/12Z)n /Sn. This could be called the completed

Tonnetz. Its fundamental domains are n− 1 dimensional sim-

plexes. The points of the orbifold are identified by a group

action that consists of a rotation (for odd dimensions) or a ro-

tation plus a reflection (for even dimensions). Figure 2 showsthis Tonnetz for trichords. The lines connecting chords indi-

cate movements of one semitone, so that joined chords are

closest neighbors and the lines indicate all minimal voice-

leadings.

The classical Tonnetz of Oettingen, Euler, and Riemann is

simply the six columns of major (red, dark gray as printed)

Figure 2: Tonnetz for trichords

and minor triads (blue, light gray as printed) surrounding the

central column of 4 augmented triads (white) that defines the

orthogonal “axis” of symmetry of the orbifold. One end of 

the prism can also be visualized as being rotated 120◦ and

glued to the other end to form a torus.

As a generalization of the Tonnetz, (R/12Z)n /Sn illu-

minates basic symmetries and constraints of Western music.

The major and minor triads are so flexible with respect both

to harmonic progression and voice-leading because they not

only surround the orbifold’s axis of symmetry, but also lie

near each other. Similarly, for tetrachords, commonly used

seventh chords surround the orthogonal column of diminished

seventh chords. I find understanding the Tonnetz to be ex-tremely helpful for understanding other musical geometries.

For an in-depth derivation of these spaces and more on

their relationships to other parts of music theory, see (Ty-

moczko 2005; Callender, Quinn, and Tymoczko 2006).

My approach here is inspired by Tymoczko’s work, al-

though I derive other spaces in order to represent the specific

operations that I require for score generation.

2.2 Representing Scores and Musical Opera-

tions

In the present work, musical scores are represented as

functions of time onto chord space. Arpeggios, passing tones,counterpoint, and so on are considered to be composed of 

more or less fleeting or elaborated chords.

I do not directly use the completed Tonnetz as a space

for compositional algorithms, although it deserves further in-

vestigation for that purpose. My reason is that in the Tonnetz,

whereas a primitive operation such as a translation vector that

Page 3: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 3/8

does not cross a face of the orbifold has of course always the

same orientation, if the same translation does cross a face it

can change orientation as it is reflected from a symmetry hy-

perplane. I find it simpler to use spaces in which there are

no mirrors, so that (for example) adding a vector to a chord

always moves it along the same orientation, whether or not

the chord is near a face of the quotient space.I have found two spaces to be the most useful for rep-

resenting the primitive operations executed by Lindenmayer

systems: ranged chord space, which I use to find voice-leading

solutions (so it could also be called voice-leading space), and

normal chord space (defined below), which I use to imple-

ment chord progressions (so it could also be called chord pro-

gression space).

Other properties of music may also, for convenience in

implementing algorithms, be represented as additional, higher

dimensions of chord space. For example, three dimensions

(0, 1, 2) suffice to represent the pitches of a trichord. Three

more dimensions (3, 4, 5) may be used to represent the re-

spective loudnesss of the voices. Dimensions (6, 7, 8) maybe used to represent the durations of each voice in the chord.

And so on. However, throughout the present work, pitch will

always be represented in the lower subspace, and it is this sub-

space that is be meant when referring to “chord space” even

if additional dimensions are in fact used to represent music.

2.2.1 Voice-Leading in Ranged Chord Space

Tymoczko defines a normlike total preorder for voice-

leadings within the completed Tonnetz, first by smoothness

(distance between chords, using either the taxicab norm or

the Euclidean norm), and then by parsimony (fewer or shorter

movements of voices). Every known measure of voice-leadingsize creates a normlike total preorder (Tymoczko 2005), but

Tymoczko’s measure has the advantage of being very simple.

I have used this normlike ordering to implement a sim-

ple algorithm for finding the closest voice-leading in ranged

chord space from a source chord to a target pitch-class set.

Such algorithms can be very useful in score generators. Keep

in mind that each voice of the source chord could be in any

octave of the space’s range. Because both the Tonnetz and

ranged chord space inherit their metric from the same parent,

Euclidean space, it follows that the normlike total preorder

for voice-leadings in the Tonnetz also exists in ranged chord

space.

1. Store the source chord and target pitch-class set.

2. Generate the lattice of all chords within ranged chord

space that match the target pitch-class set, by iterating

octavewise through all points in the space and storing

the matching chords.

3. Compare the voice-leading from each chord in the lat-

tice to the source chord, first by smoothness, then by

parsimony (it is easy to add the option of excluding

parallel fifths). My current implementation uses a brute

force search to compare voice-leading sizes, but as long

as this need not be done in real time, it is fast enough.

4. Return the target chord with the closest voice-leading.

Of course, with its chord-by-chord solutions, this algorithm

does not perform backtracking to obtain voice-leadings that

are optimal across a span of chords as do such rule-based

counterpoint generators as (Schottstaedt 1984) or some of its

descendants. But it would be easy to add memory to find

voice-leadings that are optimal across a span of chords.

2.2.2 Chord Progression in Normal Chord Space

Just as ranged chord space is a space in which applying a

given voice-leading translation to any chord always produces

the same pitch-class set, it is valuable to have a space in whichapplying a given chord-progression translation to any chord

always produces the same pitch-class set. I call such a space

normal chord space (not to be confused with normal order 

for chords!). This space can be formed by dividing the fun-

damental domains of the completed Tonnetz into symmetrical

“kites” and stacking them on top of each other, as shown in

Figure 3 for trichords.

Figure 3: Normal chord space for trichords

Both in the Tonnetz for trichords and in normal chord

space, a chord transposition is simply a translation along the

orthogonal “axis” of the quotient space. To illustrate reflec-

tion from the orbifold mirrors, in the Tonnetz for trichords

this translation is performed without distinguishing the inver-

sion of the chord. For example, starting with the major triad

Page 4: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 4/8

{−3, 1, 4} and progressing upwards by semitones, the triad

will move step by step up one column of major triads (root

position), then rotate 120◦ to the second column (first reflec-

tion) and divide by the modulus of the space to appear at the

bottom of the column and move step by step up that column,

then rotate 120◦ to the third column (second reflection) and

divide to appear at the bottom of the column to move step bystep up that column. Hence the sequence of all major triads

is as follows, using the actual coordinates (to get the pitch-

classes, take these coordinates modulo 12):

{-3, 1, 4}

{-2, 2, 5}

{-1, 3, 6}

{ 0 , 4 , 7 }

{-3, 0, 5}

{-2, 1, 6}

{-1, 2, 7}

{ 0 , 3 , 8 }

{-4, 1, 5}{-3, 2, 6}

{-2, 3, 7}

{-1, 4, 8}

In normal chord space, on the other hand, the chord moves

step by step up the column of 12 major triads and then is

shifted down an octave to begin again at the bottom of the

same column, so the sequence of triads is:

{ 0, 4, 7}

{ 1, 5, 8}

{ 2, 6, 9}

{ 3, 7, 10}{ 4, 8, 11}

{ 5, 9, 12}

{ 6, 10, 13}

{ 7, 11, 14}

{ 8, 12, 16}

{ 9, 13, 17}

{10, 14, 18}

{11, 15, 19}

2.2.3 An Example of Use

One reason polyphonic music works is that a single pitch-

class set can have permutations that lie far apart  in the Ton-netz, yet different  pitch-class sets can have permutations that

lie near  each other. This enables composers to easily switch

back and forth between thinking of pitch-class sets and think-

ing of their permutations, in order to discover paths through

the Tonnetz that are both interesting harmonically and smooth

contrapuntally.

As an example of such operations performed in different

spaces, the following steps implement the common composi-

tional moves of beginning with a known source chord, choos-

ing a progression to a target pitch-class set, and finding the

chord that provides the closest voice-leading from the source

chord to that pitch-class set:

1. The source chord is a point in ranged chord space.

2. Reduce the source chord to its pitch-class set, then in-

vert it (in the musician’s sense, by moving its lowest

voice up an octave) till it is closest to the orthogonal

“axis” of chord space, to locate the source in normal

chord space.

3. The progression between every pair of chords in nor-

mal chord space is a specific translation with a modulus

that depends on the range of the resulting chord. Per-

form the translation that produces the desired progres-

sion. For example, the V–I progression is produced by

moving 5 semitones orthogonally up the colum of ma- jor triads in normal chord space, e.g. A to D is

(9, 13, 16) + (5, 5, 5) = (14, 18, 21)

− 14 / 12(12, 12, 12)

= (2, 6, 9).

In other words, if the first voice of the resulting chord

goes up (or down) out of its original octave, the whole

chord is shifted down (or up) back into the original oc-

tave. For another example, the ii–V progression is pro-

duced by moving 5 semitones orthogonally up the col-umn of minor triads, then moving 1 semitone up in the

2nd voice to change the chord to a major triad, so the

translation vector is (5, 6, 5).

4. The target has now been obtained in normal chord space.

Find the best voice-leading from the source chord to the

target pitch-class set in ranged chord space, using the

voice-leading algorithm described above.

I am not claiming that musical orbifolds model all nu-

ances of the musical ear and highly developed musical styles.

My point is simply that mathematical spaces can be imbued

with musical structure such that simple operations in thosespaces have intrinsic musical intelligibility — there is no need

for the further step of an arbitrary mapping from the mathe-

matical results onto musical semantics. I will return to this

point later.

Page 5: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 5/8

3 Lindenmayer Systems

Lindenmayer systems are recursive functions that rewrite

strings (Prusinkiewicz and Lindenmayer 1991). Each Lin-

denmayer system consists of an axiom or initial string of 

atoms, a table of rules each specifying how one atom is to

replaced with a string of atoms, an implicit rule that an atomwith no replacement is replaced by itself, and the number of 

iterations for the recursion. In addition, some of the atoms of 

the system are commands for a “turtle” in a turtle graphics-

like system. For example, F might mean move one step while

drawing a line, f move one step without drawing a line, +

turn right, - turn left, [ push the turtle state onto a stack, and

] pop the turtle state from the stack (pushing starts a branch;

popping returns the turtle to the branching point.)

The Lindenmayer system is iterated a the specified num-

ber times. Repeated replacements usually expand the initial

axiom into a very long string of atoms, called the production

of the system. The production is then interpreted as a program

for the turtle, which draws a figure in the space.

3.1 OL Lindenmayer Systems

In the simplest type of Lindenmayer system, or OL sys-

tem, also called context-free, the replacement rules do not

depend on the state of the production on either side of the

current atom, and do not take parameters.

OL systems have already been used for some time to gen-

erate musical scores in spaces where time is one dimension of 

the space (Holtzman 1981; Gogins 1992; McCormack 1996).

Adapting OL systems to generate scores in chord spaces,

where each dimension of the space is a voice and time is

simply the sequence of chords, was straightforward. I imple-mented the score generator using Python (van Rossum 2006),

the SciPy package which provides efficient matrix arithmetic

for Python (Oliphaunt, Peterson, Jones, et al. 2005), and

CsoundVST, an extended version of Csound 5.0 with Python

scripting and some facilities for mathematically-based algo-

rithmic composition (Vercoe, ffitch, et al. 2006).

3.2 An OL Lindenmayer System for Musical

Orbifolds

In an n-dimensional space, the turtle can be defined as

a position vector, the step as another vector, movement as

adding the step vector to the turtle vector, and rotation as mul-

tiplying the step vector by a rotation matrix, so that the step

points in a new direction.

In the present work, the turtle moves in an n-dimensional

chord space. Sometimes the turtle is moving voicewise in

ranged chord space (V commands), or voice-leading space,

and sometimes it is moving chordwise in normal chord space

(P commands), or chord progression space. Chords are cre-

ated with the C commands. The Ca command creates a chord

at the current position of the turtle in ranged chord space.

The Cv command creates the chord equivalent to the target

pitch-class set that is closest to the current position of the tur-

tle according to Tymoczko’s measure, using the voice-leading

algorithm described above.Because each operation is defined on one or another quo-

tient of chord space, all operations can actually be performed

on points in chord space alone, using ordinary matrix arith-

metic. The actual quotient space is defined by the specific

modulus or other action that identifies points in the space.

Time is defined as the sequence of chords, and the turtle

state includes the size of the time step (T commands). Table

1 summarizes the turtle commands.

4 Generating a Piece

The Pv and Cv turtle commands shown in Table 2 set upa C major chord, then create a IM7 ii7 V7 VIM7 progression

(Figure 4).

Figure 4: Progression

A sequence of these progressions can be created using a

simple Lindenmayer system with one substitution rule (Table

3, Figure 5). Note the smooth voice-leading. Note also howthe voices spread out because the voice-leading algorithm is

concerned only with smoothness and parsimony, and not at

all with range. This of course could be changed.

Figure 5: Sequence

Table 4 and Figure 6 show how the V commands can move

Page 6: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 6/8

Chord Creation

Ca Write chord at current absolute position of tur-

tle in ranged chord space.

Cv Write chord with turtle’s pitch-classes, but at

smoothest voice-leading from prior chord.

Ccname Write jazz-named chord (e.g. D7b9) atsmoothest voice-leading from prior chord.

Size of Turtle Step

S*x Multiply step by x.

S/x Divide step by x.

S=d, x Assign x to dimension d of step.

Sad, x Add x to dimension d of step.

Ssd, x Subtract x from dimension d of step.

Smd, x Multiply dimension d of step by x.

Sdd, x Divide dimension d of step by x.

Orientation of Turtle Step

O+a, b Rotate turtle step by A from dimension a to b.

O-a, b Rotate turtle step by A from dimension b to a.

Voice MovementVf Move turtle one step in ranged chord space.

V=d, x Assign x to dimension d of turtle.

Vad, x Add x to dimension d of turtle.

Vsd, x Subtract x from dimension d of turtle.

Vmd, x Multiply dimension d of turtle by x.

Vdd, x Divide dimension d of turtle by x.

Progression of Chords

Pvv Move turtle v by adding a vector v to it,

v0, . . ,vn−1.

P=d, x Assign x to dimension d of turtle position in

normal chord space.

Pad, x Add x to dimension d of turtle position in nor-

mal chord space.

Psd, x Subtract x from dimension d of position in

normal chord space.

Pmd, x Multiply dimension d of turtle position by x.

Pdd, x Divide dimension d of turtle position by x.

Pcname Set voices of turtle to jazz-named chord (e.g.

D7b9) at smoothest voice-leading from prior

state of turtle, without sounding.

Tempo

T=x Assign x to time step size.

Tax Add x to time step size.

Tsx Subtract x from time step size.

Tmx Multiply time step size by x.Tdx Divide time step size by x.

Branching

[ Push turtle state on stack (branch).

] Pop state off stack (return to branching point).

Table 1: Turtle Commands

Iterations 1

Axiom C=CM7 Cv Pv1,2,1,2 Cv

Pv5,5,5,6 Cv Pv2,2,3,2 Cv

Table 2: Progression

Iterations 1

Axiom C=CM7 A A A

Replace A Cv Pv1,2,1,2 Cv Pv5,5,5,6 Cv

Pv2,2,3,2 Cv

Table 3: Sequence

voices one at a time to produce arbitrary counterpoint. In the

Lindenmayer system’s interpreter, voices with the same pitch

in different chords are tied. In this system, the replacement

rule for B itself includes references to B, so that 2 iterations

cause a recursive expansion of the motive. The T commands

also cause the 2nd replacement to move at a faster tempo.

Finally, Table 5 represents the Lindenmayer system for apiece of 3 minutes 45 seconds. The axiom creates a major 7th

chord, then specifies an ABBA form. The [ and ] commands

push and pop the turtle state from a stack, so that the chord

appearing before [ re-appears after ]. The A section is con-

structed from the Table 3 sequence above, as well as another

similar sequence. The B section consists of the independent

voices section described in Table 4, recursively constructed at

faster and faster tempos. In the B section, one of the voices

is moved before rule B is applied, which affects all subse-

quent voice-leading. At the ends of the A, D, and F  sections,

the E section generates arpeggiations within some chords.

The score, code, and output from this piece can be found

at http://www.ruccas.org/index.php?Michael

Gogins.

5 Discussion

5.1 Limitations

This approach does know something about voice-leading;

but nothing about counterpoint proper, imitative procedures,

Iterations 2

AxiomC=CM7 B

Replace B Td1.125 Cv Va0,2 Cv Va1,3

Va2,2 Cv B Vs3,4 Cv B Va0,2

Cv Va1,3 Va2,4 Cv Va3,3 Cv Cv

Tm1.125

Table 4: Independent Voices

Page 7: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 7/8

Figure 6: Independent Voices

Iterations 3

Axiom C=CM7 V=4,0 V=5,1 V=6,2 V=7,3

A Cv Cv [ V=4,4 V=5,5 V=6,6

V = 7 , 7 B C v C v B C v C v ] A C vCv

Replace A F F E D D E F E Cv Cv

Replace B Td1.125 Cv Va0,2 Cv Va1,3

Va2,2 Cv B Vs3,4 Cv B Va0,2

Cv Va1,3 Va2,4 Cv Va3,3 Cv Cv

Tm1.125

Replace D Cv Pv1,2,1,2 Cv Pv2,3,2,3 Cv D

Cv

Replace E Cv [ V=4,4 V=5,5 V=6,6 V=7,7

Td2. Vs3,12 Ca Vs2,12 Ca

Vs1,12, Ca Vs0,12 Vs1,12

Vs2,12 Vs3,12 Ca E Tm2.0 ]

Cv

Replace F Cv Pv1,2,1,2 Cv Pv5,5,5,6 Cv

Pv2,2,3,2 Cv F Cv

Table 5: Sample Piece

tonal key, or serial procedures.

These musical spaces always represent a fixed number of 

voices, though dropping voices can be simulated by doubling

or silencing some (Figure 6).

The voice-leading algorithm is not flexible, so the target

chord stays close to the source chord in range, yet may wan-

der up and down the score, or gradually widen or narrow inrange.

In other words, exercising basic movements within musi-

cal spaces does not model the fine points of musical hearing

or of any musical style.

5.2 Strengths

One reader of an earlier version of this paper noted that

the simple operations described here could have been imple-

mented in any number of ways — why, therefore, do I feel

that this geometric approach is better? I think it is better be-

cause representing chords as points makes it possible, with-

out omitting information, to represent any piece of music asa function from time onto voice-leading space, or onto chord

space. Ultimately this makes it not only possible, but easy,

to manipulate all the information in a piece recursively (as

with the Lindenmayer system), or even globally, using purely

mathematical operations.

Regarding the distinction between grammatical and math-

ematical algorithms for composition, the Lindenmayer sys-

tem presented here is a hybrid. It is a generative grammar

whose production is a geometry. In previous musical Linden-

mayer systems, the productions have been geometries with-

out musical interpretation. As a final step in score generation,

each geometry was mapped onto a range of pitches, times,

voices, and so on; in other words, each dimension needed tobe given a musical interpretation. In the Lindenmayer system

presented here, the geometry has a built-in musical structure,

which removes the need for most of these additional layers

of musical interpretation. To my ear, this removes an audible

element of arbitrariness from the music.

This Lindenmayer system can focus, as it were, on coun-

terpoint by using the V commands to directly control the move-

ments of independent voices, or it can focus on harmony by

using the P commands to directly control the progression of 

the chords, with or without connecting them smoothly through

the voice-leading algorithm.

To me, the most interesting musical feature of this system

is how easily recursive patterns of movement in chord space

can create top-down, hierarchical pitch structures of arbitrary

depth.

Page 8: CAO Generation Accords

7/30/2019 CAO Generation Accords

http://slidepdf.com/reader/full/cao-generation-accords 8/8

5.3 Future Directions

It should be straightforward to modify the voice-leading

algorithm to control range and spacing.

It would of course be useful to have a concise way to rep-

resent changing numbers of voices.

Although (as noted) these procedures do not model so-

phisticated hearing or particular styles, in the context of al-

gorithmic composition the very simplicity of the underlying

spaces and measures is a virtue, enabling the concepts to be

adapted to a wide variety of compositional procedures. These

could include chaotic dynamical systems, applying musical

filters to images or scientific data, Xenakis sieves or other

stochastic generators, and others.

The use of geometry to model voice-leading and chords

opens the composition of pitch structures up to all the re-

sources of geometric algebra, and perhaps even topology and

algebraic geometry. As far as I know, these branches of math-

ematics have not seen as much musical application as, say,

group theory.The musical spaces discussed here represent very basic,

obvious aspects of musical structure. One wonders whether

other spaces could be designed, or discovered, that could per-

haps bear equally simple and useful, yet less obviously com-

mon and basic aspects of structure. After all, there is an in-

finity of spaces.

5.4 Acknowledgments

I thank Dmitri Tymoczko for his generous patience in dis-

cussion and for helping me with the mathematics. Any errors

that remain here are of course my own. I also benefitted from

discussing earlier versions of these ideas with Drew Krauseand the members of the New York Csound Users Group.

References

Burns, K. H. (1993). The History and Development of Algorithms

in Music Composition, 1957-1993. Ph. D. thesis, Ball State

University.

Callender, C., I. Quinn, and D. Tymoczko (2006). Gen-

eralized chord spaces. Unpublished, http://music.

princeton.edu/˜dmitri.

Cope, D. (1991). Computers and Musical Style. Number 6 in

Computer Music and Digital Audio. Middleton, Wisconsin:

A-R Editions.

Cope, D. (1996). Experiments in Musical Style. Number 12 in

Computer Music and Digital Audio. Middleton, Wisconsin:

A-R Editions.

Cope, D. (2000). The Algorithmic Composer . Number 16 in

Computer Music and Digital Audio. Middleton, Wisconsin:

A-R Editions.

Dodge, C. (April 1994). Any Resemblance is Purely Coinciden-

tal, Audio cd Viola Elegy. Number NA043. New Albion

Records.

Gogins, M. (Winter 1992). Fractal music with string rewriting

grammars. News of Music 13, 146–170.

Hiller, L. and L. Isaacson (Eds.) (1959). Experimental Music:

Composition with an Electronic Computer . New York, NewYork: McGraw–Hill.

Holtzman, S. R. (1981). Using generative grammars for music

composition. Computer Music Journal 5(1), 51–64.

McCormack, J. (1996). Grammar based music composition. In

R. Stocker et al. (Eds.), From Local Interactions to Global

Phenomena, Complex Systems 96, Amsterdam. ISO Press.

Oliphaunt, T., P. Peterson, E. Jones, et al. (2005). Scipy — scien-

tific tools for python. http://www.scipy.org.

Prusinkiewicz, P. and A. Lindenmayer (1996 [1991]). The Algo-

rithmic Beauty of Plants. New York: Spring-Verlag. Avail-

able online at http://algorithmicbotany.org/

papers.

Schottstaedt, B. (1984, May). Automatic species counterpoint.Technical Report STAN-M-19, Center for Computer Re-

search in Music and Acoustics, Stanford, California.

Tymoczko, D. (2005). The geometry of musical chords. Unpub-

lished, http://music.princeton.edu/̃ dmitri.

van Rossum, G. (2006). Python. http://www.python.org.

Vercoe, B., J. ffitch, et al. (2006). The canonical csound ref-

erence manual. http://www.csounds.com/manual/

Csound5.00_manual.pdf.

Xenakis, I. (1995). Xenakis: Ais, Gendy3, Taurhiphanie, Thallein

 / Nee, Steiger , Audio cd Gendy3. Number 45086. Neuma.