You are on page 1of 107

Copyright and use of this thesis

This thesis must be used in accordance with the


provisions of the Copyright Act 1968.
Reproduction of material protected by copyright
may be an infringement of copyright and
copyright owners may be entitled to take
legal action against persons who infringe their
copyright.
Section 51 (2) of the Copyright Act permits
an authorized officer of a university library or
archives to provide a copy (by communication
or otherwise) of an unpublished thesis kept in
the library or archives, to a person who satisfies
the authorized officer that he or she requires
the reproduction for the purposes of research
or study.
The Copyright Act grants the creator of a work
a number of moral rights, specifically the right of
attribution, the right against false attribution and
the right of integrity.
You may infringe the author’s moral rights if you:
- fail to acknowledge the author of this thesis if
you quote sections from the work
- attribute this thesis to another author
- subject this thesis to derogatory treatment
which may prejudice the author’s reputation
For further information contact the University’s
Director of Copyright Services
sydney.edu.au/copyright
Formal methods for the design of imitative
polyphonic structures

Jurjen Lippold van Geenen

A thesis submitted in partial fulfilment of


requirements for the degree of
Doctor of Philosophy

Sydney Conservatorium of Music


University of Sydney
2013
ii
Abstract

This thesis defines novel and efficient methods for the design of stacked canons and their use in imitative
polyphonic structures. Chapter 1 discusses the development of canon- and fugue-techniques and their con-
nection in stretto-fugues such as found in Bach’s ‘Kunst der Fugue’. Several examples show that larger
polyphonic structures are sustainable by a main theme which can appear in many different canons, called
stretti. Hence, techniques to effectively design such themes require the availability of efficient techniques
for the creation of several types of canons. In search of such techniques, chapter 2 provides a theoretical ba-
sis for the remainder of the thesis. An analysis of the established counterpointing and intervallic approaches
to the construction of stacked canons shows that these provide limited harmonic control and are computa-
tionally complex. While efficient and in complete control of harmony, Morris’ Tonnetz approach targets
serial stacked canons ad minimum and does not encompass voice-leading constraints. A style-independent,
constructive approach using relative chord tones, chord sequences and chord sequence modulations is pre-
sented along with its connections to graph-theory in address of these issues. An analysis of Rameau’s Canon
at the Fifth from his Traité de l’harmonie introduces the concept of relative chord tones and incorporates
two constraints discussed in the Traité in the newly proposed relative chord tone model, namely, obtaining
complete chords, and, preparation and resolution of sevenths. The analysis explains Rameau’s choice of
dux and chord sequence in terms of the conjunction of these constraints. Using my definition of restless
dux graphs, the problem of obtaining complete chords is reduced to the Hamiltonian cycle problem in a
dux graph. The problem of finding a dux according to the conjunction of the aforementioned constraints
is reduced to the definition of a generating function. An approach to the incorporation of voice leading
constraints is sketched, by the detailed discussion of prohibitions of firstly parallel octaves, and secondly,
parallel fifths. After deriving a least upper bound on the maximum number of voices in a stacked canon
without parallel octaves in terms of the canon’s chord sizes, the problem of finding a dux for such a stacked
canon with a maximum number of voices is reduced to the Eulerian cycle problem in a restless dux graph.
It is also proved that the conjunction of either constraint reduces the aforementioned least upper bound by
a single voice. My definition of dux graphs with rests allows the definition of two near linear dux gen-
eration algorithms which respectively satisfy the first and either constraint. The problem of constraining
the inversion of chords is discussed in terms of the incorporation of a constraint which prohibits 64 chords.
The remainder of the chapter discusses two methods which allow variations in a stacked canon’s melody
based on a predetermined chord sequence, followed by a discussion which counts the number of distinct
sub-canons of a stacked canon. It is established that the latter number shows double exponential growth
in the chord sizes of a chosen chord sequence, in demonstration of the applicability of my methods to the
design of thematic material for use in larger scale imitative polyphonic structures.
Chapter 3 discusses my compositions Spiral which is based on several themes, the main two of which

iii
iv

were derived as relative chord tone sequences using results from chapter 2. The chapter also discusses
several techniques related to the organization of polythematic stacked canonic structures in larger scale
composition. The first movement was designed in terms of several harmoniolas, in which neither of the
aforementioned themes appears in a stretto. The second movement is designed as a passacaglia structure
based on the aforementioned second theme, onto which many distinct combinations of either theme are
superimposed. The final movement mirrors the structure of the first movement, testing my conjecture that
the use of a chromatic mirror axis can mirror the affects experienced by an audience.
Chapter 4 discusses my composition Fugue in G, the main theme of which was derived as a Hamiltonian
cycle in the underlying dux graph. The fugue contains many stretti whence the chapter provides further a
discussion on the organization of polythematic canonic structures in larger scale composition. While the
theory presented in chapter 2 enables one to derive efficient algorithms for the generation of stacked canons
adhering to personal stylistic preferences, their derivation may be tedious. This is especially so when
experimenting with different rules.
Chapter 5 discusses a method which uses constraint logic programs with relative chord tone domains
to efficiently search for the thematic material of polythematic stacked canonic structures. The composition
process for my ‘Missa ad Fugam’ is discussed in demonstration of this technique. The Mass uses three
main themes, each of which allows a four-voice stacked canon, and each pair of which allows a four-voice
stacked double canon. Finally, chapter 6 summarizes the main results of this thesis and provides an outlook
on future research.
Acknowledgments

In none-decreasing order of gratitude, I wish to give thanks to:

• Ivan Zavada from the Composition and Music Technology department for his continued support and
supervision of my candidature;

• My parents, brothers and sister, for their continued support of my efforts, wise or unwise;

• My grandparents, for still being there and always having been there in a lovely way, and for the
beautiful cover my grandfather designed;

• The Sydney Conservatorium of Music, University of Sydney, and Commonwealth of Australia, for
the University of Sydney Postgraduate Award which allowed me to pursue a doctorate;

• Kees van den Bergh, for the many hours we talked over the phone during my eventful time in Sydney;

• Ralf Pisters, for the enthusiastic discussions involving computer science and music, and for proof-
reading parts of my thesis. You were one of very few whom I could share my findings with;

• Jacqui Ingram and Linda Knowles, for providing a pleasant micro-climate in often stormy weather;

• The department of mathematics and computer science at the Eindhoven University of Technology,
for teaching the ‘Eindhoven style of programming’[Dij96] during my computer science studies;

• My teachers Henk de Croon, Marinus Kasbergen, Pieter van Moergastel and Kees Schoonenbeek at
the ‘Brabant’s Conservatorium’ (now Fontys Conservatorium) during my music theory studies for the
enthusiasm, experience and knowledge you transferred;

• My beloved Caroline, for a pleasant and worthwhile return to the Netherlands.

v
vi
List of Figures

1.1 Condensed representation of ‘Sumer is icumen in’ . . . . . . . . . . . . . . . . . . . . . . . . 5


1.2 Bars [171..177] of ‘Fantasia Chromatica’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Bars [33..45] of Contrapunctus V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Beginning of Contrapunctus V I (in stilo francese) . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Beginning of Contrapunctus V II (per augmentationem et diminutionem) . . . . . . . . . . . 6

2.1 Rameau’s Canon at the fifth with reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8


2.2 Dux graph of Rameau’s Canon at the fifth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Realization of SC with parameters (V = 3, L = 4, cs = [3], dux = [0, 1, 0, 1]) . . . . . . . . . 19
2.4 Dux graph of SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5 unembellished stretto and chord sequence of ‘Spiral’: theme0 . . . . . . . . . . . . . . . . . 20
2.6 dux graph of stretto of ‘Spiral’: theme0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7 D before (a) and after (b) Eulerization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Unconstrained dux graph patterns considered in proposition 19 . . . . . . . . . . . . . . . . . 28
2.9 Stacked canons SC and SC ′ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.1 a spiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Spiral: theme1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Spiral part 1: harmoniola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4 Spiral part 2 section B: stretti with theme0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.1 Design of theme and countersubject for ‘Fugue in G’ . . . . . . . . . . . . . . . . . . . . . . 46

5.1 Composition assisted composition process followed in composition of ‘Missa ad Fugam’ . . 54


5.2 Chord sequence of Missa ad Fugam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3 An embellished form of theme A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.4 An embellished form of theme B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.5 An embellished form of theme C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.6 Two repetitions of the mirrored chord sequence . . . . . . . . . . . . . . . . . . . . . . . . . . 70

vii
viii LIST OF FIGURES
List of Tables

2.1 Commonly used parameters of stacked canons . . . . . . . . . . . . . . . . . . . . . . . . . . 7


2.2 type I non-duplicating rotational array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 classical Tonnetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 chord roots in Rameau’s canon at the fifth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 relative chord tone structure of Rameau’s canon at the fifth . . . . . . . . . . . . . . . . . . . 14
2.6 relative chord tone structure of SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7 relative chord tone structure of adapted stretto of ‘Spiral’: theme0 . . . . . . . . . . . . . . . 20
2.8 Occurrences of 64 chords in ascending (a) and descending (b) stacked canons . . . . . . . . . 29
2.9 number of distinct sub-canons of a stacked canon without parallel octaves . . . . . . . . . . . 36

3.1 Spiral: two-voice stretti with theme1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


3.2 canonic structure of part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 canonic structure of part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4 Contrasts between part 1 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.1 relation between themeu and [1, 0, 3, 2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46


4.2 (sub-)sections of ‘Fugue in G’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.1 Conceptual relative chord tone structures of C1 (top) and C2 (bottom) . . . . . . . . . . . . . . 57


5.2 Conceptual relative chord tone structure of configuration C0 = [A, A, A, A] . . . . . . . . . . 62
5.3 Relative chord tone structure of configuration C0 = [A, A, A, A] . . . . . . . . . . . . . . . . 63
5.4 Relative chord tone structures of C1 (top) and C2 (bottom) . . . . . . . . . . . . . . . . . . . . 64
5.5 Conceptual relative chord tone structures of C3 (top), C4 (2nd ), C5 (3rd ) and C6 (bottom) . . . . 65
5.6 Conceptual structure of the Gloria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.7 Conceptual structure of the Credo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.8 Conceptual structure of the Sanctus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.9 Conceptual structure of the Agnus Dei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

ix
x LIST OF TABLES
Contents

List of Figures vii

List of Tables ix

Contents xi

1 Introduction 1
1.1 From canon to fugue (and back) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 On designing stacked canons with relative chord tones 7


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Counterpointing approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Intervallic approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Harmoniola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4 Serial approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.5 Summary and remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Analysis of Rameau’s canon at the fifth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.1 Obtaining complete chords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.2 Preparation and resolution of sevenths . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Voice leading constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.1 preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.2 Avoiding parallels of the class 0 (mod 12) . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.3 Avoiding parallels of the class 7 (mod 12) . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Avoiding six-four chords in triadic chord sequences . . . . . . . . . . . . . . . . . . . . . . . 27
2.7 The construction of a chord sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.7.1 Chord sequence modulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.2 Choosing chord sizes greater than V . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.8 Counting distinct sub-canons of a stacked canon . . . . . . . . . . . . . . . . . . . . . . . . . 35

xi
xii CONTENTS

3 Spiral 37
3.1 Thematic elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.1 theme0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.2 theme1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2 Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.1 Section A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.2 Section B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.3 Section A’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.4 Section B’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4 Fugue in G 45
4.1 Thematic elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1 Main theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2 Countersubject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.1 section A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 section B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 section A’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5 Constraint logic programming stacked canonic structures 53


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Esthetic considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3 Constraint specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3.1 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.2 Auxiliary functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.3 Preventing similarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.4 Preventing chord tone doubling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.5 Regulation of dissonance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.6 Regulation of parallel perfect intervals . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.7 Theme A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3.8 Theme B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.3.9 Theme C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4 Analytical notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4.1 Kyrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4.2 Gloria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4.3 Credo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.4 Sanctus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.5 Agnus Dei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
CONTENTS xiii

6 Summary, conclusion and outlook 73


6.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.3 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

A B-Prolog sources 77
A.1 themeA.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.2 themeB.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
A.3 themeC.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Bibliography 85

Glossary 89
xiv CONTENTS
Chapter 1

Introduction

This thesis represents an attempt at the provision of efficient methods for the creation of larger scale imita-
tive polyphonic structures. After a brief discussion of the development of canon and fugue-techniques and
their relation in section 1.1, the problem statement is given in section 1.2, followed by an outline of this
thesis’ structure in section 1.3.

1.1 From canon to fugue (and back)


Within a musical context, the term canon originally referred to an inscribed formula or instruction which the
performer would implement in order to realize one or more parts from the given notation[SG01]. Nowadays
canons are commonly associated with a compositional technique in which derivations of a single melody
are overlappingly imitated. Derivations can be obtained from the original melody through (a combina-
tion of) techniques such as transposition, mirroring, retrograding and variation of the original melody’s
temporal proportions. The original melody is referred to as the dux (leader), an imitation as a comes
(companion)[Cal92].

Example 1 The English 13th century composition ‘Sumer is icumen in’ shown in figure 1.1 on page 5 is
perhaps one of the oldest canons passed down through history in written form. Its upper four voices form
a rota which can be condensed into a structure of twenty-four 68 bars in modern notation. The dux appears
in the top staff, followed by its three comites at successive time intervals of one measure in the three staffs
below it. The initial entry points in figure 1.1 are marked by ‘❉’ in the score. The term rota, nowadays
commonly called round or circle canon, refers to the repetitive structure such a canon allows. Its two bass
voices form a pes: the Latin equivalent of a ground or ostinato. Note that the pes is itself a short round
which can be condensed into four 68 bars.

The ‘Sumer canon’ is remarkable in several ways[Tar12, ch.9]. First, it is a clear testament to the gradual
acceptance of thirds as (semi-)consonants besides octaves and fifths, a crucial factor in the development
of European polyphony. Indeed, the Sumer canon features a repeated succession of the triads I, V II (or
I, II, V II). Second, its structure is rather complex for such an early composition. In modern terms the
composition would be called a double canon, in reference to the simultaneous occurrence of the two afore-
mentioned canons in the upper four and lower two voices.

1
2 CHAPTER 1. INTRODUCTION

Thirteenth and fourteenth century France saw the related development of the chace (‘hunt’) in which one
voice ‘hunts’ the other. In comparison to the Sumer canon, a chace typically pays less attention to the
creation of consonant harmony but more to contrasting rhythms between voices. Indeed, the hoquetus
(‘hocket’) technique is commonly used in a chace: the dovetailing of sounds and silences by means of the
staggered arrangement of rests[SG01]. The Italian version of the chace, caccia, became a popular form in
the fourteenth century. Besides a two-voice canon at the unison, a tenor voice was often created as a coun-
terpoint against the two-voice canon in support of the harmonic structure. Besides rather frivolous use of
canons as in the chace or caccia, the composition technique also appeared in sacred music such as Ciconia’s
‘O felix templum jubila’. In the Renaissance era, imitative polyphony became common. Josquin’s ‘Ave
Maria’ for example is an almost complete chain of imitations between (pairs of) voices. This era produced
several compositions of exceptional quality and contrapuntal complexity in which varying canon techniques
are extensively used. Examples are Ockeghem’s ‘Missa Prolationem’, Josquin des Prez’ ‘Missa L’homme
armé super voces musicales’ and Palestrina’s ‘Missa ad Fugam’. Melson provides interesting insights into
the construction of mensuration and proportion canons of this era[Mel], in which a melody’s temporal pro-
portions are changed upon imitation.
The aforementioned compositions are predominantly vocal. Transcription and ornamentation of vocal mu-
sic for instruments started to gain popularity in the sixteenth century. Initially, an existing motet would be
transcribed for instruments such as the lute, vihuela, guitar, or even viola da gamba. This practice led to
the establishment of the fantasia and ricercar as an independent genre. The introduction of keyboard instru-
ments increased the popularity of the ricercar, as those instruments are better suited to playing polyphony
than the aforementioned plucked instruments. Initially, polythematic ricercars such as Adriaan Willaert’s in-
herited the sectional structure of the motet with often different themes in different sections. The seventeenth
century saw the introduction of the monothematic ricercar such as Sweelinck’s ‘Fantasia Chromatica’, in
which a single theme is predominantly present. It also became common practice to have voices enter the
ricercar such that the theme entries do not overlap as was common in the earlier ricercars. This turned the
canonic overlap of the main theme with itself in a stretto into a polyphonic climax. Indeed, having heard
multiple none overlapping imitations of the main theme, a stretto can be perceived as a compression of time
which naturally generates tension.

Example 2 A stretto in Sweelinck’s ‘Fantasia Chromatica’ is shown in figure 1.2 on page 6. The main
theme is basically a downward chromatic scale filling the interval of a perfect fourth. Successive entries
shown in figure 1.2 appear, all with their durations halved, in the alto (bar 171), soprano (bar 172), tenor
(upbeat to bar 174) and bass (upbeat to bar 177).

The monothematic ricercar gradually developed into the fugue, through composers such as Scheidt, Schei-
demann, Reinken, Buxtehude, Frescobaldi, Pachelbell and J.C. Bach, in the Northern- and Southern Ger-
man organ schools. The music of J.S. Bach (brother and pupil of J.C. Bach) probably represents the summit
of polyphonic development and achievement in this regard. E.g. his ‘Kunst der Fuge’ features fourteen
fugues and four canons, all based on a single theme which appears in many overlapping (and/or mirrored
and/or temporally altered) stretti in e.g. Contrapuncti V , V I and V II.

Example 3 Figure 1.3 on page 6 shows bars [33..45] of Contrapunctus V which contains two stretti:

• On the first beat of bar 33, the main theme is stated in the bass (rectus), the soprano enters one beat
later with the inverted main theme (inversus);
1.1. FROM CANON TO FUGUE (AND BACK) 3

• On the first beat of bar 41, the inversus is stated in the tenor, the alto enters one beat later with the
rectus.

Example 4 The beginning of Contrapunctus V I is shown in figure 1.4 on page 6. The bass opens with the
rectus, followed by overlapping entries in the soprano in bar 2 (inversus, durations halved) and alto in bar
3 (rectus, durations halved).

Example 5 The beginning of Contrapunctus V II is shown in figure 1.5 on page 6. The tenor starts opens
with the rectus (durations halved), followed by overlapping entries in the soprano in bar 2(inversus), alto
in bar 3(inversus, duration halved) and bass in bar 5 (inversus, doubled durations).

The predominantly homophonic classical and romantic styles provide increasing competition against polyphony
after Bach’s death. Yet from Haydn and Mozart to Brahms, Bruckner, and Reger, Fauré and Vaughan
Williams, Verdi and Dvorak, and then again, up to the present, they have all been permeated with the ef-
fects of the Bach legacy[BW64]. Shostakovich’ opus 87 and Hindemith’s ‘Ludis Tonalis’ are 20th century
attempts at contemporary versions of Bach’s ‘wohltemperiertes Klavier’ and several other composers such
as Bartòk, Ligeti, Lewis, Messiaen and Stravinsky used the fugue-technique, often within a larger compo-
sition.
Although the fugue lost popularity among serial or dodecaphonic composers, perhaps due to its obvious
connection to tonality, canon techniques can be found in both tonal and atonal 20th century music. Webern
extensively used canon techniques both before and during his dodecaphonic period [Per71, Bai88, Mea93].
Schönberg created a number of canons throughout his life, most of which were published by Rufer as
a collection after his death[Sch63]. The common factor in all of these canons however is that none is
dodecaphonic. Schönberg’s own comments indicate that these canons were meant for working out ideas
[Nei64]. Use of canon techniques can however also be observed in dodecaphonic works such as his fourth
string quartet[Sto08]. Charles Ives combines an early use of near dodecaphony and canon in his ‘Steeples
and the Mountains’, e.g. between trumpet and trombone in bar 13. Schnittke’s use of canon techniques
not always results in a polyphonic texture in which independent layers are comprehensible. Instead, the
short durations between the entrances and closely-spaced imitations create a dense texture which is not
easily divisible to its components by ear [Hon12], alike Ligeti’s use of ‘Micropolyphony’[Sea89]. A re-
lated technique called ‘beat shifting’ is used in Reich’s phase-shifting compositions [Roe03]. Mediating
between these techniques is the ‘tempo-proportion canon’ of Nancarrow, who displayed a rare and persis-
tent devotion to the technique of canon which appears in some three quarters of his 51 studies for player
piano[Tho00]. Finally, Vuza and Tangian provide extensive contributions to the theory on rhythmic canons
[Vuz91, Vuz92b, Vuz92a, Vuz93, Tan03].
4 CHAPTER 1. INTRODUCTION

1.2 Problem statement


The previous section briefly discussed the development from canon to fugue and connections between the
two techniques in stretto-fugues. The repeated use of the main theme in ‘Die Kunst der Fuge’ in various
combinations such as those shown in examples 3 through 5 demonstrates that larger imitative polyphonic
structures are sustainable by a contrapuntally capable (main) theme. According to Bach specialist Christoph
Wolff, ‘Die Kunst der Fuge’ “is an exploration in depth of the contrapuntal possibilities inherent in a single
musical subject”[Wol02, p.433]. One might infer from this statement that the discovery of the theme’s
inherent capability of appearing in so many combinations with itself was made after its conception. While
such a view seems accurate in relation to ‘Das Musikalische Opfer’1, the theme of which is rather handi-
capped in terms of allowing stretti, this puts the cart before the horse in case of ‘Die Kunst der Fuge’. Bach
probably designed this theme as a very capable one in terms of stretti, yet the knowledge which enabled him
to do so was not passed on to us. Indeed, the literature on canon techniques abounds with formulations of
what is to be accomplished in various types of canons, yet offers relatively few algorithms for their creation
with often exponential running time in terms of their input (I return to this point in section 2.2). One must
more often than not resort to the proverbial search of a dux in a haystack. Being especially fond of compos-
ing and listening to distinctively polyphonic music, the lack of efficient methods which would enable me to
create larger compositions based on a contrapuntally capable theme inspired me to invent them.

1.3 Outline
Chapter 2 provides a style independent methodology for the derivation of algorithms for the creation of
stacked canons. Chapters 3 and 4 respectively discuss my compositions Spiral and Fugue in G, for which I
used some of the results presented in chapter 2. While the theory presented in chapter 2 enables us to derive
efficient algorithms for the generation of stacked canons adhering to our own stylistic preferences (i.e. our
own rules or similarly, constraints), their derivation may be tedious or difficult for composers unskilled
in this art. Chapter 5 sketches a method which allows computers to efficiently search for canons using
constraint logic programming. The composition process for my ‘Missa ad Fugam’ is used in demonstration
of this technique. Finally, chapter 6 summarizes the main results of this thesis and provides a conclusion
and outlook on future research.

1
King Friedrich II of Prussia dictated to Bach the theme for the composition which would become ‘Das Musikalisches Opfer’.
Hence it is probable that Bach had to investigate the theme’s capabilities after it was construed. Interestingly, Sassoon argues that
Bach may have been familiar with a similar theme used by Händel[Sas03].
1.3. OUTLINE 5

*œ œ œ œ œ œ œ œ
V b 68 .. J œ œ œj œ œj œ . Œ.
j
œ œ œ œ œj œ j œ œ œ œ. Œ.
J J œ J œ œ J J
Sum - er is i - cum - en in Lhu - de sing cuc - cu Grow - eth sed and blow - eth med and spring'th the wu - de nu.
*œ œ œ œ œ œ œ œ j j j j
V b 68 .. œ Jœ œ œj œ . Œ. J J J œ œ œ œ œ œ. Œ. œ œ œ œ
J
œ œ œ œj


swik thu na - ver nu. Sum - er is i - cum - en in Lhu - de sing cuc - cu Grow - eth sed and blow- eth med and

6 j j œ œ œ œ Jœ œ œ œ j j
V b 8 .. œ œ œ œ œ . œ œ œ œ œ j
J J œ œ.
Œ. J J œ œ œ œ œ. Œ.


Wel sin- ges thu cu - cu! Ne swik thu na - ver nu. Sum - er is i - cum - en in Lhu - de sing cuc - cu

6 œ. j j j œ œ œ œ œ œœœ
V b 8 .. œ . œ. œ œ œ œ œ œ œ. œ œ
J œ
œ œ
J
j
œ œ.
Œ. J J J
Cu - cu, cu - cu! Wel sin - ges thu cu - cu! Ne swik thu na - ver nu. Sum - er is i - cum - en in

? b 68 .. œ . œ. œ. œ œ œ. œ. œ. œ. œ. œ. œ œ œ. œ. œ.
J Œ. J Œ.

œ. œ. œ œ. œ.
sing cu - cu nu sing cu cu sing cu - cu nu sing cu cu

? b 68 .. œ. œ. œ. œ. œ œ. œ. œ. œ. œ œJ
Œ. J Œ.
sing cu cu sing cu - cu nu sing cu cu sing cu - cu nu

œ. œ. j j j j œ œ œ
œ œ œj œ
œ. œ œ œ œ
Œ. œ œ œj œ . œ Jœ œ œJ
9

Vb J œ œ œ œ J J
Sing cuc - cu! A - we ble - teth aft - er lomb, lhough aft - er cal - ve cu. Bul - luc ster - teth, bu - cke ver - teth Mu - rie

œ. œ. j j j
Vb œ œ œ Jœ œ .
J Œ. œ. Œ. œ œ œ œj œ Jœ œ œ œ œ œ œ œ.
j Œ.
spring'th the wu - de nu. Sing cuc - cu! A - we ble - teth aft - er lomb, lhough aft - er cal - ve cu.
j j œ. œ. œ. œ œj œ œj œ œ œ j
Vb œ œ œ Jœ œ œ œ œj œ œ œ œJ œ .
J
Œ. Œ.
J œ
Grow - eth sed and blow - eth med and spring'th the wu - de nu. Sing cuc - cu! A - we ble - teth aft - er lomb, lhough
jœ j Œ. j j j œ œ Jœ œ . Œ. œ. œ. œ. Œ.
Vb œ œ œ œ. œ œ œ œ œ
J
œ œ œ œ J
Lhu - de sing cuc - cu Grow - eth sed and blow - eth med and spring'th the wu - de nu. Sing cuc - cu!

? œ. œ. œ. œ œ œ. œ. œ.
Œ. œ. œ. œ. œ œ œ. œ. œ.
Œ.
9

b J J

œ. œ. œ. œ.
sing cu - cu nu sing cu cu sing cu - cu nu sing cu cu

? œ. œ. œ. œ. œ œ œ. œ. œ. œ. œ œ
b Œ. J Œ. J
sing cu cu sing cu - cu nu sing cu cu sing cu - cu nu

œ œ. œ. j j j
Vb œ œ. œ. œ œ j Œ. ..
17

œ œ œ œ œ œ. œ ∑
J œ J œ J œ œ œ.
sing cu - cu! Cu - cu, cu - cu! Wel sin- ges thu cu - cu! Ne swik thu na - ver nu.

j œ œ œ œ œ œ œ œ œ œ. Œ. œ. œ. œ. jj j
œ œ œ œ œ œ . œ œJ ..
Vb œ œ œ
J J J J J œ
Bul - luc ster - teth, bu - cke ver - teth Mu - rie sing cu - cu! Cu - cu, cu - cu! Wel sin- ges thu cu cu! Ne
j j Œ. j œ œ œ œ œ œ œ œ œ. Œ. œ. œ. œ . œ œj..
Vb œ œ œ œ œ. œ œ œ œ
J J J J J
aft - er cal - ve cu. Bul - luc ster - teth, bu - cke ver - teth Mu - rie sing cu - cu! Cu - cu, cu - cu!

jœ j j j j œ œ œ œ œ œ œ œ. Œ.
Vb œ œ œ œ œ œ
J œ œ œ œ œ
j
œ. Œ. œ œ œ œ
J
œ
J J J J ..
A - we ble - teth aft - er lomb, lhough aft - er cal - ve cu. Bul - luc ster - teth, bu - cke ver - teth Mu - rie sing cu - cu!

œ. œ œ œ. œ. œ. œ. œ œ œ. œ. œ.
? b œ. œ. Œ. œ. œ. Œ. ..
17

J J

œ. œ. œ œ. œ.
sing cu - cu nu sing cu cu sing cu - cu nu sing cu cu

?b œ. œ. œ. œ. œ œ. œ. œ. œ . œ œJ ..
Œ. J Œ.
sing cu cu sing cu - cu nu sing cu cu sing cu - cu nu

Figure 1.1: Condensed representation of ‘Sumer is icumen in’


6 CHAPTER 1. INTRODUCTION

Œ œ œ œ Œ j
& c # wŒ œ œ œ # œ n œ # œ n œ # œ˙ n œ Œœ b œœ ˙œ œ œ œœ œ˙ œ # Œœ n œœ œœb œœ œ . Œn œj œŒ . œ ˙
171

bœ œ œ œ
œ œ œ # œ n œ œ bœ ˙ Œ
? c œ. œ œ ˙ ∑ Ó Œ ˙ œœ œ ˙œ œ # ˙œ n œ
w Ó Œ

Figure 1.2: Bars [171..177] of ‘Fantasia Chromatica’

Ó j
œ œ˙ œ œ j ˙ ˙ œœ . œj ˙ œœ œœ œœ œœ ˙˙
œ
œœ œœ œœ œœ œœ œ
33

&b c œœ . Œ œ ‰œ .œ œ œœ œ œ œ œ œ œ œ ˙
œ. J
œœœœ œ Œ Œ ‰ jœ . j œ œ œ ˙ œœœœ Œ
? b c œ œ ˙ œ. œ œ œ ˙ œ œ˙ œ œ œ œœ œ œ œ
˙ œ œ. œ ˙ œ . œJ ˙ œœœœ ˙ œœœ
J J ˙

Œ
œ ˙ œ œ ˙ œ œ . œj ˙œ n œ œ œ . œœ œœœ. œœ œ˙ . œj# œ˙ œ œ œ œ œ‰Œ
39

&b ˙ ˙ ˙ ˙ # œœ J J œ . œJ ˙
œ Œ J
j j
œ ˙ œ . œj œ . œ ˙ b˙ œ. œ ˙ œ œœ ˙ Ó
?
b n œ œœ œ œ œ œ œ œ œ œ
œ œ œ œ œœ ˙ bœ w œ œ œ œ œ œ œ œ#œ ˙œ œ œ b ˙
œ œ

Figure 1.3: Bars [33..45] of Contrapunctus V

œ œ. œ œ. œ œ œ œ. œ œ œ œ œ œ œ.œ œ œ œ
&b c ∑
œ œ . œ œ . œ œ œ œ œ œ œ œœ . n œ œœ œ œ œ œœ . œ # œœ . œœ œ
Ó #œ œ . .

? c ˙ œ. œ œ. œ ˙ œ. œ ˙ œ.œ œ.œ œ.
b J #˙
J J œ œ. œ œ.œ œ.œ œ.
Figure 1.4: Beginning of Contrapunctus V I (in stilo francese)

j œ. j ˙œ j
∑ ˙ œ . œ œ œ ˙ œœ œ . œ œ. œœ
&b c œ. nœ . œ # œ œ œ nœ
∑ ∑
œ œ. œ œ. œ œ #œ œ. œ œ œ œ œ œ œ #œ œ œ œ nœ nœ œ #œ œ œ œ œ #œ œ nœ b œ œ œ œ œ œ œ œ
?b c #œ nœ. œ

œ n œœ # œ œœ œ œœ œ œ ‰ Ó
˙
& b œbœ œ œ œ n œ n œ œ œ œ œ œœ œ œ œ # œœ œ œ œ œœ œ œ n œ œj
5

œœ ∑
Œ Ó
nœ #œ œ œ œœ œ. œ œ. œ Œ
? b œw œœ œ œ
˙. œ n œœ œ˙œ. œ œ œ # œ # œ œ w

Figure 1.5: Beginning of Contrapunctus V II (per augmentationem et diminutionem)


Chapter 2

On designing stacked canons with


relative chord tones

This chapter was adapted for publication into the Journal of Mathematics and Music[vG12].

2.1 Introduction
Gosman [Gos97] introduced the term “stacked canon” to identify a special kind of canon in which each
comes is a transposition by a fixed time interval T I and scale interval SI of its immediate predecessor.
Such a canon is completely determined by its number of voices V , scale S, T I, SI and melody dux with
length L Table 2.1 lists the aforementioned parameters of a stacked canons for easy reference.

Example 6 The first sixteen bars of Rameau’s Canon at the fifth [RG71, ch. 44] are shown in the upper
four staves of figure 2.1 on page 8. The bottom four staves are discussed in section 2.4, these can be ignored
for now. Rameau’s Canon at the fifth is a stacked canon with V = 4, T I = 2 whole notes, SI = 7 semitones
of the chromatic scale S, with the dux appearing in the bass. Note that it is also a spiral canon: the dux
is a succession of transpositions of its first eight bars. These bars are henceforth referred to as the unique
part of the dux. The length LU of the unique part of the dux equals 8.

parameter domain description


V N+ number of voices
SI Z scale interval
TI N+ time interval
L N+ length of the dux, equals ∣dux∣
LU N+ length of the unique part of the dux
S Scale scale

Table 2.1: Commonly used parameters of stacked canons

Besides forming a category of its own in the musical literature, stacked canons are also useful in the design
of thematic material for imitative polyphonic structures. By designing thematic material such that it allows
a stacked canon for many voices, it is guaranteed that many mutually different imitations are possible.
This chapter offers a novel approach to the systematic design of stacked canons. Section 2.2 reviews the

7
8 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

##
& # C
1 2 3 4 5 6 7

S ∑ ∑ ∑ ∑ ∑ ∑ Ó ˙ ˙ œ œ
Ah! Loin de

#
& # C ∑ ∑ ∑ ∑ Ó
˙ ˙ œœ
œ œ n˙ . ˙ ˙
A

Ah! Loin de ri - - - - - -
# w
T V C ∑ ∑ Ó ˙ ˙ œ œ n˙ . œœ ˙ ˙ ˙
Ó
Ah! Loin de ri - - - - - - re, Pleu - - -

? C Ó Ó w œ #w n˙ ˙
B ˙ ˙ œ œ b˙. œœ ˙ ˙ ˙
J

Ah! Loin de ri - - - - - - re, Pleu - - - rons, Pleu - rons.

1 2 3 4 5 6 7

S & C ∑ ∑ ∑ ∑ ∑ ∑ w #w
2 1

& C ∑ ∑ ∑ ∑
A
w #w nw w
2 1 3 2

V C ∑ ∑ w w
T #w nw w w
2 1 3 2 0 3

? C w w #w w
B w bw w w
2 1 3 2 0 3 1 0

# #8 w #w n˙
& # n˙ . ˙ ˙ ˙
9 10 11 12 13 14 15

œœ ˙ ˙ Ó œ
J Ó #œ #œ
S
˙
ri - - - - - - re, Pleu - - - rons, Pleu - rons. Ah! Loin de
##
& Ó w #w n˙ ˙ Ó ˙ ˙ #œ #œ œ œ #˙
A
˙
œ
J n˙ . ˙
re, Pleu - - - rons, Pleu - rons. Ah! Loin de ri
# #w n˙ w
T V
œ
J ˙ Ó ˙ ˙ #œ #œ n˙ . œ œ #˙ ˙ ˙ Ó
- rons, Pleu - rons. Ah! Loin de ri - - - - - - re, Pleu

? w œ #w n˙ #˙
B Ó ˙ ˙ #œ #œ n˙ . œ œ #˙ ˙ ˙ Ó J

Ah! Loin de ri - - - - - - re, Pleu - - - rons, Pleu - rons.

w #w #w #w
8 9 10 11 12 13 14 15

& nw #w #w
S
w
3 2 0 3 1 0 2 1

A & w #w #w #w #w nw #w
w
0 3 1 0 2 1 3 2

#w w #w
T V w #w nw #w #w
1 0 2 1 3 2 0 3

? w w #w #w
B #w nw #w w
2 1 3 2 0 3 1 0

Figure 2.1: Rameau’s Canon at the fifth with reduction

literature concerning known concepts and approaches to the design of stacked canons. Section 2.3 provides
an outline of the structure of this chapter.
2.2. LITERATURE REVIEW 9

2.2 Literature review


This section provides a review of the literature regarding the creation of stacked canons. The earliest
sources, which describe what I call the counterpointing approach, are discussed in section 2.2.1. Several
authors contributed to what I call the intervallic approach, discussed in section 2.2.2, largely in response to
the shortcomings of the counterpointing approach. Section 2.2.3 discusses Burmeister’s harmoniola, which
is an efficient technique for the creation of rounds, but more useful as an analytical device in relation to
stacked canons at an interval different than the unison. Section 2.2.4 discusses approaches used for the
creation of rounds in serial music, after which section 2.2.5 summarizes the aforementioned sections.

2.2.1 Counterpointing approach


Slightly varied accounts of the counterpointing approach are given by Simpson [Sim67, vol. 5], Bathe[BK05,
p.36] and Morley[Mor97, pp.110-130]. Simpson’s approach, which is taught even today [Gos97, p. viii], is
summarized in algorithm 7 below.

Algorithm 7 Repeat, until the desired length is obtained:

1. extend the dux melody by T I time units, such that no style dependent constraint is violated;

2. for all v, 1 ≤ v < V : paste the transposition by v ∗ T I time units, v ∗ SI scale-tones of a copy of the
extension created in the previous step into voice v.

Exemplary style dependent constraints algorithm 7 refers to include the restriction of harmonic intervals to
consonants, or voice-leading constraints such as the prohibition of parallel perfect fifths or octaves between
voices. While the above approach is simple and intuitive, several drawbacks are associated with it. The dux
is repeatedly extended by T I time units. The result is a “fragmented process of composing counterpoint
upon counterpoint”[Gos97, p. viii]. The above algorithm indeed provides no means for establishing larger
scale goals at a certain point in time. Consider for examples the problem of reaching a cadence in a particular
mode at t = 160. Having written some part of the dux, the composer may need to backtrack from some
point in the dux while trying all possibilities until the cadence is reached, if it is reachable at all. In a worst
case scenario, one may need to try all possibilities. Let us think of S as a record in which the field tones
represents its set of scale tones. Then such an algorithm would have a running time of O (∣S.tones∣ ),
V ∗∣dux∣

where ∣S.tones∣ equals the size of the scale and ∣dux∣ equals the length of the dux.1

2.2.2 Intervallic approach


The intervallic approach approach discussed in this subsection was developed and refined in reaction to
the shortcomings of the counterpointing approach [Mor95, Gau96, Gos97, Gos00b]. An important charac-
teristic of this approach is its connection to Fuxian species counterpoint[Fux42, pp.109-115]. The dux is
designed as a series of notes of equal length, after which the resulting structure is embellished into florid
counterpoint.
Morris[Mor95] considers stacked canons without rests and T I = 1. Given V = 2, T I = 1, and some SI,
he creates a table listing the melodic intervals which generate consonants. Based on the table, a directed
1
Somewhat abusing notation, the ∣ ⋅ ∣ operator is used both in reference to the cardinality of a set, or the length of a list or array.
10 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

graph (digraph) is created in which each vertex represents a valid melodic interval (called a case), and each
arc represents a succession of two of such intervals. Morris prunes “contours of lines or polyphony that are
usually forbidden by the rules of counterpoint and, of course, parallel or similar octaves and fifths”[Mor95,
p.42]. To generate canons longer than two notes, he suggests to “concatenate two linear intervals”. To
deal with the case 1 < T I he suggests a few different approaches. First, two canons with T I = 1 could be
composed separately and then interleaved. Morris correctly remarks that interleaving two canons which are
independently derived according to the aforementioned graphs neither guarantees that the result satisfies all
stylistic constraints. Nor does this method allow the generation of all possible canons with a greater T I.
To see this let SC 0 , SC 1 be two stacked canons with T I = 1, which are interleaved in a resultant stacked
canon SC r . Parallel perfect fifths occurring in SC 0 or SC 1 do not necessarily occur in SC r due to the
interleaving method. Hence constraining SC 0 or SC 1 as such actually over-constrains the resultant solution
space, leaving out suitable candidates which would satisfy such constraints, besides introducing candidates
which may violate those.

Second, he notes that a “better and wholly general method” ... “is to generate charts that sequence two
or more intervals and list the concatenations of these sequences in the body of the chart. Once again, cases
that deviate from stylistic conventions are pruned. While this will generate graphs, the number of cases to
consider grows very quickly so that resulting graphs become too cumbersome for humans to use.”[Mor95,
pp.47-48] Indeed, it is not difficult to show that such a graph generation algorithm would have an (exponen-
tial) running time of O (∣S.tones∣ ). Finally, he proposes a transformation process in which a canon
T I+1

with T I = 1 is embellished with passing tones, suspensions, et cetera, by listing the ornamentation patterns
which can replace a melodic interval without introducing violations of counterpoint rules. It is however
questionable whether or not this approach actually generates a canon with 1 < T I, as the underlying har-
monic structure is again determined at T I = 1. One could argue that this method leaves T I invariant as the
embellishments are perceived as local ornamentations of the original chord structure (although with V = 2
the term ‘interval structure’ seems more appropriate).

Gauldin’s research of Renaissance stretto canons[Gau96] considers canons which are not necessarily stacked
and offers a similar approach to Morris’. He considers canons for two or three voices, with a time interval of
one or two, and modal scale intervals between two consecutive voices of a fourth, fifth or octave. In terms
of large scale design, Gauldin suggests to reach a cadence in the canon by writing it in reverse order. This
however moves the problem of reaching a cadence, to creating the link from the beginning of the canon to
the cadence thus created. He provides no algorithm for this but notes that since “this link will vary with
each system and previous melodic ideas, it is best left to the ingenuity of the composer”[Gau96, p.49].

Gosman’s contribution to this topic[Gos97] follows a similar approach to Morris’ and Gauldin’s though
his focus is on analysis rather than construction of stacked canons. In terms of designing a larger scale
structure he identifies repeated three note dux patterns (concatenations of two of Morris’ cases) and also
suggests palindromic duces to be of use by identifying these in several stacked canons. It is however not
difficult to show that the condition of a dux to be palindromic is neither sufficient nor necessary a condition
for the dux to adhere to the associated stylistic constraints. Also, as Gosman studies stacked canons from
the Renaissance era, the limited number of choices available upon incremental extension of the dux may
unintentionally introduce palindromic structures.
2.2. LITERATURE REVIEW 11

When considering a chord as a stack of melodic intervals, as does the intervallic approach, all (V2 ) oc-
curring intervals must be taken into consideration in deciding whether or not a chord is consonant because
the stacking of several consonant intervals does not necessarily result in a consonant chord. None of the
contributors provide a method for 3 < V which would be useful if the dux is used as a theme in an im-
itative polyphonic form, in which case a larger V provides the possibility of a larger number of mutually
distinct imitations with the theme. Analogous to Morris’ argument regarding an increase of T I, it could be
argued that an increase of V also renders this approach less suitable for humans. Also, the accepted use of
dissonant (seventh) chords as in Baroque music, with associated voice-leading constraints, seems unwieldy
to implement in the intervallic approach. Indeed, no obvious control of the resulting chord sequence of the
resulting canon is provided. Reconsider the problem of constructing a stacked canon in which a cadence
must be reached at t = 160. Using the intervallic approach, the way to try and achieve this is again to try all
possibilities which would again give rise to an exponential algorithm.

2.2.3 Harmoniola
Another approach to the design of canons is the creation of a harmoniola. An early description of the har-
moniola technique is given in Burmeister’s Musical Poetics [BR93, p.193]. The basic idea is to create a
short harmonic passage (the harmoniola) for V voices with length T I. The dux of the resulting stacked
canon is the concatenation of transpositions of the V melodies of the harmoniola. The order in which the
harmoniola’s melodies are concatenated and its individual transpositions respectively determine the order
in which the voices enter the canon and their scale interval(s). E.g. the top four staves of bars 6 and 7 in
figure 2.1 are a harmoniola for Rameau’s Canon at the fifth. When labeling the voices top down with an
integer v starting at 0, the dux can be reconstructed by concatenating the voices in ascending order, each
voice v transposed upward by 7v semitones. While Burmeister provides guidelines for the construction of
rounds (canons at the unison), for which the method works well, other intervals are not discussed. Hence,
Gosman mainly regards the harmoniola of a stacked canon as an analytical device[Gos00b, ch. 4].

2.2.4 Serial approaches


A concept related to stacked canons are rotational arrays and their applications in mainly serialism. Rogers
describes three types of such arrays[Rog68]. Table 2.2 shows a type I non-duplicating rotational array. All
entries are pitch classes from some generating pitch-class set gs. The ∣gs∣2 -sized array shown in table 2.2
is based on the pitch-class set {0, 2, 5, 9, 3} which appears in every column and row. Let us label the rows
bottom up, with an integer v, 0 ≤ v < V = ∣gs∣ = 5. Each row v + 1 (mod V ) equals row v, rotated
one position to the right. Hence the structure naturally connects to a round for V = ∣gs∣ voices, with
T I = 1 and SI = 0 semitones of the chromatic scale[Mor88]. Beyond the definition of the type I non-

0 2 5 9 3
2 5 9 3 0
5 9 3 0 2
9 3 0 2 5
3 0 2 5 9

Table 2.2: type I non-duplicating rotational array


12 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

duplicating rotational array, Rogers’ paper mostly studies two other types of rotational arrays (types II and
III) in some depth, both of which have an obvious connection to non-stacked canons. Morris describes a
method which transforms an existing atonal stacked canon with T I = 1 and SI = 0 to a resultant canon at a
different scale interval [Mor05]. The original canon’s dux is constructed by flipping triangles on a Tonnetz,
a lattice representing tonal space. In the classical Tonnetz shown in table 2.3, vertical neighbours are at
a pitch-distance of 4 (mod 12), whereas horizontal neighbours are at a pitch-distance of 3 (mod 12).
Note how minor triads can be formed from a starting vertex, by going east(E), south(S), and returning
North-West(NW), back to the initial vertex (E-S-NW), e.g. the triangle formed by pitch classes {0, 3, 7}.
Similarly, major triads can be formed by going S-E-NW, e.g. the triangle formed by pitch classes {0, 4, 7}.
Also note how either triangle can be flipped over its diagonal edge into the other, which corresponds to
the traversal of related pitch class sets. By repeatedly choosing pitch classes from a triangle, and flipping

0 Ð 3 6 8
∣ Ó ∣
4 Ð 7 10 1

8 11 2 5

Table 2.3: classical Tonnetz

it over one of its edges to a next triangle, one can obtain the dux for a canon at the unison ad minimum,
the harmonic structure of which is derived from the choice of triangles. The method is efficient but neither
considers time intervals larger than one, nor voice leading constraints, the latter perhaps due to Morris’
focus on atonal music.

2.2.5 Summary and remarks


While intuitive and easy to learn as an algorithm, the counterpointing approach provides a fragmented pro-
cess of composition with hardly any structural control. Due to its reliance on composing counterpoint upon
counterpoint a composer may face the dread of trying all possibilities in order to obtain a desired harmonic
structure at some point in the canon, perhaps to no avail. The intervallic approach developed in response to
this encodes harmonic and some voice leading constraints in terms of constraints on the melodic intervals
of the dux. While the latter approach is efficient for V = 2, T I = 1, an increase of either parameter makes
the method too cumbersome for practical use by humans. Also, none of the aforementioned contributors to
the intervallic approach deal with rests in a dux even if these can be instrumental in avoiding the violation
of several types of constraints. Associated with this is a possible definition problem: what is the interval
between a rest and a dux tone, especially for 1 < T I? Also, the intervallic approach requires, for each
musical style, time- or scale-interval, different tables for different SI, which hardly contributes to a better
understanding of the relation between dux and harmony. Morris’ Tonnetz approach marks an important
step forward in reasoning about stacked canons in this regard, in the sense that the harmony is chosen be-
forehand in terms of a pitch-class set. Yet, his approach targets serial stacked canons with T I = 1 and
provides no directions for dealing with voice-leading constraints. Another important observation in this
regard is Gosman’s recognition of a pattern of occurrences of the root, third, fifth and seventh of a dominant
seventh chord in the dux of Rameau’s canon at the fifth[Gos00a, p.53]. We return to this point in section
2.4.
2.3. OUTLINE 13

2.3 Outline
The remainder of this chapter attempts to remove the schisms of harmony and counterpoint on the one hand,
and tonal and atonal music on the other hand, in the known approaches to the creation of stacked canons,
by providing an efficient yet style-independent method for their derivation in terms of an abstraction of
the chord tones of a predetermined chord sequence and variations thereof. The definition of relative chord
tones which enables this was in part inspired by Gosman’s analysis of Rameau’s canon at the fifth. My
relative chord tone approach to the design of stacked canons is introduced in section 2.4 through further
analysis of this canon, along with the study of both a harmonic- and voice-leading constraint within the
domain of relative chord tones instead of pitch classes. A general approach to dealing with voice leading
constraints is sketched in section 2.5, by studying some which are common in music theories. Section
2.6 provides an example of the incorporation of a constraint on the inversion of chords. The creation and
variation of chord sequences for stacked canons is discussed in section 2.7, after which section 2.8 counts
the number of distinct sub-canons of a stacked canon in demonstration of the applicability of my method
to the design of larger imitative polyphonic structures. Note that no attempt is made to fully describe or
analyze any particular style of stacked canons in the provided model. Interested composers or theorists
could attempt this by inclusion of the associated constraints and extension of the model.

2.4 Analysis of Rameau’s canon at the fifth


Example 6 briefly introduced Rameau’s canon at the fifth. This section develops several concepts related
to the design of stacked canons with relative chord tones through further analysis of the canon. It also
demonstrates the encoding of several constraints on stacked canons into generative algorithms.

Rameau considered the dominant seventh chord “the most perfect of all dissonant chords”[RG71, p.42],
usable in all inversions. Gosman argues that Rameau wrote the canons in his treatise partly in response to
Zarlino[Gos00a], critiquing Zarlino for not writing chords with four different tones. The harmonic reduc-
tion given in the four bottom rows of figure 2.1 reflects this: the canon is a repeated succession of complete
dominant seventh chords in all inversions. Bars [8..16)2 are the first in which the entire unique part of the
dux sounds in all four voices. The pitch classes of the roots of the seventh chords starting from bar 8 have
the structure of table 2.4. The bottom row of table 2.4 contains the roots of the chords in bars [8..16). A

+SI +SI +SI


+2 +2 +2 +2
9 11 4 6 11 1 6 8

Table 2.4: chord roots in Rameau’s canon at the fifth

chord sequence comprising two dominant seventh chords, their roots being 2 semitones apart as indicated
in the second row, is continuously transposed by T I bars and SI semitones (mod 12) as indicated in the
top row. Note that his choice of SI results in the “most perfect progression”[RG71, p.95] between the roots
of the chords in progressions from odd to even bars: the descending fifth. According to his “Rule for the
2
The interval notation is also used in reference to bar numbers. Lower- and upper bounds are separated by two dots, round and
square brackets have their usual meaning. I.e. [8..16) refers to the numbers 8, 9, . . . , 15.
14 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

progression of Dissonances, derived from the progression of fundamental chords”[RG71, p.95], this is one
out of three progressions in which the seventh can be prepared. Another one of such progressions is the
ascending second (or descending seventh) between roots, which corresponds to the progression from odd to
even bars. Also note that the combination of these progressions as in the chord sequence chosen by Rameau
allows for the stepwise downward resolution of each seventh according to his rule. We return to these points
in section 2.4.2.
In his analysis of Rameau’s canon at the fifth [Gos00a, p.53], Gosman notes that the canon’s dux in-
troduces each degree of the seventh chord, the root, third, fifth, and seventh in order to obtain complete
chords. His analysis implies a time-interval of 1 where every odd bar is a (Schenkerian) prolongation of the
preceding even bar. While understandable from an analytical viewpoint, recall that the chords at odd bars
are also complete, which implies T I = 2 whole notes. Nevertheless, his remarks demonstrate that when
studying harmonic- or voice-leading constraints between chords in a stacked canon, the pitch(-class) of a
melody-tone is often of lesser importance than its relative position within its chord. To simplify the study
of this relation, I define the concept of relative chord tones: the relative position of a chord tone within a
chord. While in triadic harmonies, the ‘root’, ‘third’, ‘fifth’ and ‘seventh’ are established relative chord tone
labels, we adopt the approach here of labeling relative chord tones with integers starting from 0. To deter-
mine the relative chord tone labeling of a chord in general, first transpose the chord such that its (possibly
subjective) root is at pitch class 0. Then label the chord tones in ascending pitch order, starting by 0. Hence
the aforementioned relative chord tone labeling in triadic harmonies correspond to 0, 1, 2 and 3 respectively.
The latter labeling is easier in calculations and better serves the treatment of non-triadic harmonies.

2.4.1 Obtaining complete chords


Having explained the notion of relative chord tones, let us investigate how to obtain complete chords in
a stacked canon such as Rameau’s. The number below each note in the four bottom staffs of figure 2.1
equals the relative chord tone the note corresponds in the canon. Table 2.5 gives the relative chord tones
in bars [8..16). The rows correspond to the four voices in their natural order with the bass, voice 0, on the
bottom row. Each column corresponds to one bar. Note the connection with rotational arrays in the sense

3 2 0 3 1 0 2 1
0 3 1 0 2 1 3 2
1 0 2 1 3 2 0 3
2 1 3 2 0 3 1 0

Table 2.5: relative chord tone structure of Rameau’s canon at the fifth

that the relative chord tones at both t = 8 and t = 9 are each cyclicly shifted upward every T I bars. Next
I explain how this cyclic shift resulted from the choice of V , the chord sequence, and desire for complete
chords, and why this naturally led to a spiral canon. Let rct[v, t] denote the relative chord tone of voice v
at time t. I.e. rct is a two-dimensional array, e.g. rct[0, 8] = 2 and rct[0, 9] = 1. The dux of the canon
in relative chord tone notation corresponds to rct[0], the one-dimensional array [2, 1, 3, 2, 0, 3, 1, 0, . . . ]
corresponding to a repetition of table 2.5’s bottom row. Because we are dealing with a stacked canon with
a fixed chord sequence, we have that rct[v + 1, t + T I] = rct[v, t] for 0 ≤ v < V − 1 ∧ 0 ≤ t < L − T I.
Hence, the chord at t = 14, the seventh column of table 2.5 (in bold font), is completely determined by
rct[0, t], t ∈ {14 − v ∗ T I ∣ 0 ≤ v < V } = {8, 10, 12, 14}. In relative chord tone notation, this is the same
2.4. ANALYSIS OF RAMEAU’S CANON AT THE FIFTH 15

chord as the one at t = 6, the first chord in which four voices sound. The latter chord is completely
determined by rct[0, t], t ∈ {6 − v ∗ T I ∣ 0 ≤ v < V } = {0, 2, 4, 6}. Hence, if a complete chord is to sound
at t = 6, then mutually different relative chord tones must be chosen for rct[0, t], t ∈ {0, 2, 4, 6}. After
picking mutually different rct[0, t] for t ∈ {0, 2, 4}, there is just a single choice left for rct[0, 6] because
the dominant seventh chord has only four different (relative) chord tones. Hence we have no choice but to
choose rct[0, 8] = rct[0, 0] if a complete chord is to sound at t = 8. By repeating this argument, it follows
that the relative chord tones in the stacked canon in the even bars are cyclic shifts of some permutation of
the numbers [0..V ). Obviously, the same applies to the odd bars. Hence, because each chord in the chord
sequence has size V , the maximum and actual length of the unique part of the dux in Rameau’s canon, LU ,
equals V ∗ T I = 8. Further extensions always result in a repetition of rct[0, 0..LU ): a spiral canon, as is the
case with Rameau’s. The predicate enforcing complete chords, Pcc , is given below. Note that the Dijkstra
notation for quantifications[Dij02] is used in this thesis, in which a quantification’s dummies, range and
term are separated by colons.

Pcc ∶ (∀v, t ∶ 0 ≤ t ∧ 1 ≤ v < V ∧ v ∗ T I < t ∶ rct[0, t] ≠ rct[0, t − v ∗ T I]) .

Algorithm 8 offers an efficient choice of rct[0, 0..T I∗V ) satisfying Pcc , if each chord in our chord sequence
has size V .

Algorithm 8 Precondition: each chord in the chord sequence has size V .

1. for each time class tc (mod T I): pick a permutation πtc of [0..V ), corresponding to the desired
cyclic shift of relative chord tones at time class tc.

2. for each t, 0 ≤ t < V ∗ T I: put rct[0, t] = πt (mod T I) [t/T I (mod V )], where ‘/’ denotes integer
division.

Example 9 Algorithm 8 can generate Rameau’s dux as follows:

1. Choose permutations π0 = (2, 3, 0, 1), π1 = (1, 2, 3, 0) respectively for time classes 0, 1 (mod T I);

2. The interleaving of π0 and π1 yields rct[0] = [2, 1, 3, 2, 0, 3, 1, 0].

Algorithm 8 yields a dux, rct[0], with length LU = V ∗ T I, in just O (V ∗ T I) time. Since V ∗ T I


equals the number of assignments to be made in choosing a dux with this unique length, the problem’s time
complexity is in Θ (V ∗ T I) whence algorithm 8 is optimal. The dux can always be repeated in a stacked
spiral canon. We summarize this section’s main result in proposition 10.

Proposition 10 There exists a stacked spiral canon in which only complete chords sound with V voices,
time interval T I, chord sequence chord, and length of the unique part of the dux LU if and only if each
chord in the chord sequence has size V and LU = V ∗ T I.

2.4.2 Preparation and resolution of sevenths


Having explained how one may achieve complete chords, let us attempt to explain Rameau’s choice for
[2, 1, 3, 2, 0, 3, 1, 0] out of all possible solutions. As mentioned earlier in this section, a constraint assert-
ing that the minor sevenths in each chord are prepared (if possible) and resolve in stepwise downward
16 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

motion, Pspr , is clearly formulated within his “Rule for the progression of Dissonances, derived from the
progression of fundamental chords”[RG71, p.95]. Also, his rule states that major sevenths must resolve
in ascending stepwise motion. The latter aspect, in combination with his preference for ‘the most perfect’
dominant seventh chords, may explain the chromatic descension from the third at odd bars to the seventh
at even bars, as is common in thorough bass practice. Indeed, without this chromatic alteration, a major
seventh chord would result in all inversions, which is why it would have to resolve upward according to his
rule. Given T I, Pcc , and his choice of chord sequence, the preceding observations result in the following
rules:

• any root in an even bar must be followed by a seventh and third (which corresponds to the relative
chord tone sequence [0, 3, 1] starting at from an even bar), and,

• any third in an odd bar must be followed by a seventh and fifth (which corresponds to the relative
chord tone sequence [1, 3, 2] starting at from an odd bar).

A closer look at [0, 3, 1], [1, 3, 2], and the entire dux reveals that all three conform to the function f below,
defined for 1 ≤ t.

⎪ f (t) − 1 (mod V ), if t is even,

f (t + 1) = ⎨
⎩ f (t) − 2 (mod V ), if t is odd

A weakest predicate expressing conformance to f would be stronger than Pspr , which indicates that
Rameau’s choice of dux (and chord sequence) may well have been formed by Pspr . Note that f (t + 2) =
f (t) − 3 (mod V ) = f (t) + 1 (mod V ), which offers another explanation for its generation of complete
chords in the presence of chords with V voices. Indeed, the right summand ‘1’ is a generator of the cyclic
group (Z/V Z, +), the members which represents the relative chord tones available at both even and odd
bars in the presence of a chord sequence in which all chords have size V .

In order for constraints like Pcc or Pspr to be expressed intuitively, I introduce the notion of a dux graph.
Vertices in a dux graph always represent the relative chord tones of the chord sequence. An arc in a dux
graph represents an actual or possible voice leading, from one relative chord tone to the next. A dux graph
of Rameau’s canon is shown in figure 2.2. Each vertex in a dux graph is a tuple of the form (tc, rct): tc
represents the time class modulo T I (even or odd bars in this case), rct the relative chord tone. The arcs

(0, 3) (1, 3)

(0, 2) (1, 2)

(0, 1) (1, 1)

(0, 0) (1, 0)

Figure 2.2: Dux graph of Rameau’s Canon at the fifth


2.4. ANALYSIS OF RAMEAU’S CANON AT THE FIFTH 17

in figure 2.2 correspond to the actual dux chosen by Rameau. The respective initial and terminal vertices
(0, 2), (1, 0) are drawn in bold. The arcs which ensure the proper preparation and resolution of sevenths
are drawn in bold. This section is only concerned with restless dux graphs. As their name suggests, restless
dux graphs contain no rests. Section 2.5 introduces dux graphs with rests. Definition 11 formally defines
restless dux graphs. The array cs contains the chord-sizes of the chord sequence’s chords. E.g. within the
context of Rameau’s canon at the fifth we have cs = [4, 4] and T I = ∣cs∣ = 2. In our model of stacked
canons, the two constants T I and ∣cs∣ are always equal. Hence we may write ∣cs∣ as the time interval of the
canon from now on.

Definition 11 The unconstrained, restless dux graph D (cs) = (V (D (cs)), A (D (cs))) for a stacked
canon with chord sizes cs, is a digraph defined by:

• the set of vertices V (D (cs)) = {(tc, rct) ∣ 0 ≤ tc < ∣cs∣ ∧ 0 ≤ rct < cs[tc]}.

• the set of arcs A (D (cs)) =

⎧ RRR ⎫


⎪ RR 0 ≤ tc < ∣cs∣ ∧ 0 ≤ rct < cs[tc] ∧ ⎪
⎨⟨(tc, rct) , (tc + 1 (mod ∣cs∣), rct′ )⟩ RRR ⎬

⎪ RRR 0 ≤ rct′ < cs [tc + 1 (mod ∣cs∣)] ⎪

⎩ ⎭

Having introduced the notion of dux graphs, let us return to figure 2.2. Starting in (0, 2), the path corre-
sponding to Rameau’s dux visits each vertex exactly once before returning to (0, 2). I.e. the problem of
finding a dux for a stacked canon in which only complete chords sound, corresponds to the problem of
finding a Hamiltonian cycle in the corresponding unconstrained restless dux graph. The general problem of
finding a Hamiltonian cycle is NP-hard[GJ90, p.56-59]. However, if Pcc is our only constraint, Hamiltonian
cycles in a dux graph in which all chord sizes are equal are intuitively found as follows. Starting from some
initial vertex v with time class 0 in the unconstrained dux graph, we walk through the graph while avoiding
vertices already used. This walk always ends in some vertex v ′ with time class T I − 1 after which the arc
⟨v ′ , v⟩ closes the cycle. Note that such a graph algorithm basically corresponds to algorithm 8, although
strictly speaking, the setup of the unconstrained restless dux graph in the graph algorithm makes it more
expensive.

2.4.3 Summary
The previous subsections introduced the modeling of stacked canons by means of relative chord tones,
chord sequences and dux graphs. Several algorithms were presented: one for designing stacked canons
with complete chords in O (∣cs∣ ∗ V ) time (the graph version of which runs in O (∣A (D(cs))∣) time), and
one for designing stacked canons with complete chords in which sevenths present in the chord sequence
are prepared and resolve by deriving a generating function. The efficiency of either algorithm objectively
shows that the design of a stacked canon such as Rameau’s canon at the fifth is not a computational tour
de force3 . The remainder of this chapter further develops the relative chord tone approach to the design of
stacked canons, which comprises the following activities:

1. create a chord sequence;


3
Gosman concludes that music printers in the Renaissance era seemed to have concurred with his belief that the creation of
stacked canons is a compositional tour de force. He infers this from their prominent placement as opening or closing works in
collections[Gos00b, p.3]. My complexity analyses do not contest that they believed so, they do contest their belief.
18 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

2. design a dux as a list of relative chord tones adhering to all stylistic constraints in force;

3. embellish the harmonic reduction of the stacked canon.

The first two of the above activities do not necessarily take place in any particular order. Indeed, our
reasoning within the relative chord tone domain induces the equivalence relation ‘equality modulo chord
sequence instantiation’ which expresses whether or not two stacked canons are equal in relative chord tone
notation. We have already seen that the design of a dux is a style dependent activity in the sense that
it depends on the constraints which define a composer’s style. Instead of attempting to fully discuss one
particular style, section 2.5 discusses the enforcement of two well known voice-leading constraints and their
encoding in dux graphs, section 2.6 sketches an approach to dealing with six-four chords. These are meant
to serve as examples: the approach followed can be used by the readership for encoding their constraints in
a dux graph. The creation and variation of chord sequences is discussed in section 2.7. The embellishment
of the harmonic reduction is left to the discretion of the reader as it is an entirely style dependent activity.

2.5 Voice leading constraints


From the high Renaissance on, theorists generally forbade the use of parallel fifths and octaves in strict
counterpoint, and their occurrence in music up to the late 19th century was incidental[SG01]. This section
discusses the encoding of the associated constraints in our relative chord tone model. Section 2.5.2 discusses
parallel octaves, section 2.5.3 discusses parallel fifths. These sections also serve as examples on encoding
voice leading constraints in general, in our relative chord tone model. Section 2.5.1 provides a few required
definitions.

2.5.1 preliminaries
We use the record type Scale defined below to denote a scale as a transposed subset of the twelve pitch
classes. The field root is used to denote its transposition. The whole tone scale ‘rooted’ at pitch class 1 for
example, corresponds to ⟨{0, 2, 4, 6, 8, 10}, 1⟩.


⎪ tones ∶ 2[0..12) {0 ∈ tones}
type Scale = ⎨
⎩ root ∶

⎪ [0..12)

We denote chords by instances of the record type Chord given below.



⎪ tones ∶ 2[0..∣S.tones∣) {0 ∈ tones}

type Chord = ⎨
⎩ root ∶

⎪ [0..∣S.tones∣)

The set c.tones of a chord c contains scale tone classes, the field root denotes a transposition in scale
tones. Within the context of the scale ⟨{0, 2, 4, 5, 7, 9, 11}, 7⟩ for example, the chord ⟨{0, 2, 4}, 0⟩ denotes
the G-major triad. For a chord c, we refer to ∣c.tones∣ as the chord size of c. The chord sequence of a
stacked canon is represented by the array chord : [0..∣cs∣) → Chord. This implies that in our model
of stacked canons, the chord sequence is transposed every ∣cs∣ time units at interval SI. This may seem
a restriction, we return to this when discussing chord sequencing. The notion of a scale is required when
studying constraints on e.g. parallel fifths in a diatonic context. Due to my own compositional needs, my
discussion focusses mostly on a chromatic context in which scale tones correspond to pitch classes.
2.5. VOICE LEADING CONSTRAINTS 19

2.5.2 Avoiding parallels of the class 0 (mod 12)


This subsection discusses the avoidance of parallel intervals of the class 0 (mod 12), ‘parallel octaves’,
considered undesirable in many styles. Before developing the theory on this subject, we study a few exam-
ples.

Example 12 Let SC be a stacked canon with parameters V = 3, L = 4, cs = [3], dux = [0, 1, 0, 1]), with
dux in relative chord tone notation. Figure 2.3 gives an example realization of SC in G-major with SI = 3
and chord = [⟨{0, 2, 4} , 0⟩]. A parallel interval of the class 0 (mod 12) occurs in the chord change from
t = 2 to t = 3 between voices 0 and 2.The harmonic reduction in relative chord tone notation is given in
table 2.6, again with the voices in their natural order.

#
& 22 ∑ ˙ ˙ ˙ ˙

? # 2 Ó˙ ˙
˙ ˙˙ ˙
˙ ˙ Ó
2 ∑
Figure 2.3: Realization of SC with parameters (V = 3, L = 4, cs = [3], dux = [0, 1, 0, 1])

0 1 0 1
0 1 0 1
0 1 0 1

Table 2.6: relative chord tone structure of SC

The parallel octave in example 12 corresponds to the consecutive occurrence, of two equal relative chord
tones in some pair of voices. Indeed: we have two occurrences of relative chord tone 0 at t = 2 in the outer
voices, and two occurrences of 1 at t + 1 = 3 in the same outer voices. Figure 2.4 shows the derivation of
this dux in a dux graph. An arc label again corresponds to the order in which it is traversed in the dux.
Note that arc ⟨(0, 1), (0, 1)⟩ carries a double label: it is used twice.

(0, 2) (0, 1)

1 0, 2

(0, 0)

Figure 2.4: Dux graph of SC

Example 13 My composition ‘Spiral’ for string orchestra, fully discussed in chapter 3, features several
themes, one of which is theme0 . This theme allows a consonant six-voice stretto ad minimum and many
sub-stretti, all without parallel octaves, while adhering to a simple chord sequence. The six-voice stretto
is a stacked canon with parameters V = 6, cs = [3], SI = 11, L = 10, chord = [⟨{0, 4, 8} , 0⟩], dux =
20 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

[0, 1, 1, 2, 0, 0, 2, 1, 1, 0]. The unembellished six-voice stretto is shown in the top three staves of figure 2.5.
The harmonic reduction is given in the bottom 6 rows of table 2.7. The top row represents a seventh voice,
∑ ∑ Ó Ó
2
&2 ˙ b˙ ˙ ˙ b˙ ˙ ˙ b˙
˙˙ b ˙ b˙
b˙ b˙
∑ ∑ b˙ b˙ b˙ b˙ b˙ b˙ ∑
∑ Ó ˙ ˙ #˙ n˙ Ó ∑
2 ˙ ˙ ˙ ˙ ˙˙ ˙
V2 b˙ ˙ b˙ b˙
∑ b˙ b˙ ˙ b˙ ˙ ∑ ∑
Ó Ó ∑ ∑
?2
2 ˙ ˙ #˙ ˙ ˙ #˙ #˙ #˙ n˙ ˙
b˙ ˙ ˙ b˙ b˙
˙ b˙ ˙ ˙ ˙ ∑ ∑ ∑

? 2 # ˙˙˙ # n ˙˙ #˙ n˙ ˙ #˙
2 ˙ # ˙˙ # n ˙˙ # ˙˙ n ˙˙
˙ #˙
# # ˙˙ n n ˙˙ # ˙˙˙ n # n ˙˙˙ # n # ˙˙˙ n # n ˙˙˙ # ˙˙˙ # n ˙˙ #˙ n˙
˙ # ˙˙ # n ˙˙
Figure 2.5: unembellished stretto and chord sequence of ‘Spiral’: theme0

not present in figure 2.5. The corresponding dux graph is given in figure 2.6. The addition of a seventh voice

0 1 1 2 0 0 2 1 1 0
0 1 1 2 0 0 2 1 1 0
0 1 1 2 0 0 2 1 1 0
0 1 1 2 0 0 2 1 1 0
0 1 1 2 0 0 2 1 1 0
0 1 1 2 0 0 2 1 1 0
0 1 1 2 0 0 2 1 1 0

Table 2.7: relative chord tone structure of adapted stretto of ‘Spiral’: theme0

(0, 0) 4

5 3 0 8
6
2
(0, 2) (0, 1) 1, 7

Figure 2.6: dux graph of stretto of ‘Spiral’: theme0

in the stacked canon would introduce a parallel octave highlighted in bold font, between the outer voices
from t = 7 to t = 8. The reason for this is the dual use of arc ⟨(0, 1), (0, 1)⟩ in the dux at t = 1 → 2, 7 → 8.

Let us summarize the former two examples and think of a dux as the arc-list of its path in an unconstrained
dux graph. Given V voices, we eventually have V voice leadings from one chord to the next if and only if
V ∗ ∣cs∣ < L. Because a voice-leading corresponds to a unique arc, we have that a parallel octave occurs if
and only if within a sublist of V ∗ ∣cs∣ arcs, some arc appears twice. The question of how to create such
a dux is answered as follows. First we derive an upper bound on the number of voices in a stacked canon
2.5. VOICE LEADING CONSTRAINTS 21

without parallel octaves, in terms of the canon’s chord sizes. Next we show that choosing V according to
this bound is also a sufficient condition for such a canon to exist by providing an algorithm. This section
concludes with an algorithm for the generation of a stacked canon without parallel octaves which also con-
siders rests.

As explained, we start by deriving an upper bound on V . To this end, consider any chord progression
in the canon from t → t + 1. Let A− (D(cs), t) denote the set of arcs leaving time class t (mod ∣cs∣),
which, by definition 11, equals the set of arcs entering time class t + 1 (mod ∣cs∣), A+ (D(cs), t + 1). In
the unconstrained dux graph, we have:

∣A− (D (cs) , t)∣ = cs [t (mod ∣cs∣)] ∗ cs [t + 1 (mod ∣cs∣)] . (2.1)

I.e. the number of mutually different possible voice leadings from t to t + 1 equals ∣A− (D (cs) , t) ∣. Obvi-
ously, if we have more voices than mutually different voice leadings between two consecutive chords, then
a parallel octave occurs. This observation leads to the following upper bound on the number of voices V
for a stacked spiral canon without parallel octaves or rests:

V ≤ (↓ tc ∶ 0 ≤ tc < ∣cs∣ ∶ ∣A− (D (cs) , tc)∣) . (2.2)

This bound is useful when designing themes for stretto-fugues, in which a large number of different
stretti is desirable. The question however is of course: is this bound sufficient for a dux to exist, such
that it results in a stacked canon without parallel octaves? We answer this question by first studying
the extreme case in which V equals the right-hand side of (2.2). Let, for an unconstrained dux graph
D(cs) = (V(D(cs)), A(D(cs))):

edg (D (cs))) ≡ (∀tc ∶ 0 ≤ tc < ∣cs∣ ∶ ∣A− (D (cs) , tc)∣ = ∣A− (D (cs) , tc + 1)∣) . (2.3)

We consider the following two cases:

edg(D(cs)): from definition 11 and (2.3), it follows that every vertex has the same in- and out
degrees, and the graph is strongly connected. I.e. it is Eulerian [Eul36]. A Eulerian cycle exists
which uses every arc exactly once, before returning to the initial vertex. The arc-list corresponding
to such a cycle has length (∑ t ∶ 0 ≤ t < ∣cs∣ ∶ A− (D(cs), t)), which, by edg(D(cs)), equals ∣cs∣ ∗
A− (D (cs) , 0). Hence, by repeating this cycle, using (2.2) it follows that no arc is used twice within
any sublist of ∣cs∣ ∗ V = ∣cs∣ ∗ A− (D(cs), 0) arcs whence the resulting stacked canon indeed has no
parallel octaves. The Eulerian cycle can be constructed using Fleury’s algorithm [Fle83].

¬edg(D(cs)): the basic idea in this case is to delete vertices and their adjacent arcs from D, thus
obtaining D(cs′ ), such that edg(D(cs′ )) and the out-degree of each time-class equals the minimum
out-degree of all time-classes in D(cs). We call this process the Eulerization of D(cs).

Example 14 Figure 2.7 shows a dux graph D(cs) before (a) and after (b) Eulerization. By re-
moving vertex (2, 1) from D ([1, 2, 2, 2]) and all adjacent arcs, we obtain the Eulerian dux graph
D ([1, 2, 1, 2])
22 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

0 1 2 3

(1, 1) (2, 1) (3, 1)

(0, 0) (1, 0) (2, 0) (3, 0)

(a) before Eulerization

0 1 2 3

(1, 1) (3, 1)

(0, 0) (1, 0) (2, 0) (3, 0)

(b) after Eulerization

Figure 2.7: D before (a) and after (b) Eulerization

Having established that there exists a stacked canon without parallel octaves for the extreme cases where
(2.2) is an equality, it is easy to show that one also exists for smaller V . Indeed, removing voices from the
canon obtained for the extreme case of (2.2) obviously cannot introduce parallel octaves. We summarize
this section’s main result in proposition 15.

Proposition 15 There exists a restless dux, ∣cs∣ ∗ V < ∣dux∣, for a stacked canon without parallel intervals
of the class 0 (mod 12) and chord sizes cs if and only if (2.2).

The preceding discussion on avoiding parallel octaves did not involve the use of rests, even if they can
be useful in avoiding parallel octaves. Also, the algorithms described leave out many potential solutions.
Indeed, the Eulerization process reduced a non Eulerian dux graph by removing vertices which are never
used if the Eulerized graph is used as an input to Fleury’s algorithm. Also, if (2.2) is a strict inequality,
then creating a dux with Fleury’s algorithm only considers Eulerian cycles, which is overly restrictive. We
conclude this section by introducing an algorithm which successfully deals with rests and also generates
many more solutions. To this end we need the following definition of the unconstrained dux graph with
rests.

Definition 16 The unconstrained, dux graph D<(cs) = (V (D<(cs)) , A (D<(cs))) for a stacked canon
with chord sizes cs, is a digraph defined by:
2.5. VOICE LEADING CONSTRAINTS 23

• its set of vertices V (D<(cs)) =

{(tc, rtc) ∣ 0 ≤ tc < ∣cs∣ ∧ rct ∈ [0..cs[tc]) + <} .

• its set of arcs A (D<(cs)) =

⎧ RR ⎫

⎪ RRR 0 ≤ tc < ∣cs∣ ∧ tc′ = tc + 1 (mod ∣cs∣) ∧ ⎪

⎨⟨(tc, rct) , (tc′ , rct′ )⟩ RRR ⎬

⎪ RR tc ∈ [0..cs[tc]) + <∧ tc ∈ [0..cs[tc ]) + < ⎪
′ ′

⎩ R ⎭

In comparison to the restless dux graph, the dux graph with rests has an extra vertex for every time-class,
with relative chord tone ‘<’: a rest. This extra vertex has one incoming arc from each vertex of the previous
time class, and one outgoing arc to each of the vertices of the next time class. If an arc is neither entering nor
leaving a rest, we call it restless. We create a dux with rests for a stacked canon without parallel octaves by
walking through its dux graph D<(cs). During this walk, we must once more avoid the reuse of any restless
arc within a subsequence of ∣cs∣ ∗ V arcs. We do this by removing the restless arc corresponding to dux[l −
1..l] immediately after choosing dux[l]. This arc is then restored immediately after choosing dux[l − 1 +
V ∗ ∣cs∣]. Reusing an arc containing a rest obviously cannot result in parallel octaves. Hence, if we allow
rests, the number of voices in a stacked canon is no longer constrained by (2.2). Algorithm 17 uses these
observations to find such a dux. It is given in a slightly adapted version of the Guarded Command Language
(GCL) [Dij76][Kal90] and explained further below. Three reasons motivated this choice of formalism. The
GCL is a formal language with well defined semantics, borrowed from logic and mathematics. Second,
the GCL uses language constructs quite similar to imperative programming languages. Hence it is easy
to understand or translate to an actual computer program. Third, the derivational style of programming
associated with the GCL was used in deriving most results and algorithms in the chapter, although their
formal derivation is probably out of scope. The program and all of its GCL-constructs are explained below.
24 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

Algorithm 17
∣[
const V, L ∶ N+ ;
const cs ∶ [0..∣cs∣) → [1..12] ;
const CS = (↑ t ∶ 0 ≤ t < ∣cs∣ ∶ cs[t]) ;

var as ∶ [0.. ∣cs∣) × [0..CS) + < → 2[0..CS)+<;


var dux ∶ [0..L) → [0..CS) + <;
var l ∶ [0..L];

for all tc, rct ∶ tc ∈ [0..∣cs∣) ∧ rct ∈ [0..CS) + < ∶


as[tc, rct] =∶ [0..cs [tc + 1 (mod ∣cs∣)]) + <;
dux[0] ∶ dux[0] ∈ [0..cs[0]) ∨ dux[0] = <;
l =∶ 1;

do l ≠ L →
dux[l] ∶ dux[l] ∈ as [l − 1 (mod ∣cs∣), dux[l − 1]] ;
if < ∈ dux[l − 1..l] → skip;
[] < /∈ dux[l − 1..l] → as [l − 1 (mod ∣cs∣), dux[l − 1]] =∶
as [l − 1 (mod ∣cs∣), dux[l − 1]] − dux[l];
fi
const l′ = l − ∣cs∣ ∗ (V − 1) ;
if 0 < l′ → as [l′ − 1 (mod ∣cs∣), dux[l′ − 1]] =∶
as [l′ − 1 (mod ∣cs∣), dux[l′ − 1]] + dux[l′ ];
[] l′ ≤ 0 → skip;
fi
l =∶ l + 1;
od
]∣

Let us examine the global variables and constants used in algorithm 17. The constants V , L and cs have
their usual meaning, as does the variable dux. The constant CS equals the maximum of all chord sizes.
The variable as stores the adjacency set of each vertex. I.e. as[tc, rct] is initialized such that it contains
all relative chord tones at time class tc + 1 (mod ∣cs∣), including the rest. These are all relative chord tones
of the vertices accessible from vertex (tc, rct) in D<(cs). The variable l is a counter ranging from [1..L].
It keeps track of the progress made so far in the do-od repetition. Having explained the declarations in the
first five lines, let us analyze the algorithm.
The first three statements of algorithm 17 form the initialization. The for all statement initializes the
adjacency sets as. Formally, a statement of the form for all v0 , v1 , ⋯ ∶ P (v0 , v1 , ⋯) ∶ S executes S with
all values for the dummy variables v0 , v1 , ⋯ for which P (v0 , v1 , ⋯) holds. It is a convenience construct
which avoids writing down a trivial repetition. The next statement chooses a value for dux[0]: any relative
chord tone or rest available at time class 0. Formally, in a statement of the form v ∶ P , the binary choice
operator ‘∶’ assigns a value to the variable v such that the predicate P evaluates to true: P is a valid
postcondition to this statement. In this chapter, the choice operator models the composer’s choice. The last
2.5. VOICE LEADING CONSTRAINTS 25

initialization initializes l to 1, reflecting that the dux created thus far has length 1.
The repetition which follows the initialization expands dux[0..l) by one relative chord tone during each
stroke, until l = L. The first statement within the repetition chooses some available relative chord tone from
the adjacency set as [l − 1 (mod ∣cs∣), dux[l − 1]], using the choice operator ‘∶’. Note that the choice of
a rest is always available, as those are never removed in this program. The if-fi selection following this
choice considers two cases: the first case corresponds to the harmless choice of an arc containing a rest, the
second to a choice of an arc without a rest. If a restless arc is chosen, we must take care not to use it again
within a subsequence of (V − 1) ∗ ∣cs∣ arcs or parallel octaves will be the result. Hence, the removal of the
end vertex dux[l] from the adjacency set of as [l − 1 (mod ∣cs∣), dux[l − 1]]. The next two statements
deal with adding the arc ⟨(l′ − 1 (mod ∣cs), dux[l′ − 1]) , (l′ (mod ∣cs), dux[l′ ])⟩ back to the graph, for
l′ = l − (V − 1) ∗ ∣cs∣, as it can now be safely reused. Initially, this arc may be undefined, since we haven’t
proceeded far enough in the generation of our dux: hence the selection.
Algorithm 17 is a straightforward derivation using the technique of replacing the constant L by the
program variable l[Kal90, pp.57-62] in the invariants expressing that dux[0..L) results in a stacked canon
without parallel octaves. Let us briefly analyze its complexity. The most costly initialization step is the gen-
eration of the adjacency sets as. Let CS = (↑ tc ∶ 0 ≤ tc < ∣cs∣ ∶ cs[tc]). Then this step takes O (∣cs∣ ∗ CS 2 )
steps. The repetition takes O (L) time. The result, O (∣cs∣ ∗ CS 2 + L), is near linear for larger L.

2.5.3 Avoiding parallels of the class 7 (mod 12)

Some styles consider parallels of the interval class I (mod 12) unacceptable, whereas parallels of the
interval −I (mod 12) are not. A well known example are ‘parallel fifths’ (I = 7), the inverse of which,
‘parallel fourths’ (I = 5) are considered less problematic. We sketch an approach to avoiding such parallels
in stacked canons in this subsection.
Whether or not two relative chord tones form an undesirable parallel interval class I (mod 12), ulti-
mately depends on the scale and chords used, the type of stacking (ascending or descending), and whether
or not voices may cross. In this section we assume that I results from a particular relative chord tone inter-
val such as 2, which corresponds to a fifth in triadic chord sequences. For the sake of brevity we assume
that no voice crossings occur. We use the boolean constant ASC ∶ ASC ≡ 0 < SI to denote whether or
not a canon is stacked in ascending fashion. For b ∈ B, we define JbK to equal 1 if b and 0 if ¬b. The boolean
function cr ∶ 2[0..L) → B , cr(T ) ≡ (∃t ∶ t ∈ T ∶ dux[t] = <), expresses whether or not dux contains a
rest for some t ∈ T .
The predicate Pnpar (rcti) given below expresses that no parallel relative chord tone intervals rcti
occurs.

⎛ ∀v, t ∶ 1 ≤ t < L ∧ 1 ≤ v < V ∧ 1 ≤ t − v ∗ ∣cs∣ ∶ ⎞


⎜ cr ({t − 1 − v ∗ ∣cs∣, t − v ∗ ∣cs∣, t − 1, t}) ∨ ⎟
⎜ ⎟
Pnpar (rcti) ∶ ⎜ ⎟.
⎜ dux [t − 1..t] + JASCK ∗ rcti ≠ ⎟
⎜ ⎟
⎝ dux [t − 1 − v ∗ ∣cs∣ ..t − v ∗ ∣cs∣] + J¬ASCK ∗ rcti ⎠

Note that Pnpar (0), with L replaced by l, was used as a loop invariant in the derivation of algorithm 17.
The summands containing ASC reduce to 0 in that case. For parallel fifths we put rcti = 2. Using the
aforementioned technique of replacing the constant L by the program variable l, we obtain Pnpar (rcti, l)
26 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

given below, as a precondition to an increase of l by one.

⎛ ∀v ∶ 1 ≤ v < V ∧ 1 ≤ l − v ∗ ∣cs∣ ∶ ⎞
⎜ cr ({l − 1 − v ∗ ∣cs∣, l − v ∗ ∣cs∣, l − 1, l}) ∨ ⎟
⎜ ⎟
Pnpar (rcti, l) ∶ ⎜ ⎟.
⎜ dux [l − 1..l] + JASCK ∗ rcti ≠ ⎟
⎜ ⎟
⎝ dux [l − 1 − v ∗ ∣cs∣ ..l − v ∗ ∣cs∣] + J¬ASCK ∗ rcti ⎠

Algorithm 18 Adapt algorithm 17 as follows to prevent parallel relative chord tone intervals rcti, using
the auxiliary constant

δrcti = (J¬ASCK − JASCK) ∗ rcti ∶

1. The second alternative of the first if-statement must be catenated with the below fragment :

∣[ var b ∶ B;
b =∶ 0 ≤ dux[l − 1] + δrcti < cs [l − 1 (mod ∣cs∣)] ∧
0 ≤ dux[l] + δrcti < cs [l (mod ∣cs∣)] ;
if b → as [l − 1 (mod ∣cs∣), dux [l − 1] + δrcti ] =∶
as [l − 1, dux [l − 1] + δrcti ] − (dux[l] + δrcti );
[] ¬b → skip;
f i ]∣.

The local variable b expresses whether or not the arc corresponding to dux[l − 1, l] can intro-
duce the undesirable parallels corresponding to the relative chord tone interval rcti. If so, the
arc ⟨(l − 1 (mod ∣cs∣), dux[l − 1] + δrcti ) , (l (mod ∣cs∣), dux[l] + δrcti )⟩ is removed from A(cs).
Again, an arc containing a rest is never removed whence deadlock cannot occur.

2. The first alternative of the second if-statement must be catenated with the below fragment, which
allows an arc deleted by the first modification to be used again it no longer poses a danger.

∣[ var b ∶ B;
b =∶ 0 ≤ dux [l − 1 − ∣cs∣ ∗ (V − 1)] + δrcti < cs [l − 1 (mod ∣cs∣)] ∧
0 ≤ dux [l − ∣cs∣ ∗ (V − 1)] + δrcti < cs [l (mod ∣cs∣)] ;
if b → as [l − 1 (mod ∣cs∣), dux [l − 1 − ∣cs∣ ∗ (V − 1)] + δrcti ] =∶
as [l − 1 (mod ∣cs∣), dux [l − 1 − ∣cs∣ ∗ (V − 1)] + δrcti ] +
(dux [l − ∣cs∣ ∗ (V − 1)] + δrcti ) ;
[] ¬b → skip;
f i ]∣.

Note that neither adaptation changes the computational complexity of the resulting algorithm from our pre-
vious analysis.

Proposition 15 provided us a bound on the number of voices in terms of the chord size of a long stacked
2.6. AVOIDING SIX-FOUR CHORDS IN TRIADIC CHORD SEQUENCES 27

canon without parallel octaves. Here we provide a similar bound for a stacked spiral canon without parallel
fifths or octaves: proposition 19. Because of the connection between Pnpar (2) and traditional harmonies
and music, there is not much use in investigating chord sizes larger than 4.

Proposition 19 Let cs be of the pattern (3)+ , (3, 4)+ , (4, 3)+ , or (4)+ ∧ ∣cs∣ (mod 2) = 1. There exists a
restless dux with LU = ∣cs∣ ∗ A− (D (cs) , 0), for a stacked spiral canon for which Pnpar (0) ∧ Pnpar (2)
holds if and only if V ≤ (↓ tc ∶ 0 ≤ tc < ∣cs∣ ∶ A− (D (cs) , tc)).

Proof. Note that for each chord size pattern under consideration, the corresponding dux graph is Eulerian.
Hence the constructive proof of proposition 15 in section 2.5.2 provides a dux for a stacked spiral canon
with V = A− (D (cs) , 0) voices without parallel octaves. Such a dux corresponds to a Eulerian cycle
in a Eulerian dux graph with LU = ∣cs∣ ∗ A− (D (cs) , 0) which repetition results in a spiral canon. Let
σn,∣cs∣ (dux) denote the cyclic right-shift of dux by n ∗ ∣cs∣ places. The occurrence of a parallel fifth
between voices 0 and v corresponds to the existence of a cyclic shift σv,∣cs∣ which maps two consecutive
relative chord tones i + 2, j + 2 onto i, j. Let the respective time classes be tci , tcj , i.e. tcj = 1 + tci
(mod ∣cs∣). Such a cyclic shift exists if the corresponding chords have sizes at least 3. Indeed, the system
of equations 0 ≤ i < cs[tci ] − 2, 0 ≤ j < cs[tcj ] − 2 has (cs [tcj ] − 2) ∗ (cs [tcj ] − 2) solutions, which
indicates that multiple shifts may exist for larger chord sizes. By choosing a dux in which for all solutions
i, j, the segment i + 2, j + 2 is mapped onto i, j by σv,∣cs∣ (dux), for some v ∈ [0.. ∣cs∣ ∗ cs [tci ] ∗ cs [tcj ]),
we only lose one of the maximum of cs[tci ] ∗ cs[tcj ] voices provided by the aforementioned constructive
proof of proposition 15. It remains to show that such duces indeed exists for a stacked spiral canon based on
either of the given chord sequence patterns. Consider figure 2.8. Its subfigures represent the unconstrained
restless dux graphs for the patterns of cs under consideration. Each of those graphs have the same structure.
The black arrows are the ones in D(cs) potentially partaking in parallel fifths. The gray arrows are their
complement in A (D (cs)). All vertices are labeled only with relative chord tones. For each of the given
patterns of cs, note that the black arrows, in each sub-graph of figure 2.8 form two disjoint cycles c1 , c2 ,
such that c2 is the upward transposition by two relative chord tones of c1 . The gray arrows span a single
strongly connected subgraph containing a Eulerian cycle c0 , adjacent to all vertices of c1 and c2 . Hence if
we insert c1 into c0 at some vertex (tc, rct), we can always insert c2 at (tc, rct + 2). I.e. this procedure
generates a Eulerian cycle in the unconstrained dux graph, in which only a single shift σv,∣cs∣ results in all
possible parallel fifths for some v.

2.6 Avoiding six-four chords in triadic chord sequences


Since the Renaissance the fourth has been considered a consonance only when it is understood as the inver-
sion of the fifth[SG01]. Hence the six-four chord is banned in Fux’ ‘note against note’ counterpoint [Fux42,
part 2]. This section sketches an approach to the incorporation of the associated constraint in our relative
chord tone model.

Table 2.8 shows the relative chord tone structures of ascending (a) and descending (b) stacked canons with
cs = [3] and V = 3, in which a perfect fourth occurs between the bass and another voice in column three
(in bold font). We assume the use of a triadic chord sequence within this section, which seems appropriate
in light of the constraint being discussed. In the ascending stacked canon, the six-four chord results from
relative chord tone 0 being followed by relative chord tone 2, within a dux-segment of length V . In the
28 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

3 3

2 2 2 2 2

1 1 1 1 1

0 0 0 0 0

(a) cs = (3)+ (b) cs = (3, 4)+ ∨ cs = (4, 3)+

3 3 3

2 2 2

1 1 1

0 0 0

(c) cs = (4)+ ∧ ∣cs∣ (mod 2) = 1

Figure 2.8: Unconstrained dux graph patterns considered in proposition 19

descending stacked canon, the six-four chord results from relative chord tone 2 being followed by relative
chord tone 2, again within a dux-segment of length V . The predicate Pnf defined below generalizes the
preceding observations in forbidding the undesirable fourths in stacked spiral canons with an arbitrary time
distance based on a triadic chord sequence. The boolean constant ASC again indicates whether or not a
stacked canon is ascending. If ASC, then the right summand in the consequent of Pnf becomes negative,
otherwise positive.

⎛ ∀ t, v ∶ 0 ≤ t < L ∧ 0 < v < V ∧ dux[t] = 0 ⎞


Pnf ∶
⎝ ∶ dux [ t + (−1) ∗ v ∗ ∣cs∣ (mod L) ] ≠ 2 ⎠
J¬ASCK
2.7. THE CONSTRUCTION OF A CHORD SEQUENCE 29

(a) ascending stacked canon: (b) descending stacked canon:


0 1 2 0 2 0 1 2
0 1 2 0 2 0 1 2
0 1 2 0 2 0 1 2

Table 2.8: Occurrences of 64 chords in ascending (a) and descending (b) stacked canons

As for choosing a value for dux[l] for incremental values of l as in algorithms 17 or 18, the following rules
can be inferred, with 0 < v < V :

1. If ASC, then, upon choosing dux[l] = 0, a choice of 2 must be avoided for dux [l + v ∗ ∣cs∣];

2. If ¬ASC, then, upon choosing dux[l] = 2, a choice of 0 must be avoided for dux [l + v ∗ ∣cs∣].

The incorporation of these rules into dux-generation algorithms 17 or 18 cannot introduce a deadlock, since
one can always resort to choosing rests in avoiding relative chord tones 2 or 0. The adjacency sets as must
be manipulated in a manner similar to the definition of algorithm 18, which again hardly changes the com-
putational complexity of the resulting algorithms.

Later styles adopt what is described by theorists as cadential six-four chords as in I64 V53 , among other
accepted functions of six-four chords such as passing-, neighbouring- or arpeggiated six-four chords. Note
that both examples in table 2.8 can be understood as a relative chord tone structure which contains the
progression I64 V53 . Indeed, with an appropriate choice of chord sequence, the chords I64 , V53 respectively
correspond to columns 3 and 4 of either sub-table. Prototypical voiceleadings in I64 , V53 corresponds to the
following permutations in relative chord tone notation:

• (0, 1): the root of I64 steps down to the third of V53 ;

• (1, 2): the third of I64 steps down to the fifth of V53 ;

• (2, 0): the fifth of I64 is tied to the root of V53 .

Composing the above cycles we obtain (0, 1, 2), which, if repeated ad libitum, corresponds to a rotational array,
corresponding to a chain of transpositions of the aforementioned progression. While an exhaustive treat-
ment of six-four chords in stacked canons according to the rules of classical harmony is beyond the scope
of this chapter, the examples in this chapter should enable an interested reader to provide it. However, note
that other techniques can also be used to avoid six-four chords. By Rameau’s argument that seventh chords
are acceptable in all inversions, any chord sequence of seventh chords avoids the undesirable use of six-four
chords once all voices have entered the canon, if only complete chords result. Recall from section 2.4.1
that it is not difficult to obtain complete seventh chords in a stacked canon. The only potential occurrence
of dissonant fourths remains during the setup phase of the canon, when voices enter one by one. Hence it
suffices to design the initial part of the dux accordingly in such cases.

2.7 The construction of a chord sequence


This section discusses the creation of chord sequences for stacked canons. The point of departure for our
discussion of chord sequencing is the relation between dux and comites in a stacked canon. As discussed
30 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

in section 2.1, every comes is the transposition by SI scale steps and T I = ∣cs∣ time units, of its immediate
predecessor. Let the array of relative scale tones, rst, be defined analogous to the array of relative chord
tones rct. The predicate Psc summarizes the relation between the relative scale tones of the voices in a
stacked canon. Similar to relative chord tones, relative scale tones identify pitches in a scale with an integer
number for zero up to the number of scale tones. Within the context of a diatonic scale, the below definition
admits diatonic deviations between dux and comites whereas a chromatic scale results in strict imitation.

⎛ ∀t, v ∶ 0 ≤ v < V ∧ v ∗ ∣cs∣ ≤ t < L + v ∗ ∣cs∣ ⎞


Psc ∶
⎝ ∶ rst[v, t] = rst[0, t − v ∗ ∣cs∣] + v ∗ SI mod ∣S.tones∣ ⎠

As the reader may check, algorithm 20 defined below is an obvious way of establishing Psc . All of the chord
sequences in the preceding examples can be constructed by it. The algorithm uses the auxiliary function
rct2rst which, given a chord, and a relative chord tone, returns the corresponding relative scale tone.

Algorithm 20 After choosing cs, rct[0]:

1. repeat the relative chord tones of the dux at the time interval of the canon in all voices, such that

(∀v, t ∶ 0 ≤ t < L ∧ 0 ≤ v < V ∶ rct [t + v ∗ ∣cs∣ , v] = rtc [t, 0]) ;

2. choose chord[0..∣cs∣) and repeat it every ∣cs∣ time units rooted SI scale degrees higher, such that for
all t, ∣cs∣ ≤ t < ∣rct [V − 1]∣:


⎪ chord [t − ∣cs∣] .tones

chord [t] = ⎨
⎩ rct2rst (chord [t − ∣cs∣] , 0) + SI (mod ∣S.tones∣)

A potential drawback of algorithm 20 is repetition: the chord sequence chord[0..∣cs∣) is transposed every
∣cs∣ bars and literally repeats every gcd(∣S.tones∣,SI)
∣cs∣∗∣S.tones∣
bars. I introduce two ways of preventing boredom in this
respect. Section 2.7.1 introduces chord sequence modulations, section 2.7.2 discusses exploiting a choice
of chord sizes greater than V .

2.7.1 Chord sequence modulations


The basic idea of a chord sequence modulation is to reinterpret the relative chord tones of an incomplete
chord in the canon, as relative chord tones of another chord, while holding the pitches of the incomplete
chord invariant. The incomplete chord is called the pivot chord of the chord sequence modulation. Consider
for example, the incomplete chord which contains only relative chord tones 0, 1 from ⟨{0, 4, 7} , 0⟩, these
may be reinterpreted as 1, 2 of ⟨{0, 3, 7} , 9⟩. Something similar to this idea is called a chord shift degree by
Gosman[Gos00b, p.155]. The main difference with Gosman’s definition is that chord sequence modulations
may occur anywhere in the canon where an incomplete chord occurs, whereas the chord shift degree only
occurs at the end of a canonic thread [Gos00b, p.122-210]). The main purpose of the chord shift degree
is to allow a shortened canonic thread to end in the same harmonic function, whereas chord sequence
modulations allow deviations from a chosen chord sequence. This allows us to view the dux of a harmonic
reduction of almost any stacked canon as an array of relative chord tones. A chord sequence modulation
may actually result in different pitches after the pivot chord. This is demonstrated later on in example 22.
2.7. THE CONSTRUCTION OF A CHORD SEQUENCE 31

Definition 21 A chord sequence modulation M is a triple (c, f, t), where c is a Chord, f a member of
the symmetric group S∣c.tones∣ , 0 ≤ t < L + (V − 1) ∗ ∣cs∣, which transforms the stacked canon SC =
(S, V, SI, ∣cs∣, dux, chord) into the stacked canon SC ′ = (S, V, SI, ∣cs∣, CS, dux, chord′ ) such that PM
defined below holds.

⎛ ∀t′ , v ′ ∶ 0 ≤ t′ < L + (V − 1) ∗ ∣cs∣ ∧ 0 ≤ v ′ < V ∧ v ′ ≤ t′ ∶ ⎞


⎜ ⎧
⎪ chord[t′ ] if t′ < t ∨ t′ ≠ t (mod ∣cs∣) ⎟
⎜ ⎪
⎪ ⎟
⎜ ⎪
⎪ ⎟
⎜ chord′ [t′ ] = ⎨ ⟨c.tones, c.root + SI ∗ t∣cs∣ (mod ∣S.tones∣)⟩ if ⎟


−t

⎜ ⎪
⎪ ⎟
⎜ ⎪
⎪ t ≤ t ∧ t = t (mod ∣cs∣) ⎟.
⎜ ⎪ ⎟
′ ′
⎜ ⎩ ⎟
⎜ ⎟
⎜ ∧ ⎟
⎜ ⎧ ⎟
⎜ ⎪ rct[t′ , v ′ ] if t′ < t ∨ t′ ≠ t (mod ∣cs∣) ∨ rct[t′ , v ′ ] = <
⎪ ⎟
⎜ rct′ [t′ , v ′ ] = ⎨ ⎟

⎩ f [rct[t , v ]] if t ≤ t ∧ t = t (mod ∣cs∣) ∧ rct[t , v ] ≠

⎪ ′ ′ ′ ′ ′ ′ < ⎠

The first conjunct of the consequent expresses that M affects only the chords at timeclass t (mod ∣cs∣),
from t onwards. The second conjunct expresses that f permutes the relative chord tones at time t + k ∗ ∣cs∣.
M is said to be canon preserving if it leaves Psc invariant. The chord c is a pivot chord if and only if

(∀v, t ∶ 0 ≤ v < V ∧ v ≤ t ∶ rct2rst (c, f [rct [t, v]]) = rct2rst (chord [t] , rct [t, v])) .

Example 22 Given below are the arrays rct, rct′ of relative chord tones corresponding to the canons
SC, SC ′ respectively shown in figure 2.9. The chords of the sequence are given below each system. The
notation ‘e0’ denotes a diminished triad rooted at e, otherwise small letters denote minor triads, capitals
denote major triads.

2 1 0 0 1 2 0 2 1 1 1 2 0 1
rct : 2 1 0 0 1 2 0 rct’ : 2 1 0 1 2 0 1
2 1 0 0 1 2 0 2 1 0 0 2 0 1

SC is transformed into SC ′ by the canon preserving modulation M,

M = (⟨{0, 3, 7} , 2⟩ , f ∶ f (x) = x + 1 (mod 3), 4) , c = ⟨{3, 7} , 2⟩ .

The modulation is demarcated by a horizontal line in rct and rct′ . Note that c is a pivot chord.

Note that definition 21 requires the function f of a chord sequence modulation (c, f, t) to be a permutation
of the set [0..CS). Although non-bijective functions could also produce canon preserving chord sequence
modulations, they may introduce parallel intervals of the class 0 (mod 12). The following proposition
shows that bijective functions cannot.

Proposition 23 Let M = (c, f, t) be a chord sequence modulation which transforms the stacked canon
SC = (S, V, SI, ∣cs∣, CS, rct, chord) into SC ′ = (S, V, SI, ∣cs∣, CS, rct′ , chord′ ). Then SC ′ contains par-
allel intervals of the class 0 (mod 12) if and only if SC does.

Proof. Let the predicate P be defined as follows for 0 ≤ v < v ′ < V ∧ v ′ ∗ ∣cs∣ ≤ t′ < (V − 1) ∗ ∣cs∣ − 1:

P ≡ rct[t′ , v] = rct[t′ , v ′ ] ∧ rct[t′ + 1, v] = rct[t′ + 1, v ′ ].


32 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

SC

2
&b 4 ∑ ∑
˙ ˙ ˙ ˙ ˙ ˙ ˙
˙ ˙ ˙
? b 24 ˙ ˙˙ ˙˙ ˙ ˙ ˙˙ ˙
Ó
Ó
a d G C F bB e0 a d
SC'
2
&b 4 ∑ ∑
˙ ˙ ˙ ˙ ˙ ˙ ˙
˙ ˙ ˙ ˙
? b 24 ˙ ˙˙ ˙˙ ˙ ˙ ˙ ˙
Ó
Ó
a d G C F~d g C F bB

Figure 2.9: Stacked canons SC and SC ′

P is true, if and only if parallel intervals of the class 0 (mod 12) occurs between voices v, v ′ upon moving
from time t′ to t′ + 1. As f is a bijection,applying f to the first, second or both conjuncts of P leaves it
invariant. A similar argument can be made for P ′ defined below and the inverse function of f :

P ′ ≡ rct′ [t′ , v] = rct′ [t′ , v ′ ] ∧ rct′ [t′ + 1, v] = rct′ [t′ + 1, v ′ ].

Algorithm 24 summarizes the preceding observations regarding chord sequencing. It produces a chord
sequence chord and relative chord tone sequence rct from the given dux rtc−1 [0] while maintaining a
global permutation function f [tc] for each time class tc, 0 ≤ tc < ∣cs∣. An advantage of this approach is
that for a modulation (c, f ′ , t), we need only apply f ′ to f [tc] and subsequently store f [tc, rct[t, v]] for
0 ≤ v < V . The result is an algorithm with running time O ((L + (V − 1) ∗ ∣cs∣) ∗ (CS + V )) whereas the
alternative of applying f ′ to rtc[t + k ∗ ∣cs∣] for 0 ≤ k ≤ ⌊ ⌋
L+(V −1)∗∣cs∣−1−t
∣cs∣
would have a running time of
O ((L + (V − 1) ∗ ∣cs∣) ∗ (CS + V ∗ L+(V −1)∗∣cs∣
)).
What follows is a detailed description of algorithm
∣cs∣
24 which comprises four initialization statements and a repetition. The first initialization statement sets f to
the identity of SCS . The second initialization statement chooses an initial chord sequence chord[0..∣cs∣), to
be followed by the third initialization statement which initializes rtc according to the first step of algorithm
20. The variable tc always refers to the time class of t.
The repetition extends the chord sequence with chord[t] in every stroke. The first alternative of the
if-statement corresponds to a continuation of the existing chord sequence, i.e. no chord modulation. The
second alternative corresponds to a canon preserving chord sequence modulation (c, f ′ , t) which affects the
chord at times t + k ∗ ∣cs∣.
2.7. THE CONSTRUCTION OF A CHORD SEQUENCE 33

∣[
Algorithm 24
const S ∶ Scale;
const CS ∶ [1.. ∣S.tones∣) ;
const SI ∶ Z;
const dux ∶ [0..L) → [0..CS);
var f ∶ [0..L + (V − 1) ∗ ∣cs∣) × [0..CS) → [0..CS);
var f ′ ∶ [0..CS) → [0..CS);
var rct ∶ [0..L + (V − 1) ∗ ∣cs∣) × [0..V ) → [0..CS) ∪ {<};
var chord ∶ [0..L + (V − 1) ∗ ∣cs∣) → Chord;
var t ∶ [0..L + (V − 1) ∗ ∣cs∣];
var tc ∶ [0..∣cs∣);
var c ∶ Chord;

for all i ∶ 0 ≤ i < ∣cs∣ ∧ 0 ≤ j < CS ∶ f [i, j] =∶ j;


for all i ∶ 0 ≤ i < ∣cs∣ ∶ chord[i] ∶ ∣chord[i].tones∣ = CS;
for all v, t ∶ 0 ≤ t < L ∧ 1 ≤ v < V ∶ rtc [t + v ∗ ∣cs∣, v] =∶ rtc [t, 0] ;
t, tc =∶ ∣cs∣, 0;

do t ≠ L + (V − 1) ∗ ∣cs∣ →
if true → chord[t] =∶ ⟨chord[t − ∣cs∣].tones, rst (chord[t − ∣cs∣], 0, SI)⟩ ;
[] true → c, f ∶
Ð→
∣c.tones∣ = CS ∧ f ∈ SCS ∧
⎛ ∀v ∶ 1 ≤ v ≤ min (V − 1, ⌊ ∣cs∣ t
⌋) ∧ rct [t, v] ≠ <∶ ⎞
⎜ ⎟
⎜ rst (⟨chord[t − ∣cs∣].tones, rst (chord[t − ∣cs∣], 0, SI)⟩ , f [tc, rct [t, v]]) = ⎟
⎜ ⎟
⎝ rst (c, f ′ [f [rct [t, v]]]) ⎠
for all i ∶ 0 ≤ i < CS ∶ f [tc, i] =∶ f ′ [f [tc, i]]
f i;
for all v ∶ 0 ≤ v ≤ min (V − 1, ⌊ ∣cs∣
t
⌋) ∧ rct[t, v] ≠ <∶
rct[t, v] =∶ f [tc, rct[t, v]];
t, tc =∶ t + 1, tc + 1 (mod ∣cs∣)
od ]∣

2.7.2 Choosing chord sizes greater than V

Melodic and harmonic variety in a stacked (spiral) canon can also be obtained by choosing a chord sequence
which contains at least one chord with a size greater than V . Let tc be its corresponding time-class
(mod ∣cs∣). By varying the subset of relative chord tones chosen at time class tc, variety in both harmony
and melody is indeed obtained, yet, the underlying chord sequence remains completely pre-determined.
This section sketches an approach towards the generation of a long dux, which is the concatenation of
several shorter duces, such that:

• each of the shorter duces is based on some choice of subsets of relative chord tones for each time-
class.
34 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

• each one of the shorter duces, and their long concatenation, allows a stacked-spiral canon without
parallel octaves or chord tone doublings.

We first study how to obtain one of the shorter duces, after which the conditions for concatenating (several
of) such duces into the longer dux are derived. For the purpose of creating such a short dux, let us use the
array RS for storing the relative chord tone subset for each time-class tc (mod ∣cs∣). I.e. RS[tc] represents
our choices for relative chord tones at time-class tc. Also, let lcm(s) for some set of integers s equal the
least common multiple of its members.

Proposition 25 For all tc, RS, such that:

0 ≤ tc < ∣cs∣ ∧ ∣RS∣ = ∣cs∣ ∧ RS[tc] ⊆ [0..cs [tc]) ∧ V ≤ ∣RS[tc]∣,

there exists a dux for a stacked spiral canon for V voices without parallel octaves or chord tone doublings,
such that:

∣dux∣ = ∣cs∣ ∗ lcm ( {∣RS [i]∣ ∣ 0 ≤ i < ∣cs∣} ) .

Proof. Algorithm 26, an adaptation of algorithm 8, can construct each of the duces according to the pream-
ble.

Algorithm 26

1. For each time-class tc (mod ∣cs∣):

(a) choose a subset RS[tc] of the relative chord tones [0..cs [tc]), such that V ≤ ∣RS[tc]∣
(b) choose a permutation πtc of RS[tc] corresponding to the desired cyclic shift of relative chord
tones at time class tc.

2. For each t, tc, 0 ≤ t < ∣cs∣ ∗ lcm ( {∣RS [i]∣ ∣ 0 ≤ i < ∣cs∣} ) ∧ tc = t (mod ∣cs∣):

dux[t] ∶= πtc [ t/∣cs∣ (mod ∣RS [tc]∣) ] ,

where ‘/’ denotes integer division.

While I referred to a dux created by algorithm 26 as ‘short’ in comparison to the concatenation of sev-
eral such duces, note that it can in fact be quite long if (several of) the different subsets chosen in step 1a)
have sizes which are relatively prime. Yet, the algorithm is linear in ∣dux∣, i.e. very efficient.

Let us now study the concatenation of duces derived with algorithm 26 such that no chord tone doublings
result from the long dux. A way of easing the prevention of chord tone doublings in the resulting canon,
is the insertion of rests between two short duces, duxi and duxi+1 . Let the number of rests inserted equal
ri ∗ ∣cs∣. Also, let us superscript permutations chosen in step 1a) of algorithm 26 by the corresponding dux’
subscript. The projection onto time-class tc of the concatenation (‘⊕’) of duxi , ri ∗ ∣cs∣ rests, duxi+1 , has a
sublist of the structure given below, which generates chords in which relative chord tones of both permuta-
i i+1 i
tions πtc and πtc sound simultaneously. The first V − 1 − ri entries correspond to πtc ’s tail. Similarly, the
2.8. COUNTING DISTINCT SUB-CANONS OF A STACKED CANON 35

i+1
last V − 1 − ri entries correspond to πtc ’s head.

πtci
[∣πtc i
∣ − (V − 1) + ri .. ∣πtc i
∣) ⊕ <⊕ ⋅ ⋅ ⋅ ⊕ <⊕ πtc i+1
[0 .. V − 1 − ri )
´¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¶ ´¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¶ ´¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¸¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¶
ri V −1−ri
V −1−ri

A sliding window of size V in the above concatenation, corresponds to the succession of chords at time-
class tc (mod ∣cs∣) formed by both permutations. It follows that the concatenation introduces no chord tone
doublings, and hence no parallel octaves, if and only if for all time classes tc, there exists no such window
i
containing any relative chord tone other than a rest more than once. Hence, successive permutations πtc ,
i+1
πtc , . . . must be chosen accordingly in step 1b) of algorithm 26 if so desired.

2.8 Counting distinct sub-canons of a stacked canon


Requirements to a dux used solely in a stacked canon may differ from requirements to a main-theme used
in more liberal polyphonic forms. A requirement more typical within the context of the latter application,
is the possibility of a large number of polyphonic combinations with itself, i.e. stretti. As pointed out in
section 2.1, one way of attaining this goal is to design a theme as the dux of a stacked canon for a relatively
large number of voices. In this section we count the number of distinct, non-trivial sub-canons of a stacked
canon for V voices. To this end we need a few definitions. In any polyphonic structure, we define inversion
analogous to inversion of chords. I.e. the root inversion is the original structure, the first inversion is the
original structure with its lowest voice transposed up by the minimal number of octaves required for it to
start above the highest voice in the original stacked canon, et cetera.

Example 27 Reconsider Rameau’s canon at the fifth, shown in figure 2.1 on page 8. The canon’s harmoniola,
the polyphonic structure of bars [6, 7], appears in third inversion, transposed up by the scale interval of the
stacked canon, in bar [8, 9]. Indeed, the set of bars:

{[m, m + 1] ∣ 6 ≤ m ∧ m (mod 2) = 0} ,

is an equivalence class induced by the relation ‘equivalent modulo transposition and inversion to the har-
moniola’.

We define any polyphonic (sub-)structure as trivial if it has less than two voices. Two polyphonic struc-
tures for V voices are equivalent modulo the operations of transposition and inversion if there exists a
transposition and inversion which identifies them.

Proposition 28 The number of distinct, non-trivial, sub-canons modulo the operations of transposition and
inversion of a stacked canon for V voices, subc(V ), equals 2V −1 − 1.

Proof. Let us label the entries in a stacked sub-canon by the number of entries preceding it in the original
stacked canon. By definition of equivalence modulo transposition and inversion, it follows that:

• for every sub-canon not involving voice 0, there exists an equivalent sub-canon containing voice 0.
Let Vmin be the smallest used in the sub-canon. The equivalent stacked canon is found by replacing
each voice v by v − Vmin ;

• for every inverted sub-canon, there exists an equivalent sub-canon with its entries in ascending order.
36 CHAPTER 2. ON DESIGNING STACKED CANONS WITH RELATIVE CHORD TONES

I.e. it suffices to consider only sub-canons with all entries in ascending order, containing voice 0. Setting
the first entry of a sub-canon to voice 0 of the original canon leaves V − 1 voices to in- or exclude. Of the
2V −1 different combinations of the V − 1 voices, exactly one results in a trivial sub-canon with just one
voice.

Corollary 29 Let subc(V, Vsubc ) equal the number of distinct sub-canons for Vsubc voices modulo trans-
position and inversion of a stacked canon for V voices.

V −1
subc(V, Vsubc ) = ( ).
Vsubc − 1

Proposition 28 shows that the number of distinct sub-canons of a stacked canon grows exponentially in
V . Proposition 15 on page 22 shows that the maximum number of voices of a restless stacked canon
without parallel octaves is a quadratic function of the chosen chord sizes. Table 2.9 shows, for the chord
size patterns shown in its first column, the maximum number of voices of a restless stacked canon without
parallel octaves provided by proposition 15 in its second column, and, the corresponding number of distinct
non-trivial sub-canons in its third column. Let CS equal the repeated chord size in the first column, then the
2
corresponding value in the third column equals 2CS −1 − 1. I.e. the third column shows double exponential
growth in terms of the chosen chord sizes. Both the efficiency of the algorithms for generating stacked

V = ∣A (D (cs) , 0) ∣ subc(V )

cs
(2)+ 4 7
(3)+ 9 255
(4)+ 16 32, 767
(5)+ 25 16, 777, 215

Table 2.9: number of distinct sub-canons of a stacked canon without parallel octaves

canons developed in this chapter and the large number of sub-stretti a theme designed as a stacked canon
allows, underline the connection between stacked canons and the design of larger scale imitative polyphonic
structures.
Chapter 3

Spiral

Spiral is a multi-part composition for string orchestra. Its title refers to a geometrical shape such as shown in
figure 3.1 1 , which, emanating from a central point, moves progressively further away. The shape is endless

Figure 3.1: a spiral

and seemingly repetitive, yet ever so slightly changing, which concept is intuitively followed throughout
the composition. Spiral’s main thematic elements are discussed in section 3.1. An analysis of its individual
parts is provided in sections 3.2 and 3.3.

3.1 Thematic elements


The relative chord tone approach to the design of stacked canons developed in chapter 2 was applied to the
design of Spiral’s main themes. Their derivation and properties in sections 3.1.1 and 3.1.2.

3.1.1 theme0
Example 13 on page 19 briefly introduced Spiral’s main theme, theme0 . An important requirement was
for it to enable many distinct stretti, in order to sustain a larger imitative polyphonic form. As discussed
in section 2.8, the design of a theme as the dux of a stacked canon is an efficient method enabling this.
Several other esthetic principals also played an important role in the derivation of theme0 . While I con-
sider parallel perfect fifths unproblematic in sufficiently dissonant contexts, they can make independence
1
the 3D coordinates are determined by (1.08t ∗ sin (t), −t, 1.08t cos (t)), 0 ≤ t < 15π

37
38 CHAPTER 3. SPIRAL

of voices difficult to achieve[Per61, p.203], especially in consonant surroundings or two-voice sections.


Hence a design constraint for theme0 was the absence of parallel fifths in its stretti. Furthermore, I wished
for the stretti based on theme0 to be consonant for several reasons. Firstly, dissonance is easily added but
not removed and consonant stretti therefore provide more freedom in the harmonic design of the composi-
tion. Secondly, dissonant chords in stretti are more difficult to manage in polyphonic contexts in which the
invertibility of chords is required when using double counterpoint at the octave. Indeed, dissonances sound
milder when chords are widely spaced across registers, the inversion of which results in narrow spacing and
thus sharper dissonance and possibly voice crossings. Another design constraint that requires little debate
was the absence of parallel octaves. The augmented triad rooted at pitch class 0, repeated a semi-tone lower
on each successive repetition, was chosen to easily satisfy most of these constraints. As this chord sequence
excludes the occurrence of parallel perfect fifths or dissonances, the only constraint still to be accounted for
is the avoidance of parallel octaves.

The dux graph corresponding to the chosen chord sequence was shown in figure 2.6 on page 20. The
set of edges leaving the one and only time-class has size 9. Using proposition 15 we infer that a dux for
a stacked canon without parallel octaves exists if V ≤ 9. The fixture of V to 6 balanced two opposing
constraints, namely, the possibility of many distinct sub-stretti on the one hand, and the artistic freedom of
choosing a melody suitable for a theme on the other hand. Using proposition 28 we find that theme0 allows
for 31 distinct sub-stretti modulo the operations of transposition and inversion by design. Besides those, it
is probable that other stretti are possible too, which do not violate any of the aforementioned constraints.
Indeed, the embellishment of a theme may explain dissonances occurring in a stretto as passing tones,
suspensions, et cetera. In combination with the aforementioned operations of transposition and inversion,
this certainly seems enough to base a multi-part composition on. Having chosen all parameters, the theme
was derived using algorithm 17.

3.1.2 theme1
Depending on the chosen embellishments, theme0 may feature a latent binary meter. As I wished for
theme1 to be a contrast to theme0 , I constructed it such that its latent meter is ternary. This was achieved
by choosing the relative chord tone sequence [2, 2, 2, 1, 1, 1, 0, 0, 0, 2, 2, 2] in the chord sequence used for
deriving theme0 . The ternary meter is exploited in part 2 of Spiral where the theme is used in a passacaglia.
The unembellished version of theme1 is shown in figure 3.2. Its underlying structure is best explained

& 22 b ˙ ˙ #˙
b˙ ˙ ˙ #˙ n˙ ˙ ˙ b˙ ˙
2 2 2 1 1 1 0 0 0 2 2 2

Figure 3.2: Spiral: theme1

using the relative chord tone difference pattern (0, 0, −1 (mod 3)) . After picking a relative-chord tone,

we repeat it twice (the zeroes), and then subtract one modulo three. Due to the augmented triad’s equidistant
division of the octave, we have that:

• the same melodic interval structure results from starting the relative chord tone difference pattern
from either of the three possible relative chord tones;
3.2. PART 1 39

• theme1 is a sequence in classical music-theoretical terminology. By alternating ascending fifths and


descending fourths we obtain the impression of a longer theme.

The ten possible two-voice stretti at a time interval smaller than 6, with a length-12 version of theme1
are given in table 3.1 in relative chord tone notation. The relative chord tones above the horizontal line
corresponds to the first entry in the stretto, any of the relative chord sequences below the horizontal line
correspond to the second entry.

2 2 2 1 1 1 0 0 0 2 2 2
1 1 1 0 0 0 2 2 2 1 1 1
0 0 0 2 2 2 1 1 1 0 0 0
2 2 2 1 1 1 0 0 0 2 2 2
0 0 0 2 2 2 1 1 1 0 0 0
2 2 2 1 1 1 0 0 0 2 2 2
0 0 0 2 2 2 1 1 1 0 0 0
2 2 2 1 1 1 0 0 0 2 2 2
0 0 0 2 2 2 1 1 1 0 0 0
2 2 2 1 1 1 0 0 0 2 2 2
1 1 1 0 0 0 2 2 2 1 1 1

Table 3.1: Spiral: two-voice stretti with theme1

3.2 Part 1
Part 1 of Spiral is based on two stacked spiral canons, both based on the fragment shown in figure 3.3.
The themes used are labeled as follows: theme0 : Cb:[91..95]; theme4 : Vc:[90..95]; theme3 : Va:[91..94];
theme2 : Vln. II:[91..95]; theme1 : Vln. I:[91..95]. Measures [91..95] are the harmoniola of an ascend-
ing stacked spiral canon with T I = 10 beats, V = 5 and SI = 8 semitones. The different lengths of the
various themes were chosen to obfuscate the inherent blockwise structure provided by the harmoniola. An
overview of the canonic structure is shown in table 3.2. The table was split in three in order to fit on one
page. Column labels correspond to measure numbers, row labels to voices. Its entries correspond to the
subscripts of the different themes. The first stacked spiral canon starts in measure 1 and is based on the first
four themes only. The second stacked spiral canon starts in bar 41 with the entrance of the double basses.
The third stacked spiral canon is a recurrence of the previous four-voice canon and starts in bar 91. The
fourth and final stacked spiral canon is a recurrence of the previous five-voice canon and starts in bar 111.
In each canon, each occurrence of the dux (Vc: [1..20]) is followed by an instance transposed four semi-
tones lower. The four-voice spiral canon is descending, the five-voice canon ascends by four semitones.
theme4 is embellished in three different ways for the sake of variety with first respective occurrences in
Vc:[[40..45] , [64..69] , [110..115]]. Part 1 ends with a stretto of theme0 , with SI = 8 semitones and
T I = 4 beats. I.e. a time-compression of the entries of theme0 in the preceding structure.

3.3 Part 2
Part 2 of Spiral features a passacaglia structure enforced by a seemingly endless sequence of theme1 . Start-
ing in Va:1, theme1 is repeatedly transposed downwards. It is handed over to Vc:13, Cb:25, Vln. I:37, Vln.
40 CHAPTER 3. SPIRAL

C
œ n œ ˙≤ # ≥˙ #˙ œ nœ ˙ ˙
90
nœ #˙ # ≥˙ nœ ˙
Vln. I & Œ Œ
f

b˙ œ n œ n ˙≤ ˙ b˙ œ nœ ˙ ˙ #˙ œ n˙
Vln. II & b˙ #œ
f
≥ b˙. œ ≥
Vla. B œ b˙ nœ w w #˙. Œ #˙ #˙
f dolcissimo

? ≥˙ ˙ œ œ bœ œ œ bœ bœ
œ ˙ n œ≤ œ œ œ #œ

œ #œ
#œ Œ
Vc.
f dolcissimo
≤ ≤ n ≥˙ œ #œ ≤
Cb.
? ˙ Ó ˙ b˙ œ œ œ œ b˙. œ ˙ #˙
f sonore

Figure 3.3: Spiral part 1: harmoniola

II:49, Va:65, Vc: 74, Cb:83, Vln. I:103, Vln. II:119, Va:125, Vc:141, Cb:151, Vln. I:155. Superimposed on
this is an A-B-A’-B’ structure with many overlapping combinations of themes 0,1 and 2. The bar numbers
on which the respective sections are 1, 42, 73 and 118. Before discussing the individual sections, we require
a few definitions to more easily describe combinations of themes.

A triple such as ⟨theme0 , t, p⟩ refers to the occurrence of theme0 with ontime t (bars or beats, depend-
ing on the context), such that p equals the pitch class of its first note. A set of such triples is referred to as a
combination. Let the first member of a combination be a member with the smallest ontime t, note that there
may be a choice in this appointment. Members of a combination can be reduced modulo transposition and
inversion by calculating their transposed ontime and pitch-class by the same transposition used in transpos-
ing the first entry to ontime 0 and pitch-class 0. The reduced members of a combination are given between
normal brackets, e.g. (theme0 , ∆b, ∆p). If no confusion arises, we may refer to a theme by its subscript
instead of its full name, e.g. (0, ∆b, ∆p).

All combinations occurring in part 2 are without parallel octaves and dissonances are typically followed
by their resolution. Part 2 nearly exhausts all of the combinations of theme1 derived from table 3.1 on page
39. Also, several combinations of theme1 and theme0 occur, with two overlapping entries of theme1 .
This combinatorial abundance not only hides the rigourous structure of the passacaglia, it also provides for
contrasting movement, meter and volatility in comparison to part 1.
3.3. PART 2 41

m. 1 6 11 16 21 26 31 36 41 46 51 56 61
Vln I 0 1 2 3 0 1 2 3 4 0
Vln II 0 1 2 3 0 1 2 3 4 0 1
Va 0 1 2 3 0 1 2 3 4 0 1 2
Vc 0 1 2 3 0 1 2 3 4 0 1 2 3
Cb 0 1 2 3 4
m. 66 71 76 81 86 91 96 101 106 111 116 121 126
Vln I 1 2 3 4 0 1 2 3 0 1 2 3 4
Vln II 2 3 4 0 1 2 3 0 1 2 3 4 0
Va 3 4 0 1 2 3 0 1 2 3 4 0 1
Vc 4 0 1 2 3 0 1 2 3 4 0 1 2
Cb 0 1 2 3 4 0 1 2 3
m. 131 136 141 146 151 156 161 166 171 176 181
Vln I 0 1 2 3 4 0 1 2 3 4 0
Vln II 1 2 3 4 0 1 2 3 4 0 1
Va 2 3 4 0 1 2 3 4 0 1 2
Vc 3 4 0 1 2 3 4 0 1 2 3
Cb 4 0 1 2 3 4 0 1 2 3

Table 3.2: canonic structure of part 1

3.3.1 Section A
Section A exposes several new ideas based on the themes introduced in Part 1. The section opens with yet
unheard combinations of the form {(0, 0, 0) , (1, 0, 8) , (0, 6, 10)}, where theme 0 is often accompanied by
theme2 in the same relation as in part 1. Note that the pitches of the second half of (1, 0, 8) equal those of
the first halve of (1, 6, 6), the regular counterpoint to (0, 6, 10) throughout part 1, which explains its con-
formance to the passacaglia structure. Using this relation the stretti are chained with entrances of theme0
in measures Cb:1, Vln. II: 3, Vln. I: 5, Vc: 7, Vln. II 9. A divertimento based on theme0 ’s tail spans
measures [12..27) mainly based on theme1 ’s tail and theme3 .

From measure 27 onwards there is a gradual buildup to a first climax starting from measure 37 onwards.
Entries of theme0 in Vln I: 27, Va: 30 and Vln. II:33 are chained in the relation {(0, 0, 0) , (0, 9, 3)}. Note
again that similar to the previous stretti, the pitches of the fourth quarter of (1, 0, 0) correspond to the first
quarter of (1, 3, 0). Themes 2 and 3 accompany theme0 as throughout part 1. This creates accentuates
the ternary meter and creates a slight compression of the preceding structure which, together with the
expansion of the register and stretti with theme1 starting from measure 33, creates a drive towards measure
37. The stretti with theme1 starting in measure 33 are all based on the stacked spiral canon with parameters
T I = 1, SI = 7, V = 4, dux = theme1 . First a two-voice sub-canon starts with entries in Cb: 33, Vc:33 31 ,
followed by a three-voice sub-canon with entries in Cb: 35, Vc:35 31 , Va:35 32 , followed by the full spiral
canon with entries in Vln I: 37, Vln II: 37 31 , Va:35 32 , Vc: 38 (handed over to Cb: 40).

3.3.2 Section B
Figure 3.4 shows the possible reduced two-voice combinations of theme0 at time distance 5, over the
passacaglia structure. Each vertex is labeled in the form vi ∶ (0, ∆t, ∆p), where the latter triple indicates
an entry of a combination, and vi is a label for easy reference to a vertex. The ontimes have been reduced
42 CHAPTER 3. SPIRAL

modulo 20, the time- distance in beats between any two consecutive entries of (0, 0, 0), if the dotted arc is
used. Each arc ⟨vi , vj ⟩ from vertex vi to vj is labeled (∆t, ∆p), where ∆t denotes the time-component
(mod 20) of the transposition that maps vi onto vj and ∆p its pitch-component modulo 12. A path through

t = 10 (mod 20)

v2 ∶ (0, 10, 10)


(5, 11) (5, 3)
t = 0 (mod 20) t = 5 (mod 20) t = 15 (mod 20)

(5, 11) (5, 7) (5, 7)


v0 ∶ (0, 0, 0) v1 ∶ (0, 5, 11) v3 ∶ (0, 10, 6) v5 ∶ (0, 15, 1)
(5, 3) (5, 11)

v4 ∶ (0, 10, 2)

(5, 11)

Figure 3.4: Spiral part 2 section B: stretti with theme0

the graph corresponds to a chain of two-voice stretti with theme0 at time-distance 5. Three different paths
are possible, modulo the operations of transposition and inversion, based on the three choices for a vertex
at time class 10 (mod 20). Each one of those three paths is used exactly once in section B, all starting at
v0 :

1. the first four occurring entries of theme0 starting with Vc:42 correspond to vertex path

v0 → v1 → v4 → v5 ;

2. The first four occurring entries of theme0 starting with Vln. I:51 correspond to vertex path

v0 → v1 → v3 → v5 ;

3. The first four occurring entries of theme0 starting with Cb:60 correspond to vertex path

v0 → v1 → v2 → v5 ;

The last entry in each of the above paths is extended in the score. This has several functions. First, it
creates a short divertimento which is slightly contrasting to the preceding stretti. Second, it allows for an
overlap with the next path for the first two paths. The prolongation at the end of the last path is most
pronounced and used to return to the calmer character of section A’. Third, the prolongations allow the
entries of theme0 to start at mutually different pitch classes. Indeed, section B was designed such that
exactly one entry of theme0 occurs starting on each of the twleve pitch classes, which adds considerable
tension to an already hectic structure. In addition to the aforementioned combinations containing stretti
of theme0 over the passacaglia structure (theme1 ), extra instances of theme1 nearly always generate
four- to five-voice textures. This idea gains independence from measure 67 onwards using the four-voice
combination {(1, 0, 0) , (1, 1, 3) , (1, 2, 10) , (1, 3, 1)}.
3.4. PART 3 43

3.3.3 Section A’
Section A’ opens with the same combinations used in the beginning of section A. The divertimento of
measures [12..27) however returns sooner than in section A and is interrupted by chained stretti with
theme2 of the form {(2, 0, 0) , (2, 3, 5)} with entries in Vln. I:81, Vln. II:82, Va:83, Vln. I:84, Vln. II:85.
After recapturing the original idea of the divertimento in measure 87, the buildup to the second climax
starts in measure 91. The buildup proceeds similar to the one in section A’, with the (in the current context)
unexpected change of the additional entry of theme0 in Vln I: 99. Note that this last stretto corresponds to
the stretti used in the beginnings of section A and A’. The extra entry expands the buildup and register even
further, yet compresses the the expected delay between the entries of theme0 in Va:97 and Vln. I: 99. This
is used to strengthen the appearance of the second climax from measure 103 onwards. Two preceding ideas
are combined here: the bass-line of measure 67 onwards with the stacked canon of measure 37 onwards.

3.3.4 Section B’
The embellished arpeggio of the diminished seventh chord which first appeared in Cb:[49..51], it is a se-
quence of theme0 ’s embellished tail initially used for small divertimento as discussed in section 3.3.2. In
section B’, this small device joins the passacaglia in the sense that it is continuously transported through
all voices alike theme1 , with entries in Vc:103, Cb:111, Vln. I:123, Vln II:134, Va:141, Vc:155, Cb:159.
Combined with the now two-voice passacaglia structure, are several stretti of theme0 at time distances of
3,4 and 5.

3.4 Part 3
Part 3 of Spiral is an abbreviated mirror of part 1, in the sense that all melodic material and main structural
features are mirrored chromatically. The first violins are initially divided into left- and right sections to
avoid an extremely high registry for the lower string sections. The respective abbreviations for the first
violin sections are Vln. Ir:1, Vln. Il, other string sections are abbreviated as in section 3.2. The canonic
structure of part 3 is shown in table 3.3 which has a structure similar to table 3.2 and explained further
below. Note that all theme entries in table 3.3 refer to the chromatic inversion of the equally numbered
theme. The initial four-voice canon of part 1 is mirrored with entries in Vln. Ir:1, Vln. Il: 6, Vln. 2: 11,
Va: 16. Contrary to the initial canon in part 1, the canon now moves upward, reaching the leading tone
b3 in Vln. 1r:30,36. The downward motion which continues until the end of the part commences with the
mirror of the first five-voice canon of part 1 in Vln. 1r: 39. Conceptually connected to the aforementioned
top-tone, a scale descends throughout the string orchestra starting from b♭3 . The pickup of the scale in
Cb.:64 is used to return to a tutti first violin part in bar 80, coinciding with the mirrored entry of the last
embellishment of theme4 of part 1.
Whereas part 1 cycles through the minor keys of c,a♭ and e, part 2 cycles through the major keys of
C,E and A♭. I.e. besides a conversion of Tongeschlecht2, modulations are in contrary motion. The virtual
mirror axis between pitch classes 3 and 4 is used. The relation between a pitch class pc and its mirrored
counterpart pc−1 can be expressed through pc−1 = 4 +(3 −pc) (mod 12) = 7 −pc (mod 12). Note that this
relation fixates the tonic triad I modulo Tongeschlecht, similar to the fixation of I in d-minor in the mirror
2
In German (or Dutch), the ‘gender’ of a traditional mode is either ‘major’ or ‘minor’[Sch40, p212], referring to the third of the
mode under consideration.
44 CHAPTER 3. SPIRAL

m. 1 6 11 16 21 26 31 36 41
Vln I 0 1 2 3 0 1 2 3 4
Vln Il 0 1 2 3 0 1 2 3
Vln II 0 1 2 3 0 1 2
Va 0 1 2 3 0 1
Vc 0
Cb
m. 46 51 56 61 66 71 76 81 86
Vln I 0 1 2 3 4 0 1 2
Vln Il 4 0 1 2 3 4 0 1 2
Vln II 3 4 0 1 2 3 4 0 1
Va 2 3 4 0 1 2 3 4 0
Vc 1 2 3 4 0 1 2 3 4
Cb 4 0 1 2 3

Table 3.3: canonic structure of part 3

fugues of Bach’s ‘Die Kunst der Fuge’[Bac87]. Indeed, the mirror axis used in Spiral is the chromatic
adaptation to c modulo Tongeschlecht, of the diatonic mirror axis of the third of the d-minor scale between
the mirror fugues of ‘Die Kunst der Fuge’. I conjecture that the use of a chromatic mirror axis can mirror
the affects experienced by an audience. Indications for this are summarized in table 3.4. Its first two rows
were explained above. As for the last row, note that a helicopter view of the registral expansion in part 1
shows upward motion whereas downward motion can be observed in part 3. Within the greater structure of

property part 1 part 3


main key c C
key pattern (c,a♭,e)∗ (C,E,A♭)∗
registral expansion ↱ ↳

Table 3.4: Contrasts between part 1 and 3

Spiral, the chromatic mirror between parts 1 and 3 is used for expressing opposite intentions. Part 1 affirms
the tonic of c-minor and steers upward to the climactic second halve of part 2, after which part 3 relaxes the
tension while functioning as a Picardian close to the work.
Chapter 4

Fugue in G

This chapter discusses the composition ‘Fugue in G’ for Organ, hereafter referred to as ‘the fugue’. Section
4.1 discusses the design of its theme and countersubject, section 4.2 discusses the structure of the fugue.

4.1 Thematic elements


This section discusses the design of the fugue’s main theme and countersubject in subsections 4.1.1 and
4.1.2 respectively.

4.1.1 Main theme

A requirement for the main theme was the possibility of a four voice stretto in which only chords without
doublings occur, similar to Rameau’s canon at the fifth, discussed in section 2.4 on page 2.4. The relative
chord tone approach was applied to the design of stretto in order to meet this requirement. The expanded
chord sequence chosen is shown in the top staff of figure 4.1, its time interval T I equals 3, the scale interval
SI equals 7 semitones. The numbers below the chords correspond to the time classes of the corresponding
chords. Except for the omission of relative chord tone 4 on time class 1 (mod 3), this chord sequence is
equivalent modulo transposition to the Mass’ chord sequence described in section 5.2. The omission results
in a chord sequence in which all three chords of the chord sequence have size CS = 4. This allows us
to strength the aforementioned requirement to the requirement of a stretto in which only complete chords
sound. As discussed in section 2.4.2, this boils down to finding a Hamiltonian cycle in the corresponding
dux graph D ([4, 4, 4]). Using algorithm 8 on page 15, the list [1, 3, 2, 0] was chosen as the successive
relative chord tones for each time class. Among the many possible interleavings of three rotated instances
of this list, I chose [1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0] as the relative chord tone structure for the unembellished
main-theme, themeu . The relation between [1, 3, 2, 0] and themeu is shown in table 4.1. Indeed, themeu
is the concatenation of its rows. The three columns represent the three chords in relative chord tone notation
on the three time classes 0, 1 and 2 in the stretto. Note that the chord at time class i (mod 3) equals the
chord at time class 0 (mod 3) rotated i positions downward. Figure 4.1 shows themeu on its second staff.
The numbers below this staff correspond to the relative chord tones. The embellished version of the second
staff, theme, is shown in the third staff.

45
46 CHAPTER 4. FUGUE IN G

1 2 3
0 1 2
3 0 1
2 3 0

Table 4.1: relation between themeu and [1, 0, 3, 2]

˙˙ # ˙˙ #˙
˙˙ # ˙˙˙ # ˙˙ # ˙˙ # ˙˙ # ˙˙ # ˙˙ #˙
# ˙˙˙ # # ˙˙˙
& 21 ∑ ˙˙ ˙˙ ˙ ˙˙ #˙
˙˙ ˙˙ # ˙˙ # ˙˙ # ˙˙˙ # ˙˙
0 1 2 0 1 2 0 1 2 0 1 2

& 21 ∑ ˙ ˙ ˙
˙ ˙ ˙ ˙ ˙
˙ #˙ #˙ #˙
1 2 3 0 1 2 3 0 1 2 3 0

œ # œ œ . œj
& 21 Œ œ # œ œ. œ. œ# œ œ œ ˙ Œ œ œ œ. œ. # œ. ˙ œ #˙ ˙ ∑

& 21 b ˙ j ˙ j ˙ ∑ ∑
b œ . œ b œ. œ œ œ œ b œ. n œ. œ . # œ œ.# œ œ # œ # œ œ. œ.

Figure 4.1: Design of theme and countersubject for ‘Fugue in G’

4.1.2 Countersubject

The countersubject, shown in the bottom stave of figure 4.1, was designed with the following requirements
in mind:

1. It should contrast with the main theme, both melodically and rhythmically. Although modulating,
the main theme clearly has a diatonic structure. The countersubject on the other hand features a
diminished fourth, and its first five beats are repeated one semitone higher. While the main theme’s
meter leaves room for interpretation when heard unisono, its stretti are clearly grouped in 3/2 bars as
a result of T I = 3 (e.g. see [138..170]). The countersubject’s repetitive structure on the other hand
suggests a 5/2 bar. The resulting combination of theme and counterpoint thus steers clear from the
latent classical harmony and meter of the main theme.

2. It should allow for several combinations both with (variations of) itself and the main theme. Such
combinations allow for metrical variation, as will become apparent in the sequel. Because of this,
I chose to notate the fugue in a 1/2 bar. Instead of the harmonic relative chord tone approach,
the countersubject was designed as a melody with a Sekundgang[Hin70]. This allows for different
interpretations of its notes as either embellishment or chord tone.

The first five bars of the countersubject as displayed in figure 4.1 are hereafter referred to as cs0 .
4.2. STRUCTURE 47

4.2 Structure
The fugue has a ternary form with sections A, B and A’ respectively discussed in detail in sections 4.2.1,
4.2.2 and 4.2.3. Section A introduces all of the material used in the fugue, section B represents the develop-
ment, A’ the modified reprisal of section A. Section A ends with a plagal cadence on V of G. The dominant
reappears as V7 with added blue note in 556.5, followed by a pedal point on V43 . It finally resolves to
I in 610. Subsections of A,B and A’ are all marked in the score, table 4.2 provides an overview of the
corresponding bars for easy reference.

section subsection bar


A A1 1
A2 80
A3 138
B B1 170
B2 264
B3 401
A’ A1’ 474
A2’ 496
A3’ 565

Table 4.2: (sub-)sections of ‘Fugue in G’

Before discussing each section in detail, we need some notational conventions. Again, a triple such as
⟨cs0 , b, p⟩ refers to the translation of cs0 to bar b, such that p equals the pitch class of its first note. A set
of such triples is referred to as a combination. Let the first member of a combination be a triple with the
smallest bar number, note that it need not be unique. A combination can be reduced modulo transposition
by subtracting from each member’s bar, the bar number of the first member, and from each member’s pitch
class, the pitch class of the first member modulo 12. The reduced members of a combination are given
between normal brackets, e.g. (cs0 , ∆b, ∆p).

4.2.1 section A
Section A comprises three subsections A1, A2 and A3, each discussed below.

subsection A1

The exposition of the fugue introduces the main theme in ascending fashion through B:[1..11], T:[11..23],
A:[25..35], S:[35..47]. Note that the entrances in the tenor and soprano features all of the relative chord
tones as initially designed, hence the extra length of two beats. The reasons for this are as follows. First,
the entrances in the tenor and soprano are a fourth higher than their respective preceding shorter entries.
This allowed for the shorter theme and countersubject to overlap in e.g. B:11. Second, the extra two bars
22, 23 overlap with the start of a small divertimento which allows the entry of the main theme in A:25 at
g1 . Finally, the shortened theme and countersubject have equal lengths. This provides a continuation of the
suggested 5/2 meter of the countersubject in T:[25..35), by the countersubject in A:[35..45).
The exposition’s ending overlaps with a stretto of the (altered) countersubject, part of a divertimento
leading up to the theme entry in S:57 in the dominant. The overlap provides continuity and is created both
by the sequence in which A: ⟨cs0 , 35, 8⟩ is transposed by (5, 1), and also by the sequential movement in
48 CHAPTER 4. FUGUE IN G

T:[42..49] according to the pitch pattern (+1, −2)3 . The stretto is given below. Note that the translation
from the first to the second member equals the translation from the fourth to the fifth.

{B ∶ ⟨cs1 , 44, 0⟩ , A ∶ ⟨cs0 , 45, 10⟩ , B ∶ ⟨cs1 , 48, 8⟩ , T ∶ ⟨cs0 , 49, 1⟩ , A ∶ ⟨cs0 , 50, 11⟩}

The tail of cs0 is used in a downward sequence in [54..58), relaxing the time compression resulting from
the stretto. What follows are the last occurrences of the combination of theme and countersubject as shown
in the two bottom staves of figure 4.1, until the reprisal in bar 474. The two entrances referred to are
S ∶ [57..67] and B:[70..80). The different pitch-relation between these entrances avoids the last entry
starting on g. This is achieved by the sequential treatment of the theme’s tail in S:[65..70], the last note
again overlapping with S ∶ (cs0 , 70, 1) as in the exposition. The sequential treatment is exploited in the
reprisal to create an enjambment, a point to which I return in section 4.2.2.

subsection A2

Measures [79 − 113] give the sequential treatment of inverted alternations of two contrasting combinations
through the use of double counterpoint:

• Let cp refer to the embellished chromatic scale fragment in e.g. B:[81..84], adapted from B:[52..58].
Combination {(cs1 , 0, 0) , (cs1 , 1, 10) , (cp, 2, 2)} occurs first with respective entries in T:79, S:80,
B:81 and, through sequential treatment, this occurrence is translated by (4, 10), suggesting 4/2 bars.
The entire structure reoccurs transposed, in second inversion, with first respective entries in A:94,
B:95, S:96.

• Let cst refer to the countersubject’s tail, e.g. T:[87..89]. The following combination occurs first with
respective entries in T:87, S:88, B:88:

{(cst , 0, 0) , (cst , 1, 10) , (cs1 , 1, 0)} .

Through sequential treatment, this occurrence is translated by (3, 4) such that the first and last note of
the respective second and first occurrence of cp1 in this sequential structure overlap and 3/2 bars are
suggested. The entire sequential structure reoccurs transposed, in second inversion, with respective
entries in A:102, B:103, S:103. Note how the last note of cp overlaps with the first note of cs1 in
S:103. The sequence is expanded this time to four instances of the combination in order to reach a
higher register. The fourth instance is altered in S ∶ 113 to make room for a new combination.

Measures [113..129] are a final buildup towards the climax in 130. A new combination is given, comprising
a sequential canon of the head of the main theme with T I = 1 and P I = −5, and cs. In its first instance, the
canon occurs between soprano and alto. The second inversion of this combination starts in 119. Instead of
just giving the head, the bass now gives the entire theme. Its tail is imitated by the alto through translation
(2, 3). Upon reaching the local top tone a2 , a canon at minimum with cs1 ’s head collapses the climax,
accompanied by transpositions of the main theme’s tail. Measures [129..137] are a prolongation of the
dominant seventh chord rooted at g. It should be understood as an altered IV7 in D, part of the plagal
cadence reaching I (with added sixth) in 138.
4.2. STRUCTURE 49

subsection A3

Section A3 gives the first four-voice stretto with the main theme. It is a stacked spiral canon with T I = 3
and P I = 7. Two instances of the main theme are given in each voice at interval 4.

4.2.2 section B
Section B represents the development phase of the fugue. It is divided into three subsections, each discussed
separately below.

subsection B1

Subsection B1 is based upon the alternation of two contrasting ideas, each based upon a unique contrapuntal
combination. The first being a combination of the main theme and cs1 , the second being a stretto of cs0 ,
whence it functions as a divertimento:

1. Combination {(theme, 0, 0) , (cs1 , 1, 8) , (cs1 , 2, 7) , (cs1 , 5, 7) , (cs1 , 6, 6)} occurs first with respec-
tive entries in A:170, S:171, B:172, S:175, B:176. In its second occurrence marked by T:179,
down a major second modulo 12, the soprano and tenor have exchanged voices. Note that the first
two members of this combination have the same relation as the theme has with the entire coun-
tersubject, all other pairs of this combination are new. Also new is the small overlap between
the entries of the main theme. Indeed, the stretto in subsection A3 featured the sub-combination
{(theme, 0, 0), (theme, 9, 9)} instead of {(theme, 0, 0), (theme, 9, 10)}. Measures [170..189] re-
turn transposed down a major second in [209..228], the main difference being that the second main
theme now occurs in the soprano through voice exchange. Subsection B1 was designed such that the
first and last entries of the main theme depart from pitch class 0 (mod 12).

2. The second idea is based on a stacked spiral canon in which cs0 is continuously transposed upward a
minor second as is the case with the entire countersubject. The canon’s parameters are V = 3, T I = 2,
P I = 7. It occurs first in [189..205], with a modified return in [230..264). The first occurrence’s
entries are B:189, S:191, T:193. The second occurrence initially starts as the first except for a change
of voices. The initial entries are literally stacked downwards with A:230, T:232, T:234. However,
the unique part of the dux is expanded by two new measures to A:[235..241]. The extra two bars
were designed to allow a fourth voice in an altered spiral canon, namely S:[241..247]. The new dux
is embellished differently from A: 248 onwards, similar to the rhythmical variation of cs1 presented
first in S:171.

subsection B2

Subsection B2 introduces a new idea mostly derived from the countersubject, clearly visible in T:[262..268].
The pitch pattern (−1, +4) present in the countersubject, is developed into a combination of a two voice
canon with parameters T I = 1 and P I = 7 (mod 12), accompanied by theme in later instances. Measures
[304..319] provide a clear instance of this combination with the canon between the outer voices and theme
in the alto. As the canon’s dux ascends an octave, its melody is sometimes spread over two voices. In bar
276, the soprano is handed over the dux from the alto. Likewise, the alto is handed over the comes from the
tenor exactly one beat later which allows the original canon to recommence in S:280 and A:281 transposed
50 CHAPTER 4. FUGUE IN G

by (16, 9 (mod 12)). This provides a huge upward thrust because of a canon which seemingly spirals a
upward from e1 ♭ in A:264 to b2 in S:292 which is harmonically challenging because of the interpretation
of the +4 skip of the aforementioned pitch pattern as a diminished fourth. The larger combination of the
two canons transposed by (16, 9 (mod 12)), each canon possibly accompanied by a theme, occurs twice in
[264..296] and [346..378]. The first exposition of the canon is the only one not accompanied by the main
theme theme. The simpler combination of a single canon and main theme occurs once in [304..319]. The
three aforementioned groups of bars are separated and followed by divertimenti as discussed below.
The first divertimento in this subsection, bars [296..304], is built upon a short canon with P I = 6
(mod 12) based upon the mirrored head of the aforementioned dux in the two upper voices. This canon
is a prolongation of the diminished seventh chord {0, 3, 6, 9}, which ‘resolves’ to a b-minor seventh chord
in 304. The canon is accompanied by the main theme’s head in [301..304], also an embellished downward
minor third skip.
The second divertimento in this subsection, bars [320..345], starts with a short spiral canon based on
cs0 between soprano and tenor. Note that the transposition from dux to comes equals the one used in the
canon between the outer voices starting in S:171 and B:172. The difference in comparison to the latter
combination are the use of cs0 instead of cs1 , and, the different transposition of the dux in each voice.
Indeed, the transposition from S:320 to S:325 equals (5, −2), whereas the transposition from e.g. S:171 to
S:175 equals (4, −1). The three lower voices of bars [329..344] are a copy of the same three voices of bars
[249..264].
The aforementioned canon based upon the mirrored head of the aforementioned dux returns in the third
divertimento of this subsection in 307. This time however, it is accompanied by an entire theme with an ex-
tra rest of one beat inserted between its head and tail: B:[377..388]. The tail’s first five beats are imitated a
minor seventh higher in T:[384..388] while the alto continues its sequential treatment of the inverted canon.
Measures [387..401) push upward to the local top-tone a2 in S:401. Having reached b2 already in S:320,
it is rather a failed attempt at a real climax. Its underlying structure is clearly visible in bars [393..394].
The bass imitates the soprano’s alteration of the canon’s head with T I = 1,P I = −16. Note that the combi-
nations {(S ∶ [395..397], 0, 0) , (A ∶ [395..397], 0, 6)}, {(B ∶ [397..399], 0, 0) , (T ∶ [397..399], 0, 6)} are
equivalent modulo embellishment. I.e. the structure was designed as a double spiral canon.

subsection B3

Subsection B3 first develops, then gradually returns to the material of bars [44..57]. Initially this is done
through the alternation of two combinations:

• Combination {(cs1 , 0, 0) , (cs0 , 1, 10)} from respectively B:44, A:45 is altered to


{(cs1 , 0, 0) , (cs1 , 1, 10)} in respectively A:400, S:401. Let C0 be the latter combination. Let C0e be
the combination of C0 with a copy of itself transposed by (3, 1 (mod 12)), e.g. A:400, S:401, B:403,
T:404.

• A:[412..428] is the rhythmically altered transposition of A:[45..60], fully imitated in the soprano
with T I = 1, P I = 10. Let this combination be C1 . C1 ’s dux is only partly imitated in the exposition
with T:[49..56] and A:[50..57].

Subsection B3 opens with the sequential treatment of C0e in which every last two entrances of an instance
of C0e equal the first two entrances of the next instance of C0e . This exposes the new combination clearly
4.2. STRUCTURE 51

while collapsing the registry downward. The sequential treatment is halted by an instance of C1 with entries
in A:412, S:413. This instance overlaps with the return of bars [409..426] in bar 427, transposed up a
second, accompanied by an alteration of B:[48..58] in B:[434..442]. Instead of another overlap with C0e ,
the two lower voices now continue with the sequential treatment of cs0 . The counterpoint of B:[434..440]
now receives sequential treatment with entries in A:449, S:454 and the entry of cs0 in A:459. Measures
[459..471) are a slightly modified copy of [45..57), transposed up one major second whereas A1’ marks
the reprisal of bar 57 at its original pitch. The structure was designed to create an enjambment which
destabilizes the reprisal marked by the theme entry in S:473 through the following devices:

• The pitch relation between bars [45..57) and the theme entry at S:57, differs from the relation between
[459..471) and the theme entry at S:473;

• Instead of imitating cs0 ’s tail as in A:[55..56], the alto recites an expanded version of e.g. [247..254],
creating an association with subsection B1;

• The idea of a sequential expansion moving all pitches down one major second of [472..473], is
repeated in [484..485];

• The slight deceleration in 485 and continuation a tempo at 486.

4.2.3 section A’
Section A’ represents the modified reprisal of section A. Its initial bars were already discussed in the previ-
ous subsection.

subsection A2’

Subsection A2’ seemingly starts as the reprisal of subsection A2 at its original pitch. The sequential treat-
ment of cs1 ’s head however makes the tenor comes and soprano dux. The second inversion of bars [79..87]
transposed one major second down thus results in bars [496..504]. The entry of cst in S:504 suggests the
soprano’s leadership in a canon with the tenor. Measures 505 however marks the reprisal of bar 89 at its
original inversion, one semitone lower. Measures [511..512] represent an expansion of the original se-
quence, moving the pitch an extra major third upward. As the sequence started out one minor second lower,
the result is that the reprisal continues a minor third higher all the way up to bar 548. This, in combination
with the below devices, expands the climax in the reprisal:

• The imitation of B:[542..548] now all occurs in all three upper voices with entries in A:544, T:546
and S:548 in a stacked canon with T I = 2 and P I = 3 (mod 12). This pitch interval creates an
enhanced tonal tension.

• The material from bars [129..137 now appear twice: in first inversion in the upper voices of bars
[552..556) and original inversion in the bars following it.

• The soprano reaches the absolute top-tone c3 at V7 with added blue note, followed by a pedal point
starting on V43 in G-major.
52 CHAPTER 4. FUGUE IN G

subsection A3’

Section A3’ is the downward stacked version of the stretto of section A3. After twelve entries of the main
theme, each on a different pitch class, the modified four entries finally reach the tonic through a contrapuntal
cadence in bar 610.
Chapter 5

Constraint logic programming stacked


canonic structures

5.1 Introduction
Use cases

Previous chapters introduced the theory regarding the design of stacked canons using relative chord tones
and some of its applications. Requirements to a theme or stacked canon’s dux were stated in the form of
predicates (constraints) in first order logic. The general method for obtaining a solution to such constraints
was to derive an algorithm through logical and mathematical reasoning[Dij76, Kal90], which produces
the desired solutions. In some scenarios this approach may not be the most efficient expenditure of a
composer’s time. In the preliminary stages of a composition, different configurations or rules for a theme or
dux under development may be examined. The chord sequence, time distances, constraints, or number of
voices are subject to frequent change, resulting in the repeated derivation of different algorithms. Another
scenario is the presence of many constraints. If satisfiable, the derivation of an algorithm may be tedious. If
unsatisfiable, a change in requirements is forced upon the composer as in the first scenario. In yet another
scenario, a composer may not posses the skills required to derive an algorithm for the creation of solutions.
Finally, a composer may wish to manually evaluate all solutions to a set of constraints, in order to select one
according to yet unspecified artistic requirements. The technique of constraint logic programming offers
an alternative method of generating solutions in such scenarios. All that is required of the composer is the
formulation of constraints in a constraint logic program (CLP), which requires, besides music theoretical
knowledge, some elementary predicate logic such as taught in a typical first-year computer science or
mathematics class[NK04].

Pitch class domains versus relative chord tone domains

A CLP can be solved automatically by means of a constraint solver run on a computer. An important factor
in the success of such an approach is the size of the CLP’s search space: the cross product of the constrained
variables’ domains. While modern constraint solvers may effectively prune the search space for some CLPs,
solving a CLP is generally NP-hard. Hence, in a worst case scenario, a constraint solver may need to eval-

53
54 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

uate each of the constrained variables’ possible values. Depending on the problem at hand, such searches
may be intractable even by modern computers. The problem of finding a dux for a stacked canon can be
encoded using constraints in which ∣dux∣ variables must be assigned a value by the constraint solver. The
search space size when dux is an array of relative chord tones, (∏ t ∶ 0 ≤ t < ∣dux∣ ∶ cs [t (mod ∣cs∣)] ),
is typically smaller than the search space size of a specification within the domain of pitch-classes, 12∣dux∣ .

Example 30 Consider the search space for a CLP which generates Spiral’s main theme discussed in section
3.1.1 on page 37. From cs = [3] and ∣dux∣ = 10 it follows that the search space size when using relative
chord tone domains equals 310 = 59049, whereas the search space size when using pitch-class domains
equals 1210 - more than one million times larger.

Outline

This chapter discusses a computer assisted composition process for stacked canonic structures, using my
composition ‘Missa ad Fugam’ as an example. The tradition of demonstrating canon techniques throughout
the musical setting of the Ordinarium Missae which inspired me to write the ‘Missa ad Fugam’ was estab-
lished by the Franco-Flemish schools of the Renaissance era. Ockeghem’s ‘Missa prolationum’[Par76] is
perhaps the first of all masses based completely on the principle of progressive canon through all move-
ments [SG01]. Other famous examples include compositions such as des Prez’ ‘Missa sine nomine’[JD91]
and Palestrina’s ‘Missa ad Fugam’ [dPS83]. The B-Prolog finite domain constraint solver[Zho10] used in
the aforementioned process was chosen mainly for its speed [Zho06], intuitive syntax, built-in constructs,
and its ability to generate all solutions to a constraint logic program. An outline of the process is shown in
figure 5.1 and explained further below. After choosing parameters for the desired canonic structure(s), such

run
formulate compile constraint
constraints to CLP solver

choose good yes


start result compose
parameters no
found?

Figure 5.1: Composition assisted composition process followed in composition of ‘Missa ad Fugam’

as the number of voices, chord-sizes, et cetera, constraints are initially formulated in first order logic using
relative chord tone domains, and subsequently compiled into a quantifier-free B-Prolog constraint logic
program (CLP). I performed the compilation to B-Prolog using a Mathematica[Wol03] notebook, though
other scripting languages can also be used for this purpose. After instructing the constraint solver to search
for solutions to the CLP, the solutions are evaluated by the composer. If solutions are unsatisfactory (or
no solutions are found), the process followed thus far is repeated with changed parameters or constraints.
Otherwise, a satisfactory solution is available for use in the composer’s (manual) composition process.
5.2. ESTHETIC CONSIDERATIONS 55

The application of constraint logic programming to musical CLPs is extensively surveyed by Pachet,
Roy [PR01] and Anders [And07, pp.35-64]. Its application to the construction of stacked canons is however
new. After a discussion in section 5.2 of the esthetic principals which influenced the design of the mass,
section 5.3 formulates the constraints on its thematic material. Analytical notes of the mass are given in
section 5.4.

5.2 Esthetic considerations


Besides determining the Ordinarium’s text, the Catholic church expressed its view on the esthetics and role
of sacred music in several publications. Pope Benedict XVI’s ‘The spirit of the liturgy’[Rat00, pp.136-156]
provides a current and instructive (over)view in this regard. What follows is an illustrative summary with
selective quotations.
With the invention of polyphony in the late Middle Ages and Renaissance, artistic invention in both
music and the liturgy starts to assert its rights. “Church music and secular music are now influenced by the
other. This is particularly clear in the case of so-called ‘parody Masses’, in which the text of the Mass was
set to a theme or melody that came from secular music”... “It is clear that these opportunities for artistic
creativity and the adoption of secular tunes brought danger with them”... “Music was alienating the liturgy
from its true nature”[Rat00, pp.145-146].
The Council of Trent (1545-1563) decreed that “music should be at the service of the Word; the use
of instruments was substantially reduced; and the difference between secular and sacred music was clearly
affirmed”. During the Baroque and Classical eras, signs of “the dangers to come”in the Romantic era started
to appear. The Romantic era re-introduced the “dangers that forced the council of Trent to intervene”, ex-
emplified by “self-emancipating subjectivity, virtuoso mentality” and the “vanity of technique”. In an effort
to remove the “operatic”, Pope Pius X declared Gregorian chant and Renaissance polyphony (exemplified
by Palestrina) to be the standard for liturgical music in a Motu Proprio [X03] promulgated in 1903[Rat00,
p.146].
Modernity brought new challenges to sacred music. There is the cultural universalization that the church
is facing while moving outside the Western European boundaries. Regarding this and recent developments
in music the Pope notes that “modern so-called ‘classical’ music has maneuvered itself, with some excep-
tions, into an elitist ghetto, which only specialists may enter- and they do so with what may sometimes be
mixed feelings. The music of the masses has broken loose from this and treads a very different path”....
“Pop music”... “ultimately has to be described as a cult of the banal”... “Rock”...“is the expression of ele-
mental passions, as it assumes”... “a form of worship, in fact, opposite to Christian worship.” Crowds are
“released from themselves by the experience of being part of a crowd and by the emotional shock of rhythm,
noise, and special lighting effects”[Rat00, pp.147-148] The Pope offers no music theoretical solutions to
the apparent dilemma modern composers face in creating sacred music. He notes that renewal should come
from within and offers a summation of some of the esthetic and religious principles that emerged instead:

1. The music of Christian worship is related to Logos. There must be a clear dominance of the Word.
“That is why singing in the liturgy has priority over instrumental music...”[Rat00, p.149]

2. “There is always an ultimate sobriety, a deeper rationality, resisting any decline into irrationality and
immoderation.”[Rat00, p.150]
56 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

3. ‘‘The more that human music adapts itself to the musical laws of the universe, the more beautiful it
will be.”[Rat00, p.156] The Pope refers to Pythagorean music in this regard. But what are the music
theoretical implications of this in the present day: does the pope refer to tonality? A definite an-
swer cannot be given but an indication may be derived from his characterization of modern classical
music and his closing argument. The Pope notes that our own times are governed by “‘deconstruc-
tionism’ - the anarchistic theory of art. Perhaps this will help us overcome the unbounded inflation
of subjectivity...”[Rat00, p.155] “What in museums is only a monument from the past, an occasion
for mere nostalgic admiration, is constantly made present in the liturgy in all its freshness... The
artists who take this task upon themselves need not regard themselves as the rearguard of culture.
They are wary of the empty freedom from which they have emerged. Humble submission to what
goes before us releases authentic freedom and leads us to the true summit of our vocation as human
beings.”[Rat00, p.155-156] Tonality in some form is indeed what goes before us for the greater part
of recorded musical history across most cultures1 . The days that the postmen sing Webern’s melodies
on their rounds [MM79, p.543] have yet to come even upon the western world, which suggests a
limited suitability of the associated idioms for a universalizing church.

With the above considerations in mind, I strived for an idiom with clear ties to Renaissance polyphony,
is tonal, unaccompanied, and characterized by sobriety and moderation. The Missa ad Fugam is based
entirely on three themes. The basis of the entire mass is a chord sequence of three chords with chord-sizes
cs = [4, 5, 4], two instances of which are shown in figure 5.2. The second instance (the last three bars) is the
transposition by SI = 7 semitones (mod 12) of the first instance (the first three bars). The scale interval
SI is used for all canons in the Mass. Note that for each dissonant in the chord sequence, its step-wise
downward resolution occurs in a following chord if SI = 7. Using this chord sequence, the three themes A,

ww ww ww
& C wwww www b www ww ww
w
ww
b ww w

Figure 5.2: Chord sequence of Missa ad Fugam

B and C are specified in CLPs which partly reflect my interpretation of the above esthetic principles. Each
theme allows a four-voice stacked spiral canon, each pair of themes allows a four-voice double stacked
spiral canon, and both three-and four-voice combinations featuring all themes are possible.

5.3 Constraint specifications


This section formulates all constraints which shaped the mass’ three themes A, B and C in first order
logic using relative chord tone domains. As discussed in section 5.1, constraints were compiled into a
quantifier-free B-Prolog 7.1 CLP using a Mathematica notebook, though other scripting languages could
easily be used for the same purpose. Sections 5.3.1 and 5.3.2 respectively introduce constants and auxiliary
functions used in the subsequent sections. Sections 5.3.3, 5.3.4, 5.3.5 and 5.3.6 respectively formulate
generic boolean functions to constrain similarity within or between themes, the doubling of chord tones, the
resolution of dissonances, and, the occurrence of parallel perfect intervals. Actual constraints on themes A,
1
A discussion of tonality can be found in [Scr97, pp 293-308] and a counterpoint in [Den09]
5.3. CONSTRAINT SPECIFICATIONS 57

B and C are respectively formulated in terms of the aforementioned generic boolean functions in sections
5.3.7, 5.3.8 and 5.3.9.

5.3.1 Constants

As mentioned in section 5.2, the three themes A, B and C occurring in the mass are designed to occur
in several (double-) stacked spiral canons for at most V = 4 voices. Our chord sequence discussed in
section 5.2 has chord-sizes cs = [4, 5, 4]. While superfluous in this chapter, the constant T I = ∣cs∣ which
denotes the time-interval between succesive entries of each configuration, was a useful shorthand in my
Mathematica notebook. Each one of the aforementioned spiraling structures specified in this chapter, is
referred to by a theme configuration: an array containing its themes such as [A, B, A, B], in the order in
which they enter the polyphonic structure. Each respective theme is itself an array of relative chord tones
of the same length L. Our choice for L = 12 is clarified in section 5.3.4. The theme configurations we are
concerned with in this chapter are best explained by their conceptual relative chord tone structure. Table 5.1
shows the resulting relative chord tone structures of two configurations occurring in the Gloria in terms of
its respective theme variables. The top row denotes the time classes (mod L) of the spiraling structures.
Below it are the resulting four-voice relative chord tone structures of configurations C1 = [A, B, A, B] and
C2 = [B, B, B, B], separated by a blank row. Each voice v, 0 ≤ v < ∣C∣ ≤ V , partaking in a configuration C
enters the resulting structure after v ∗ ∣cs∣ rests, to repeat the relative chord tones C[v]. Note that individual
array variables such as A[0], A[1], . . . , are compiled into the respective B-Prolog variables A00, A01,. . .
by my Mathematica notebook. Hence our left-padding with a zero, of array indices smaller than 10 in tables
such as 5.1 in this chapter. This chapter constrains only ascending stacked spiraling structures based on

0 1 2 3 4 5 6 7 8 9 10 11
B[03] B[04] B[05] B[06] B[07] B[08] B[09] B[10] B[11] B[00] B[01] B[02]
A[06] A[07] A[08] A[09] A[10] A[11] A[00] A[01] A[02] A[03] A[04] A[05]
B[09] B[10] B[11] B[00] B[01] B[02] B[03] B[04] B[05] B[06] B[07] B[08]
A[00] A[01] A[02] A[03] A[04] A[05] A[06] A[07] A[08] A[09] A[10] A[11]

B[03] B[04] B[05] B[06] B[07] B[08] B[09] B[10] B[11] B[00] B[01] B[02]
B[06] B[07] B[08] B[09] B[10] B[11] B[00] B[01] B[02] B[03] B[04] B[05]
B[09] B[10] B[11] B[00] B[01] B[02] B[03] B[04] B[05] B[06] B[07] B[08]
B[00] B[01] B[02] B[03] B[04] B[05] B[06] B[07] B[08] B[09] B[10] B[11]

Table 5.1: Conceptual relative chord tone structures of C1 (top) and C2 (bottom)

our three themes, in the sense that in a constraint, voice 0 is always considered the lowest voice partaking
in a configuration, voice 1 the one immediately above it, et cetera. Note however that this convention does
not preclude configurations from being used in descending stacked spiraling structures. Hence, within the
scope of a constraint, configuration C1 refers to the ascending double-stacked spiral canon in which the alto
imitates the bass after 2 ∗ ∣cs∣ time units, and, the soprano imitates the alto also after 3 ∗ ∣cs∣ time units, such
that the alto enters ∣cs∣ time units after the bass. After the setup phase (the first L time-units), the resulting
relative chord tone structure shown in figure 5.1 repeats at each positive multiple of L. Configuration C2
refers to the ascending stacked spiral canon with theme B as its dux.
58 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

5.3.2 Auxiliary functions

The previous definitions and conventions allow us to refer to the relative chord tone a voice v has at time t
in configuration C by the auxiliary function voice(C, v, t), defined below for v ≤ ⌊t/∣cs∣⌋ ↓ (∣C∣ − 1):

voice (C, v, t) = C [v, t − v ∗ ∣cs∣ (mod L)] .

Similarly, the auxiliary function chord(C, t) returns an array of the relative chord tones sounding simul-
taneously at time t in configuration C, 0 ≤ t, such that chord (C, t) [v] equals the relative chord tone
corresponding to voice v:

chord (C, t) = [ v ∶ 0 ≤ v ≤ ⌊t/ ∣cs∣⌋ ↓ (∣C∣ − 1) ∶ voice(C, v, t) ] .

Some constraints are more easily expressed by converting an array such as returned by our function chord
to a set, thus filtering out any duplicates occurring in an array. The function asSet(a) given below returns
the set of the array a’s entries:

asSet (a) = {a[i] ∣ 0 ≤ i < ∣a∣} .

The domains of all themes in a configuration C are constrained by the predicate bpDomains(C):

bpDomains (C) ≡ ( ⋀ v, l ∶ 0 ≤ v < ∣C∣ ∧ 0 ≤ l < L ∶ 0 ≤ C[v, l] < cs [l (mod ∣cs∣)] ) .

The above auxiliary functions are used in subsequent sections for the specification of harmonic- or voice-
leading constraints on the relative chord tone structure resulting from a configuration as boolean functions
of this configuration. These boolean functions form a little function library which is subsequently used
for the specification of constraints for particular configurations such as [A, B, A, B]: the conjunction of a
particular subset of boolean functions applied to this configuration. Using this approach we can quickly
try a different subset of constraints for a particular configuration, which is useful e.g. if the original subset
proves to be unsatisfiable.

5.3.3 Preventing similarity

When specifying multiple themes, we may wish to avoid solutions in which a pair of different themes such
as A, B, are similar, after a rotation by k ∗ ∣cs∣ of one of those themes for 0 ≤ k < ⌊L/ ∣cs∣⌋. Specifically,
the predicate bpDissimilar (T0 , T1 ) requires that no pair of length-∣cs∣ sub-arrays of the respective cyclic
arrays T0 ,T1 exist which start at time-class 0 (mod ∣cs) and have all relative chord tones in common.

bpDissimilar (T0 , T1 ) ≡
⎛ ⋀ k0 , k1 ∶ 0 ≤ k0 < L
∣cs∣
∧ 0 ≤ k1 < L
∣cs∣

.
⎝ ∶ ( ⋁ tc ∶ 0 ≤ tc < ∣cs∣ ∶ T0 [k0 ∗ ∣cs∣ + tc] ≠ T1 [k1 ∗ ∣cs∣ + tc]) ⎠

Another similarity we may wish to avoid, is an overly repetitive relative chord tone structure within a theme
itself. The predicate bpN oneRepetitive(T ) specified below, ensures that the circular array T has no sub-
5.3. CONSTRAINT SPECIFICATIONS 59

arrays of length three in which all three relative chord tones are equal.

bpN oneRepetitive (T ) ≡
( ⋀ t ∶ 0 ≤ t < L − 1 ∧ T [t] = T [t + 1] ∶ T [t + 1] ≠ T [t + 2 (mod ∣L∣)])

5.3.4 Preventing chord tone doubling


The predicate bpN oDoublings (C) defined below, enforces that no chord sounding in configuration C has
a doubling of chord tones. This not only results in rich harmonies throughout the configuration, it also
facilitates the regulation of dissonance as discussed in the next section.

bpN oDoublings (C) ≡ ( ⋀ t, c ∶ L ≤ t < 2L ∧ c = chord(C, t) ∶ ∣asSet(c)∣ = ∣c∣ )

The choices for V , cs, L and the constraint bpN oDoublings are quite intertwined. Indeed, V was set to the
minimum chord-size occurring in cs as any larger value necessarily results in relative chord tone doublings
in a V -voice relative-chord tone structure. As for our choice of L, recall from proposition 25 on page 34 that
using cs = [4, 5, 4], duces exists for a stacked spiral canon without parallel octaves or chord tone doublings
for L = ∣cs∣ ∗ lcm ([4, 4, 4]) = 12 or L = ∣cs∣ ∗ lcm ([4, 5, 4]) = 60. The choice L = 12 balances sufficient
length with recognizability as a theme.

5.3.5 Regulation of dissonance


The main principal followed regarding the occurrence of dissonances in the specification of each con-
figuration is that if a dissonant occurs at time t, then it must resolve in some voice at time t + 1. The
following sections respectively discuss the translation of this principle into constraints on the four-, three-
and two-voice sections of a configuration. The latter three of these sections occur in the setup phase of a
configuration, the first occurs only in the spiraling phase.

Quads

As mentioned in section 5.2, the scale-interval and chord sequence for the Mass were chosen such that the
stepwise downward resolution of a dissonant is contained in the chord immediately following it. Hence,
our choice of cs and bpN oDoublings ensure the resolution of all dissonances in quads, except for those
occurring at time class 0 (mod ∣cs∣) as V < cs[1] = 5. The predicate bpRequiredRCT (C, tc, rct) is used
in the sequel to require the presence of relative chord tone 0 in quads at time class 1 (mod ∣cs∣), i.e. the
resolution of relative chord tone 3 at time class 0 (mod ∣cs∣).

bpRequiredRCT (C, tc, rct) ≡ (⋀ t, c ∶ L ≤ t < 2L ∧ c = chord(C, t) ∶ rct ∈ c )

Triads

The situation concerning the resolution of dissonances in chords within the time interval [2 ∗ ∣cs∣ ..3 ∗ ∣cs∣ − 1)
is slightly more complicated, with each successive chord, a triad, being incomplete. From our chord se-
quence it follows that a dissonant occurs between two voices if their relative chord tone distance exceeds
two. The auxiliary function dispairs(t) uses this observation in returning a set of sorted arrays representing
dissonant relative-chord tone pairs at time t. With our chord sequence, its return values are {[0, 3] , [0, 4]}
60 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

for time classes 0, 2 (mod ∣cs∣), joined with {[1, 4]} at time class 1 (mod ∣cs∣). The auxiliary func-
tion resolution(t, dp) calculates the relative chord tone which must be present at time t + 1, should
the pair of dissonant relative-chord tones of the array dp sound simultaneously at time t. The shorthand
condition ? valueIf T rue ∶ valueIf F alse was borrowed from the C++ or Java programming languages.

disP airs(t) = {[i, j] ∣ 0 ≤ i ∧ i + 3 ≤ j < cs [t (mod ∣cs∣)] }


resolution(t, dp) = dp[1] − (t (mod ∣cs∣) = 0 ? 3 ∶ 2)

The auxiliary predicate dissonancesResolve(C, t) uses the above two functions in specifying that any
dissonant occurring at time t in configuration C, must resolve at time t + 1. The predicate
bpInitialDissonancesResolve(C) in turn requires this explicitly for each triad which is followed by a
triad.

dissonancesResolve(C, t) ≡
⎛ ⋀ dp ∶ dp ∈ disP airs(t) ∧ asSet(dp) ⊆ asSet (chord (C, t)) ⎞
⎝ ∶ resolution(t, dp) ∈ asSet (chord (C, t + 1)) ⎠

bpInitialDissonancesResolve(C) ≡
(⋀ t ∶ 2 ∗ ∣cs∣ ≤ t < 3 ∗ ∣cs∣ − 1 ∶ dissonancesResolve(C, t) )

Dyads

In order to obtain a tranquil beginning of a part of the Mass, we may require its initial two-voice section
at time interval [∣cs∣ ..2∗∣cs∣) to be consonant. The auxiliary predicate bpConsonant(C, t) specifies the ab-
sence of dissonance at time t in configuration C. Using bpConsonant, the predicate bpConsonantDyads(C)
enforces consonant dyads in configuration C.

bpConsonant(C, t) ≡
( ⋀ v0 , v1 , c ∶ c = chord(C, t) ∧ 0 ≤ v0 < v1 < ∣c∣ ∶ ∣c[v1 ] − c[v0 ]∣ ≤ 2 )

bpConsonantDyads(C) ≡ ( ⋀ t ∶ ∣cs∣ ≤ t < 2 ∗ ∣cs∣ ∶ bpConsonant(C, t, f alse) )

5.3.6 Regulation of parallel perfect intervals

While I consider parallel pitch-intervals of the class 7 (mod 12) acceptable in sufficiently dissonant con-
texts, their occurrence in consonant surroundings may diminish the independence of voices. The predicate
noP arallel(C, t, int) expresses that no two voices may move in parallel relative chord tone interval int
from time t to t + 1 in configuration C. Using the fact that these pitch-intervals correspond to a relative
chord tone distance of two in our chord sequence, bpN oInitialP arallelF if ths(C) expresses that these
5.3. CONSTRAINT SPECIFICATIONS 61

pitch intervals must not occur between dyads or triads.

noP arallel(C, t, int) ≡


⎛ ⋀ v0 , v1 , ct , ct+1 ∶ ct = chord(C, t) ∧ 0 ≤ v0 < v1 < ∣ct ∣ ⎞
⎜ ⎟
⎜ ∧ ct+1 = chord(C, t + 1) ⎟
⎜ ⎟
⎝ ∶ ct [v1 ] − ct [v0 ] ≠ int ∨ ct+1 [v1 ] − ct+1 [v0 ] ≠ int ⎠

bpN oInitialP arallelF if ths(C) ≡ (⋀ t ∶ ∣cs∣ ≤ t < 2 ∗ ∣cs∣ − 1 ∶ noP arallel(C, t, 2) )

As far as parallel pitch-intervals of the class 0 (mod 12) are concerned, note that these are already excluded
by bpN oDoublings(C).
62 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

5.3.7 Theme A
This section discusses the specification of a CLP constraining theme A and its solutions.

CLP specification

The CLP for theme A is specified for configuration C0 = [A, A, A, A]: a four-voice stacked spiral canon
with theme A as its dux. The conceptual relative chord tone structure of configuration C0 is shown in table
5.2. The numbers above the horizontal line are the time classes (mod L). The constraint on this configu-

0 1 2 3 4 5 6 7 8 9 10 11
A[03] A[04] A[05] A[06] A[07] A[08] A[09] A[10] A[11] A[00] A[01] A[02]
A[06] A[07] A[08] A[09] A[10] A[11] A[00] A[01] A[02] A[03] A[04] A[05]
A[09] A[10] A[11] A[00] A[01] A[02] A[03] A[04] A[05] A[06] A[07] A[08]
A[00] A[01] A[02] A[03] A[04] A[05] A[06] A[07] A[08] A[09] A[10] A[11]

Table 5.2: Conceptual relative chord tone structure of configuration C0 = [A, A, A, A]

ration, themeA, is given below. My notebook compiles themeA into the B-Prolog CLP themeA.pl, the
full source code of which is given in appendix A.1.

themeA ≡ bpDomains (C0 ) ∧ bpN oDoublings (C0 )


∧ bpN oneRepetitive (A) ∧ bpRequiredRCT (C0 , 1, 0)
∧ bpConsonantDyads (C0 ) ∧ bpInitialDissonancesResolve (C0 )
∧ bpN oInitialP arallelF if ths (C0 )

Solutions

Entering cl(‘themeA‘) into the B-Prolog interpreter, writes all 9357 solutions to the file themeA.txt
within one second on a 2GHz dual core laptop with 1GB of RAM.
Out of all solutions, [3, 4, 3, 2, 3, 2, 1, 0, 1, 0, 2, 0] was chosen as follows. The solutions were first im-
ported into a Mathematica notebook in which I also defined functions for filtering out solutions which con-
tained repetitions of relative chord tones, or did not contain relative chord tone 4 at time-class 1 (mod 3).
A final selection was based on my manual and subjective assessment of the melodic quality of the theme,
and the parallel thirds provided by the sequence [3, 4, 3, 2, 3, 2] which absorb parallel dissonances. The
remaining solutions were discarded.
An embellished version of theme A is shown in the top stave of figure 5.3. The numbers below it
correspond to the relative chord tones used, the letter ‘e’ stands for embellishment. The last ‘3’ in measure
13 corresponds to the first note of the transposed repetition of theme A: the theme repeats with a syncopized
first note. The bottom stave corresponds to the chord sequence introduced in section 5.1. The relative chord
tone structure resulting from configuration C0 and our choice of theme A, is shown in table 5.3.
5.3. CONSTRAINT SPECIFICATIONS 63

w ˙ w ˙ ˙ #˙ ˙
&C w ˙ #˙ Ó
3 4 e 3 2 3 e 2 e 1

?C www www b wwww www www ww ww


ww
w b ww w ww ww

,
w ˙ #œ œ ˙
& ˙. ˙. #œ
8

œ w Ó
0 e 1 0 e 2 e 0 e 3
w w
? wwww # www # www # www w
# www
8

w ww ∑

Figure 5.3: An embellished form of theme A

0 1 2 3 4 5 6 7 8 9 10 11
2 3 2 1 0 1 0 2 0 3 4 3
1 0 1 0 2 0 3 4 3 2 3 2
0 2 0 3 4 3 2 3 2 1 0 1
3 4 3 2 3 2 1 0 1 0 2 0

Table 5.3: Relative chord tone structure of configuration C0 = [A, A, A, A]

5.3.8 Theme B
This section discusses the specification of a CLP constraining theme B and its solutions.

CLP specification

The CLP for theme B is specified for configurations C1 = [A, B, A, B] and C2 = [B, B, B, B]. Both
configurations and their respective relative chord tone structures were discussed in section 5.3.1 on page
57. The constraint on these configurations, themeB, is given below. My notebook compiles themeB into
the B-Prolog CLP themeB.pl, the full source code of which is given in appendix A.2.

themeB ≡ bpDomains (C1 ) ∧ bpDissimilar (A, B)


∧ bpN oneRepetitive (B) ∧ bpN oDoublings (C1 )
∧ bpN oDoublings (C2 ) ∧ bpRequiredRCT (C1 , 1, 0)
∧ bpRequiredRCT (C2 , 1, 0) ∧ bpConsonantDyads (C1 )
∧ bpInitialDissonancesResolve (C1 ) ∧ bpN oInitialP arallelF if ths (C1 )

Solutions

Entering cl(‘themeB‘) into the B-Prolog interpreter, writes all 25 solutions to the file themeB.txt
within one second on a 2GHz dual core laptop with 1GB of RAM.The following solution was chosen for
theme B: [3, 1, 1, 0, 2, 2, 1, 0, 3, 2, 3, 0]. Factors in its choice were:
64 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

• its distance to theme A. We define the distance between two themes T0 ,T1 , distance (T0 , T1 ) as:

(↓ r ∶ 0 ≤ r < ∶ [∑ ∶ i ∶ 0 ≤ i < L ∶ T0 [i] = T1 [(i + r ∗ ∣cs∣) mod L] ? 0 ∶ 1])


L
∣cs∣

The greater the distance of two themes, the more dissimilar they are. The maximum distance between
theme A and any of the solutions found was 6, among 12 solutions.

• the absence of relative chord tone 4 at time-class 1 (mod 3). This further increases the dissimilarity
with theme A and leaves only 2 solutions.

An embellished version of theme B is shown in the top stave of figure 5.4. The numbers below it again
correspond to the relative chord tones used, the letter ‘e’ stands for embellishment. The bottom stave again
corresponds to the chord sequence introduced in section 5.1. The resulting relative chord tone structures of

˙ œ œ ˙. œ œ ˙.
&C w ˙
1

œ ˙. œ œ
3 1 e e 1 0 e 2 e e 2
1 w
? C www
www b wwww www www ww
b ww w ww ww

7
˙ ˙. œ ˙ #˙ œ œ ˙ ˙ #˙
& ˙. Œ Ó
1 4 3 e e 2 3 e e e 0
w www ww
? www ww # ww # wwww # www ww
# ww
7

ww

Figure 5.4: An embellished form of theme B

configurations C1 (top) and C2 (bottom) are shown in table 5.4. The numbers above the horizontal line again
indicate the time classes [0..12) of the potentially infinite structure.

0 1 2 3 4 5 6 7 8 9 10 11
0 2 2 1 0 3 2 3 0 3 1 1
1 0 1 0 2 0 3 4 3 2 3 2
2 3 0 3 1 1 0 2 2 1 0 3
3 4 3 2 3 2 1 0 1 0 2 0

0 2 2 1 0 3 2 3 0 3 1 1
1 0 3 2 3 0 3 1 1 0 2 2
2 3 0 3 1 1 0 2 2 1 0 3
3 1 1 0 2 2 1 0 3 2 3 0

Table 5.4: Relative chord tone structures of C1 (top) and C2 (bottom)


5.3. CONSTRAINT SPECIFICATIONS 65

5.3.9 Theme C
This section discusses the specification of a CLP constraining theme C and its solutions.

CLP specification

The CLP for theme C is specified for configurations C3 = [C, A, C, A], C4 = [C, B, C, B], C5 = [C, C, C, C]
and C6 = [C, A, B]. The conceptual relative chord tone structures of these configurations are shown in table
5.5. The numbers above the horizontal line again indicate the time classes [0..12) of the potentially infinite
structures. Below the horizontal line are the four structures in the order introduced above, separated by
empty rows. Our constraint on all of these configurations, themeC, is given below. My notebook compiles

0 1 2 3 4 5 6 7 8 9 10 11
A[03] A[04] A[05] A[06] A[07] A[08] A[09] A[10] A[11] A[00] A[01] A[02]
C[06] C[07] C[08] C[09] C[10] C[11] C[00] C[01] C[02] C[03] C[04] C[05]
A[09] A[10] A[11] A[00] A[01] A[02] A[03] A[04] A[05] A[06] A[07] A[08]
C[00] C[01] C[02] C[03] C[04] C[05] C[06] C[07] C[08] C[09] C[10] C[11]

B[03] B[04] B[05] B[06] B[07] B[08] B[09] B[10] B[11] B[00] B[01] B[02]
C[06] C[07] C[08] C[09] C[10] C[11] C[00] C[01] C[02] C[03] C[04] C[05]
B[09] B[10] B[11] B[00] B[01] B[02] B[03] B[04] B[05] B[06] B[07] B[08]
C[00] C[01] C[02] C[03] C[04] C[05] C[06] C[07] C[08] C[09] C[10] C[11]

C[03] C[04] C[05] C[06] C[07] C[08] C[09] C[10] C[11] C[00] C[01] C[02]
C[06] C[07] C[08] C[09] C[10] C[11] C[00] C[01] C[02] C[03] C[04] C[05]
C[09] C[10] C[11] C[00] C[01] C[02] C[03] C[04] C[05] C[06] C[07] C[08]
C[00] C[01] C[02] C[03] C[04] C[05] C[06] C[07] C[08] C[09] C[10] C[11]

B[06] B[07] B[08] B[09] B[10] B[11] B[00] B[01] B[02] B[03] B[04] B[05]
A[09] A[10] A[11] A[00] A[01] A[02] A[03] A[04] A[05] A[06] A[07] A[08]
C[00] C[01] C[02] C[03] C[04] C[05] C[06] C[07] C[08] C[09] C[10] C[11]

Table 5.5: Conceptual relative chord tone structures of C3 (top), C4 (2nd ), C5 (3rd) and C6 (bottom)

themeC into the B-Prolog CLP themeC.pl, the full source code of which is given in appendix A.3.

themeC ≡ bpDomains (C6 ) ∧ bpDissimilar (A, C)


∧ bpN oneRepetitive (C) ∧ bpN oDoublings (C3 )
∧ bpN oDoublings (C4 ) ∧ bpN oDoublings (C5 )
∧ bpRequiredRCT (C3 , 1, 0) ∧ bpRequiredRCT (C4 , 1, 0)
∧ bpRequiredRCT (C5 , 1, 0) ∧ bpN oP arallelOctaves (C6 )

The strengthening of themeC with bpN oDoublings (C6 ) resulted in an unsatisfiable CLP. Hence the sep-
arate conjunct bpN oP arallelOctaves (C6 ) defined below.

bpN oP arallelOctaves(C) ≡ (⋀ t ∶ ∣cs∣ ≤ t < 2 ∗ ∣cs∣ − 1 ∶ noP arallel(C, t, 0) )

Solutions

The constraint program themeC.pl given in Appendix A.3 has 84 solutions. An adaptation of solution
[3, 4, 1, 0, 2, 0, 1, 0, 3, 2, 3, 2] was chosen for theme C. The main reason for this choice are the first seven
66 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

measures which are referred to as theme C1 in the sequel. They allow for an embellishment which results in
a repetition of measures [0, 1] in measures [6, 7] which creates a theme which is more static and stable than
themes A and B and hence a contrast. An embellished version of theme C as used in the Credo is shown
in the top stave of figure 5.5. The numbers below it again correspond to the relative chord tones used, the
letter ‘e’ stands for embellishment.

&C w ˙ w ˙
1

bœ œ ˙ ˙ ˙ n˙ œ œ
3 4 e e 1 0 e 2 e 0 e

?C ww
ww
ww
w b www ww ww www
w
1

b ww ww ww
w w

˙ ˙ ˙.
7

& ˙. Œ œ œ œ #˙ w ∑
1 0 e 3 3 e 2 1
w ww w
? www ww # www # www # wwww w
# www
7

w w w
Figure 5.5: An embellished form of theme C

5.4 Analytical notes


This section provides analytical notes for the individual movements of my ‘Missa ad Fugam’. In reference
to Renaissance music, the score contains no dynamics: these should be moderate and in line with the mood
of the text. Also, the mass was written with four soloists in mind with correspondingly large registries.

5.4.1 Kyrie
This section provides a short description of the Kyrie’s structure. It is a simple stacked spiral canon based
on configuration C0 = [A, A, A, A] discussed in section 5.3.7. The respective abbreviations of Bass, Tenor,
Alto and Soprano used throughout this chapter are B,T,A and S. Starting in bar B:1, an embellished form
of theme A is repeated three times in each voice. The text set to each respective repetition is Kyrie eleison,
Christe eleison, Kyrie eleison. The coda which starts in B:37, gives one extra Kyrie eleison in each voice
and ends in a cadence on a picardian tonic with sixte ajoutée.

5.4.2 Gloria
This section gives a short description of the actual score of the Gloria which is based on the configurations
C1 = [A, B, A, B] and C2 = [B, B, B, B] discussed in section 5.3.8. The conceptual structure of the Gloria
is shown in table 5.6. This table contains four sub-tables with headers in the first column. The letters ‘M’
and ‘R’ stand for the measure number and pitchclass of root the chord at the first beat of a measure. The
letters ‘S’,‘A’,‘T’,‘B’ abbreviate the four voices in their usual way. The four center-rows of each sub-table
5.4. ANALYTICAL NOTES
M 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46
S B B B B
A A A A A
T B B B B
B A A A A
R 2 9 4 11 6 1 8 3 10 5 0 7 2 9 4 11
M 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
S B B B B
A A B B
T B B B
B B B B
R 6 1 8 3 10 5 0 7 2 9 4 11 6 1 8 3
M 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142
S A A A A
A B B B
T B A A A
B B B B B
R 10 5 0 7 2 9 4 11 6 1 8 3 10 5 0 7
M 145 148 151 154 157 160 163 166 169 172 175 178 181 184 187 190
S A A A A
A B B B B
T A A A A
B B B B B
R 2 9 4 11 6 1 8 3 10 5 0 7 2 9 4

Table 5.6: Conceptual structure of the Gloria

67
68 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

give the theme entrances in the different voices. The ‘A’ in the second column (M=1) in the Bass row of the
first sub-table for example denotes an entry of theme A in a d-minor seventh chord (R=2).

5.4.3 Credo

This section gives a short description of the actual score of the Credo which is based on the configurations
C3 = [C, A, C, A], C4 = [C, B, C, B], and C5 = [C, C, C, C] discussed in section 5.3.9. The conceptual
structure of the Credo is shown in table 5.7. This table is similar to table 5.6. After the dense polyphony
of the Gloria, the Credo opens with a unisono section in which theme C is exposed. Starting in B:49, the
plot thickens slightly with two short canons of the form [C, C] with respective entrances in B:49,T:52 and
S:58,A:61. The subconfigurations [C, A] and [A, C] of C3 that follow re-introduce theme A and give a
glimpse of things to come in measures [112..160). Instead of developing this idea further the music re-
turns to the familiar context of theme C with configuration [C, C, C, C] in B:85. Instead of spiraling this
configuration, the tension is relaxed by a canon of the form [C1 , C1 , C1 , C1 ], where C1 is the head of C as
discussed in section 5.3.9.

Starting in B:112, the full double stacked spiral canon [C, A, C, A] is given four times. Again the
tension slightly relaxes by the use of C1 in B:160, A:166 and S:169. Starting in B:172 full dual stacked
spiral canon [C, B, C, B] is given twice, thus creating a climax in harmonic tension. The relaxing re-
introduction of C1 in B:196 now finally develops into the full stacked spiral canon [C, C, C, C] from T:205
onwards. The coda returns to C1 , starting in T:241, and ends in a three-voice cadence.

5.4.4 Sanctus

The Sanctus is the first part of the Mass in which all three themes A, B and C are combined. The occurrence
of all three themes signifies the religious importance of this part in the Mass. The themes are combined in
the following two ways:

1. The sequence C, A, B where themes C, A and B respectively enter with the same time distance
T I = 3 and SI = 7 semitones;

2. The sequence/canon C, A, B, A where themes C, A, BA respectively enter with the same time dis-
tance T I = 3 and SI = 7 semitones;

The above combinations are respectively referred to as 1,2 in the sequel. The conceptual structure of the
Sanctus is outlined in table 5.8. Let, within the current context, a list of the form ⟨C, A, B⟩ denote that
theme A enters above theme C and theme B enters above theme A, i.e. the entries are sorted according
to the absolute pitch of the first note of a theme. The possible absolute-pitch permutations of combination
1 are {⟨C, A, B⟩ , ⟨C, B, A⟩ , ⟨A, C, B⟩ , ⟨A, B, C⟩ , ⟨B, C, A⟩ , ⟨B, A, C⟩}. Measures [1..67] give all of
these permutations in the given order. This creates diversity and the impression of a triple fugal structure.
In S:70, the entry of theme A extends combination 1 into 2, with an extra entry of theme A. In B:109 this
combination changes voices, which coincides with the commencement of the Benedictus.
5.4. ANALYTICAL NOTES
M 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
S C
A C
T C
B C C
R 2 9 4 11 6 1 8 3 10 5 0 7 2 9 4 11 6
M 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100
S C A C
A C C C
T C A C
B C C C1
R 1 8 3 10 5 0 7 2 9 4 11 6 1 8 3 10 5
M 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 151
S C1 A A A
A C1 C C C C
T C1 A A A A
B C C C C
R 0 7 2 9 4 11 6 1 8 3 10 5 0 7 2 9 4
M 154 157 160 163 166 169 172 175 178 181 184 187 190 193 196 199 202
S A C1 B B
A C1 C C C1
T B B
B C1 C C C1
R 11 6 1 8 3 10 5 0 7 2 9 4 11 6 1 8 3
M 205 208 211 214 217 220 223 226 229 232 235 238 241 244 247 250 253
S C C C C1
A C C C C11
T C C C C1 C12
B C C C C1
R 10 5 0 7 2 9 4 11 6 1 8 3 10 5 0 7 2

Table 5.7: Conceptual structure of the Credo

69
70 CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES

M 1 4 7 10 13 16 19 22 25 28 31 34 37
S A B
A B B C
T A C
B C C A
R 2 9 4 11 6 1 8 3 10 5 0 7 2
M 40 43 46 49 52 55 58 61 64 67 70 73 76
S A A
A C C C
T B A A
B A B B
R 9 4 11 6 1 8 3 10 5 0 7 2 9
M 79 82 85 88 91 94 97 100 103 106 109 112 115
S A A
A C C B
T A A A
B B B C
R 4 11 6 1 8 3 10 5 0 7 2 9 4
M 118 121 124 127 130 133 136 139 142 145 148 151 154
S A A A A
A B B B
T A A A
B C C C
R 11 6 1 8 3 10 5 0 7 2 9 4 11

Table 5.8: Conceptual structure of the Sanctus

5.4.5 Agnus Dei


The Agnus Dei is based on the mirrored versions of themes A,B,C, referred to as theme A−1 , theme
B −1 and theme C −1 in this section. Each theme is mirrored chromatically, i.e. respecting the exact dis-
tance in semitones between consecutive pitches of the corresponding original. As a result, the mirrored
equivalent of some relative chord tone rct at index t of a theme, mirrored(t, rct), corresponds to rel-
ative chord tone cs [t (mod ∣cs∣)] − 1 − rct in the chromatically mirrored chords-sequence, defined for
0 ≤ rct < cs [t (mod ∣cs∣)]. Two transpositions of the mirrored chord sequence are given in figure 5.6.
Note that the scale interval equals 5, the inverse (mod 12) of the original scale interval of 7 semitones
defined in section 5.2. Also note that the original chord sequence was chosen such, that each dissonant in

ww
& C wwww
www
ww b www b wwww b www b www
w
w

Figure 5.6: Two repetitions of the mirrored chord sequence

its mirror eventually resolves in some voice, if all chords are complete. Indeed, relative chord tone 3 at time
class 0 or 1 eventually ‘resolves’ to relative chord tone 3 at time class 2, relative chord tone 4 at time class
1 eventually resolves to relative chord tone 2 at time class 0, and, relative chord tone 3 at time class 2 even-
tually resolves to relative chord tone 1 at time class 2. Hence, for each configuration C0 , ⋯, C6 constrained
5.4. ANALYTICAL NOTES 71

in sections 5.3.7 through 5.3.9, we have that the absence of chord tone doublings, and, the regulation of
parallel perfect intervals or dissonance in the spiraling phase, are all transferred to its mirrored counterpart.

The conceptual structure of the Agnus Dei is shown in table 5.9. The mirrored configurations are intro-
duced in the order of their respective originals in the Mass. Indeed, the Agnus Dei opens with configuration
[A−1 , A−1 , A−1 , A−1 ], the mirror of C0 used in the Kyrie. From measure 37 onwards, [A−1 , B −1 , A−1 , B −1 ]
is introduced, followed by [B −1 , B −1 , B −1 , B −1 ]. Their respective originals C1 , C2 were introduced in the
Gloria, in the same order. Starting in measure 193, configurations [C −1 , C −1 , C −1 , C −1 ] and [B −1 , C −1 , B −1 , C −1 ]
are respectively derived from C5 and C4 , both of which were introduced in the Credo. From measure 220
onwards, mirrored configurations from the Sanctus are used.
72
CHAPTER 5. CONSTRAINT LOGIC PROGRAMMING STACKED CANONIC STRUCTURES
M 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
S A−1 A−1 A−1 A−1 A−1
A A−1 A−1 A−1 B −1
−1 −1
T A A A−1
−1 −1
B A A B −1
R 2 7 0 5 10 3 8 1 6 11 4 9 2 7 0 5 10
M 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100
S A−1 A−1 A−1
A B −1 B −1 B −1 B −1 B −1
−1 −1 −1 −1
T A A A A
B B −1 B −1 B −1 B −1
R 3 8 1 6 11 4 9 2 7 0 5 10 3 8 1 6 11
M 103 106 109 112 115 118 121 124 127 193 196 199 202 205 208 211 214
S B −1 B −1 B −1 C −1 B −1
A B −1 B −1 C −1 C −1
−1 −1 −1
T B B C B −1
−1 −1 −1
B B B C C −1
R 4 9 2 7 0 5 10 3 8 1 6 11 4 9 2 7 0
M 217 220 223 226 229 232 235 238 241 244 247 250 253 256 259 262 265
S B −1 B −1 A−1 A−1
A C −1 C −1 C −1 C −1
−1 −1 −1
T A A A A−1
−1 −1
B B B B −1
R 5 10 3 8 1 6 11 4 9 2 7 0 5 10 3 8 1
M 268 271 274 277 280 283 286 289 292 295 298 301 304 307 310 313 316
S C −1 C −1 C −1
A C −1 A−1 A−1 A−1 A−1
−1 −1 −1
T C B B B −1
−1 −1 −1
B A A A A−1
R 6 11 4 9 2 7 0 5 10 3 8 1 6 11 4 9 2

Table 5.9: Conceptual structure of the Agnus Dei


Chapter 6

Summary, conclusion and outlook

This chapter summarizes the preceding chapter in section 6.1. A conclusion is provided in section 6.2, after
which section 6.3 provides an outlook on future research.

6.1 Summary
Chapter 1 discussed the development of canon- and fugue-techniques and their connection in stretto-fugues
such as found in Bach’s ‘Kunst der Fugue’. Examples 3 through 5 showed that larger polyphonic structures
are sustainable by a main theme which can appear in many different canons, called stretti. Hence, techniques
to effectively design such themes require the availability of efficient techniques for the creation of several
types of canons. In search of such techniques, chapter 2 provides a theoretical basis for the remainder of
the thesis. An analysis of the established counterpointing and intervallic approaches to the construction
of stacked canons showed that these provide limited harmonic control and are computationally complex.
While efficient and in complete control of harmony, Morris’ Tonnetz approach targets serial stacked canons
ad minimum and does not consider voice-leading constraints. A style-independent, constructive approach
using relative chord tones, chord sequences and chord sequence modulations was presented along with its
connections to graph-theory in address of these issues. My analysis of Rameau’s Canon at the Fifth from
his Traité de l’harmonie in section 2.4 introduced the concept of relative chord tones, which identify a pitch
class of a chord by its relative position within this chord, with a natural numbers. Two constraints discussed
in the Traité were integrated in the newly proposed relative chord tone model: first, the requirement of
complete chords in a stacked canon, and second, the proper preparation and resolution of sevenths. The
analysis explained Rameau’s choice of dux and chord sequence in terms of the conjunction of these con-
straints. Using my definition of restless dux graphs on page 17, the problem of obtaining complete chords
is reduced to the Hamiltonian cycle problem in a dux graph. The problem is solved in the strictly linear
algorithm 8. The problem of finding a dux according to the conjunction of the aforementioned constraints
is reduced to the definition of a generating function in section 2.4.2. Again, the construction of a dux using
such a function is a linear exercise.

A general approach to the incorporation of voice leading constraints is sketched in section 2.5, by the
detailed discussion of prohibitions of first parallel octaves, and second, parallel fifths. After formulating the
least upper bound on the maximum number of voices in a stacked canon without parallel octaves in terms

73
74 CHAPTER 6. SUMMARY, CONCLUSION AND OUTLOOK

of the chord sequence’s chord sizes in inequality 2.2, the problem of finding a dux for such a stacked canon
with a maximum number of voices is reduced to the Eulerian cycle problem in a restless dux graph in the
proof preceding proposition 15. Proposition 19 proves that the conjunction of either constraint reduces the
aforementioned least upper bound only by a single voice. My definition of dux graphs with rests allows
the definition of two near linear dux generation algorithms which respectively satisfy the first (algorithm
17) and either constraint (algorithm 18). The problem of constraining the inversion of chords was sketched
in terms of the incorporation of a constraint which prohibits six-four chords in section 2.6. This section
also briefly discussed the constrained use of six-four chords as in e.g. the cadential six-four chord, which
may enable interested readership to further work out thorough bass considerations in the relative chord tone
model.

Two methods for avoiding repetitiveness, a possible danger inherent to basing a stacked canon on a
predetermined chord sequence, are discussed in section 2.7. First, the basic idea of the chord sequence
modulation discussed in section 2.7.1 is to reinterpret the relative chord tones of an incomplete chord in a
stacked canon, as relative chord tones of another chord, while fixing the pitches of the incomplete chord.
While proposition 23 proves that this approach neither introduces nor removes parallel octaves if certain
conditions are met, the same cannot be said for parallel fifths. The second method for providing variety,
exploits the choice of a chord sequence with chord sizes greater than the number of voices. This method
has the advantage that the underlying chord sequence remains completely predetermined, only the subsets
of chord tones in various sections of the resulting stacked canon change at the composer’s discretion. The
latter method is discussed in section 2.7.2. Algorithm 26 provides a linear method for the creation of a
‘short’ dux based on such chord sequences, which by proposition 25 can in fact be quite long if the subsets
of relative chord tones chosen have cardinalities which are relatively prime. By concatenating several of
such ‘short’ duces, all based on different subsets of the relative chord tones of the same chord sequence, a
long dux results which results in variety in both melody and harmony.

The compositions written in demonstration of the main theoretical part of my thesis are discussed in
chapters 3 through 5. The common factor in these compositions is the predominant use of stretti based on
the respective composition’s themes, to the extent that is has become an organizing principle. Chapter 3
discusses my composition Spiral which is based on several themes, the main two of which were derived as
relative chord tone sequences using results from chapter 2. The chapter also discusses several techniques
related to the organization of polythematic stacked canonic structures in larger scale composition. The first
movement was designed in terms of several harmoniolas, in which neither of the aforementioned themes
yet appear in a stretto, although the movement is concluded by a stretto related to the preceding harmo-
niola. The second movement is designed as a passacaglia structure based on the aforementioned second
theme, onto which many distinct combinations of various themes are superimposed, without violating the
constraints I chose. The final movement is a liberal chromatic mirror of the first movement, testing my
conjecture that the use of a chromatic mirror axis can mirror the affects experienced by an audience.

Chapter 4 discusses my Fugue in G, the first theme of which was derived as a Hamiltonian cycle in the
underlying dux graph. As a result, it allows four-voice stretti without chord tone doublings or parallel oc-
taves in which dissonance is strictly regulated thanks to the chosen chord sequence. The contrasting second
theme was constructed as a counterpoint with many Sekundgangen, which allows for different interpreta-
6.2. CONCLUSION 75

tions of its notes as either embellishment or chord tone. Hence this theme too allows several distinct stretti.
As a result, the fugue contains many stretti of its two themes. Hence the chapter provides further discussion
on the organization of polythematic canonic structures in larger scale composition.

Chapter 2 presented a methodology for the design of stacked canons using relative chord tones and
some of its applications. Requirements to a theme or stacked canons dux were stated in the form of predi-
cates (constraints) in first order logic. The general method for obtaining a solution to such constraints was
to derive an algorithm through logical and mathematical reasoning, which algorithm produces the desired
solutions. In some scenarios this approach may not be the most efficient expenditure of a composers time.
In the preliminary stages of a composition, different configurations or rules for a theme or dux under de-
velopment may be examined, resulting in the repeated derivation of different algorithms. Another scenario
is the presence of many constraints. If satisfiable, the derivation of an algorithm may be tedious. If un-
satisfiable, a change in requirements is forced upon the composer as in the first scenario. In yet another
scenario, a composer may not posses the skills required to derive an algorithm for the creation of solutions.
Finally, a composer may wish to manually evaluate all solutions to a set of constraints, in order to select
one according to yet unspecified artistic requirements. Chapter 5 proposes a method which uses constraint
logic programs (CLPs) to efficiently search for the thematic material of polythematic stacked canonic struc-
tures in relative chord tone domains. Constraints which describe polythematic stacked canonic structures
are stated in first-order logic, compiled into a CLP, and solved by a computer. It was established that for
typical chord-sizes, the use of relative chord tone domains results in an exponential reduction of the search
space size in comparison to the use of pitch class domains. In practice this can be the difference between
a tractable and intractable CLP, even by fast computers. The composition process for my Missa ad Fugam
is discussed in demonstration of this technique. The Mass exhausts the capabilities of three themes, all of
which are based on a chord sequence which is similar to the chord sequence chosen for the aforementioned
Fugue in G. Each one of the Mass’ themes allows a four-voice stacked spiral canon, each pair allows a
four-voice double stacked spiral canon, and both three-and four-voice combinations featuring all themes
are possible.

6.2 Conclusion

Table 2.9 on page 36 summarizes the conclusion of my thesis, in the sense that the techniques for generating
stacked canons summarized in section 6.1 are efficient by objective mathematical standards provided by
complexity theory, yet highly productive. Indeed, proposition 28 shows that the number of sub-canons of
a stacked canon, 2V −1 − 1, is exponential in the stacked canon’s number of voices V . Yet the construction
of the encompassing stacked canon can be accomplished in (near) linear time and space with the provided
algorithms (depending on the constraints imposed by the composer). In combining propositions 15 and 28,
table 2.9 shows double exponential growth of the number of distinct stretti without parallel octaves a theme
designed as a stacked canon allows in terms of the chord sizes of the underlying chord sequence. In fact,
this number is so large for chord sizes of e.g. four or five (which are quite common in contemporary music),
that it is hard to imagine a composition which exhausts them all.
76 CHAPTER 6. SUMMARY, CONCLUSION AND OUTLOOK

6.3 Outlook
This thesis represents a first step in the definition of efficient methods for the design of canons, in the sense
that stacked (spiral) canons - and thereby also rounds - where researched in some depth, along with meth-
ods for their organization in larger structures. This however leaves many other types of canons such as non
stacked-, mensuration-, proportion-, inversion-, and retrograde canons as relatively open problems, though
Melson already provides some insights into mensuration- and proportion canons[Mel].

As for the model and methods proposed in this thesis, further work could be done first on extensions
of the proposed model of relative chord tones, second on treatment within this model of other problems
in music theory, and third, on a more balanced integration with other compositions techniques in future
compositions:

1. The proposed model of relative chord tones does not formally define embellishments, which makes
some stacked canons difficult to explain in the present model. Indeed, a dux can be defined such
that a melody tone can be understood as a local ornamentation in some chords (e.g. a suspension or
passing tone), while it is a chord tone in others. While extensions of this kind add generality and
more expressive power to the model, they also increase its complexity. This added complexity may
however be necessary for the analysis of (some) existing compositions.

2. Subjects such as functional harmony (or thorough bass practice) and counterpoint as commonly
taught at conservatories could benefit from the definition of rules in terms of relative chord tones.
The skeleton of a harmony exercise in relative chord tone notation for example quite clearly reveals
the violation of many types of constraints, so often hidden from students’ view of a graphical score.
I also expect this to allow for a more constructive and formal treatment of many known problems in
music theory, as demonstrated in this thesis.

3. In an ideal world, one receives driving lessons from an experienced driving instructor, well after the
invention of the automobile. While working on this thesis, I had to simultaneously invent the methods
discussed in the preceding chapters while demonstrating them in compositions. It not only takes
time to invent such methods, they also need to be mastered, which requires practice and experience.
Thankfully, the effort I put into this thesis and the associated compositions provided me with some of
both, which I expect to put to use in future compositions in which several techniques can be balanced.

Finally, the theory presented in chapter 2 may seem too steep a climb into formalism for readers with a
limited background in mathematics. I hope to serve those by writing up a more pedagogical version of the
main findings in future work.
Appendix A

B-Prolog sources

A.1 themeA.pl
%bpVarDec([A,A,A,A],themeA)
themeA(Vars) :- Vars=[A00,A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11],

%bpDomains([A,A,A,A])
[A00,A03,A06,A09] :: 0..3,
[A01,A04,A07,A10] :: 0..4,
[A02,A05,A08,A11] :: 0..3,

%bpNoneRepetitive(A)
(A00#=A01)#=>(A01#\=A02),
(A01#=A02)#=>(A02#\=A03),
(A02#=A03)#=>(A03#\=A04),
(A03#=A04)#=>(A04#\=A05),
(A04#=A05)#=>(A05#\=A06),
(A05#=A06)#=>(A06#\=A07),
(A06#=A07)#=>(A07#\=A08),
(A07#=A08)#=>(A08#\=A09),
(A08#=A09)#=>(A09#\=A10),
(A09#=A10)#=>(A10#\=A11),
(A10#=A11)#=>(A11#\=A00),
(A11#=A00)#=>(A00#\=A01),

%bpNoDoublings([A,A,A,A])
all_distinct([A00,A03,A06,A09]),
all_distinct([A01,A04,A07,A10]),
all_distinct([A02,A05,A08,A11]),

%bpRequiredRCT([A,A,A,A],1,0)
(0 #\/ 0#=A01 #\/ 0#=A04 #\/ 0#=A07 #\/ 0#=A10),

77
78 APPENDIX A. B-PROLOG SOURCES

%bpConsonantDyads([A,A,A,A])
%bpConsonant([A,A,A,A],3)
abs(A00-A03)#=<2,
%bpConsonant([A,A,A,A],4)
abs(A01-A04)#=<2,
%bpConsonant([A,A,A,A],5)
abs(A02-A05)#=<2,

%bpInitialDissonancesResolve([A,A,A,A])
%dissonancesResolve([A,A,A,A],6)
((0 #\/ 0#=A06 #\/ 0#=A03 #\/ 0#=A00)#/\(0 #\/ 3#=A06 #\/ 3#=A03 #\/ 3#=A00))#=>
(0 #\/ 0#=A07 #\/ 0#=A04 #\/ 0#=A01),
%dissonancesResolve([A,A,A,A],7)
((0 #\/ 0#=A07 #\/ 0#=A04 #\/ 0#=A01)#/\(0 #\/ 3#=A07 #\/ 3#=A04 #\/ 3#=A01))#=>
(0 #\/ 1#=A08 #\/ 1#=A05 #\/ 1#=A02),
((0 #\/ 0#=A07 #\/ 0#=A04 #\/ 0#=A01)#/\(0 #\/ 4#=A07 #\/ 4#=A04 #\/ 4#=A01))#=>
(0 #\/ 2#=A08 #\/ 2#=A05 #\/ 2#=A02),
((0 #\/ 1#=A07 #\/ 1#=A04 #\/ 1#=A01)#/\(0 #\/ 4#=A07 #\/ 4#=A04 #\/ 4#=A01))#=>
(0 #\/ 2#=A08 #\/ 2#=A05 #\/ 2#=A02),

%bpNoInitialParallelFifths([A,A,A,A])
(A03-A06#\=2)#\/(A04-A07#\=2),
(A04-A07#\=2)#\/(A05-A08#\=2),

labeling(Vars).

:- open(’themeA.txt’,write,Stream),
findall(V,themeA(V),S),write(Stream,S), close(Stream).
A.2. THEMEB.PL 79

A.2 themeB.pl

%bpVarDec([A,B,A,B],themeB)
themeB(Vars) :- Vars=[
A00,A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,
B00,B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11
],

%bpDomains([A,B,A,B])
[A00,A03,A06,A09,B00,B03,B06,B09] :: 0..3,
[A01,A04,A07,A10,B01,B04,B07,B10] :: 0..4,
[A02,A05,A08,A11,B02,B05,B08,B11] :: 0..3,

%bpPreset(A,[3,4,3,2,3,2,1,0,1,0,2,0])
A00#=3,A01#=4,A02#=3,A03#=2,A04#=3,A05#=2,A06#=1,A07#=0,A08#=1,A09#=0,A10#=2,A11#=0,

%bpDissimilar(A,B)
A00#\=B00#\/A01#\=B01#\/A02#\=B02,
A00#\=B03#\/A01#\=B04#\/A02#\=B05,
A00#\=B06#\/A01#\=B07#\/A02#\=B08,
A00#\=B09#\/A01#\=B10#\/A02#\=B11,
A03#\=B00#\/A04#\=B01#\/A05#\=B02,
A03#\=B03#\/A04#\=B04#\/A05#\=B05,
A03#\=B06#\/A04#\=B07#\/A05#\=B08,
A03#\=B09#\/A04#\=B10#\/A05#\=B11,
A06#\=B00#\/A07#\=B01#\/A08#\=B02,
A06#\=B03#\/A07#\=B04#\/A08#\=B05,
A06#\=B06#\/A07#\=B07#\/A08#\=B08,
A06#\=B09#\/A07#\=B10#\/A08#\=B11,
A09#\=B00#\/A10#\=B01#\/A11#\=B02,
A09#\=B03#\/A10#\=B04#\/A11#\=B05,
A09#\=B06#\/A10#\=B07#\/A11#\=B08,
A09#\=B09#\/A10#\=B10#\/A11#\=B11,

%bpNoneRepetitive(B)
(B00#=B01)#=>(B01#\=B02),
(B01#=B02)#=>(B02#\=B03),
(B02#=B03)#=>(B03#\=B04),
(B03#=B04)#=>(B04#\=B05),
(B04#=B05)#=>(B05#\=B06),
(B05#=B06)#=>(B06#\=B07),
(B06#=B07)#=>(B07#\=B08),
(B07#=B08)#=>(B08#\=B09),
(B08#=B09)#=>(B09#\=B10),
(B09#=B10)#=>(B10#\=B11),
(B10#=B11)#=>(B11#\=B00),
(B11#=B00)#=>(B00#\=B01),
80 APPENDIX A. B-PROLOG SOURCES

%bpNoDoublings([A,B,A,B])
all_distinct([A00,A06,B03,B09]),
all_distinct([A01,A07,B04,B10]),
all_distinct([A02,A08,B05,B11]),
all_distinct([A03,A09,B00,B06]),
all_distinct([A04,A10,B01,B07]),
all_distinct([A05,A11,B02,B08]),

%bpNoDoublings([B,B,B,B])
all_distinct([B00,B03,B06,B09]),
all_distinct([B01,B04,B07,B10]),
all_distinct([B02,B05,B08,B11]),

%bpRequiredRCT([A,B,A,B],1,0)
(0 #\/ 0#=A01 #\/ 0#=A07 #\/ 0#=B04 #\/ 0#=B10),
(0 #\/ 0#=A04 #\/ 0#=A10 #\/ 0#=B01 #\/ 0#=B07),

%bpRequiredRCT([B,B,B,B],1,0)
(0 #\/ 0#=B01 #\/ 0#=B04 #\/ 0#=B07 #\/ 0#=B10),

%bpConsonantDyads([A,B,A,B])
%bpConsonant([A,B,A,B],3)
abs(B00-A03)#=<2,
%bpConsonant([A,B,A,B],4)
abs(B01-A04)#=<2,
%bpConsonant([A,B,A,B],5)
abs(B02-A05)#=<2,

%bpInitialDissonancesResolve([A,B,A,B])
%dissonancesResolve([A,B,A,B],6)
((0 #\/ 0#=A06 #\/ 0#=B03 #\/ 0#=A00)#/\(0 #\/ 3#=A06 #\/ 3#=B03 #\/ 3#=A00))#=>
(0 #\/ 0#=A07 #\/ 0#=B04 #\/ 0#=A01),
%dissonancesResolve([A,B,A,B],7)
((0 #\/ 0#=A07 #\/ 0#=B04 #\/ 0#=A01)#/\(0 #\/ 3#=A07 #\/ 3#=B04 #\/ 3#=A01))#=>
(0 #\/ 1#=A08 #\/ 1#=B05 #\/ 1#=A02),
((0 #\/ 0#=A07 #\/ 0#=B04 #\/ 0#=A01)#/\(0 #\/ 4#=A07 #\/ 4#=B04 #\/ 4#=A01))#=>
(0 #\/ 2#=A08 #\/ 2#=B05 #\/ 2#=A02),
((0 #\/ 1#=A07 #\/ 1#=B04 #\/ 1#=A01)#/\(0 #\/ 4#=A07 #\/ 4#=B04 #\/ 4#=A01))#=>
(0 #\/ 2#=A08 #\/ 2#=B05 #\/ 2#=A02),

%bpNoInitialParallelFifths([A,B,A,B])
(B03-A06#\=2)#\/(B04-A07#\=2),
(B04-A07#\=2)#\/(B05-A08#\=2),

labeling(Vars).
A.2. THEMEB.PL 81

:- open(’themeB.txt’,write,Stream),
findall(V,themeB(V),S),write(Stream,S), close(Stream).
82 APPENDIX A. B-PROLOG SOURCES

A.3 themeC.pl

%bpVarDec([C,A,B],themeC)
themeC(Vars) :- Vars=[
A00,A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,
B00,B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,
C00,C01,C02,C03,C04,C05,C06,C07,C08,C09,C10,C11
],

%bpDomains([C,A,B])
[A00,A03,A06,A09,B00,B03,B06,B09,C00,C03,C06,C09] :: 0..3,
[A01,A04,A07,A10,B01,B04,B07,B10,C01,C04,C07,C10] :: 0..4,
[A02,A05,A08,A11,B02,B05,B08,B11,C02,C05,C08,C11] :: 0..3,

%bpPreset(A,[3,4,3,2,3,2,1,0,1,0,2,0])
A00#=3,A01#=4,A02#=3,A03#=2,A04#=3,A05#=2,A06#=1,A07#=0,A08#=1,A09#=0,A10#=2,A11#=0,

%bpPreset(B,[3,1,1,0,2,2,1,0,3,2,3,0])
B00#=3,B01#=1,B02#=1,B03#=0,B04#=2,B05#=2,B06#=1,B07#=0,B08#=3,B09#=2,B10#=3,B11#=0,

%bpNoneRepetitive(C)
(C00#=C01)#=>(C01#\=C02),
(C01#=C02)#=>(C02#\=C03),
(C02#=C03)#=>(C03#\=C04),
(C03#=C04)#=>(C04#\=C05),
(C04#=C05)#=>(C05#\=C06),
(C05#=C06)#=>(C06#\=C07),
(C06#=C07)#=>(C07#\=C08),
(C07#=C08)#=>(C08#\=C09),
(C08#=C09)#=>(C09#\=C10),
(C09#=C10)#=>(C10#\=C11),
(C10#=C11)#=>(C11#\=C00),
(C11#=C00)#=>(C00#\=C01),

%bpNoDoublings([C,A,C,A])
all_distinct([A03,A09,C00,C06]),
all_distinct([A04,A10,C01,C07]),
all_distinct([A05,A11,C02,C08]),
all_distinct([A00,A06,C03,C09]),
all_distinct([A01,A07,C04,C10]),
all_distinct([A02,A08,C05,C11]),

%bpNoDoublings([C,B,C,B])
all_distinct([B03,B09,C00,C06]),
all_distinct([B04,B10,C01,C07]),
all_distinct([B05,B11,C02,C08]),
all_distinct([B00,B06,C03,C09]),
A.3. THEMEC.PL 83

all_distinct([B01,B07,C04,C10]),
all_distinct([B02,B08,C05,C11]),

%bpNoDoublings([C,C,C,C])
all_distinct([C00,C03,C06,C09]),
all_distinct([C01,C04,C07,C10]),
all_distinct([C02,C05,C08,C11]),

%bpRequiredRCT([C,A,C,A],1,0)
(0 #\/ 0#=A04 #\/ 0#=A10 #\/ 0#=C01 #\/ 0#=C07),
(0 #\/ 0#=A01 #\/ 0#=A07 #\/ 0#=C04 #\/ 0#=C10),

%bpRequiredRCT([C,B,C,B],1,0)
(0 #\/ 0#=B04 #\/ 0#=B10 #\/ 0#=C01 #\/ 0#=C07),
(0 #\/ 0#=B01 #\/ 0#=B07 #\/ 0#=C04 #\/ 0#=C10),

%bpRequiredRCT([C,C,C,C],1,0)
(0 #\/ 0#=C01 #\/ 0#=C04 #\/ 0#=C07 #\/ 0#=C10),

%bpNoParallelOctaves([C,A,B])
(A00-C03#\=0)#\/(A01-C04#\=0),
(A01-C04#\=0)#\/(A02-C05#\=0),
(A02-C05#\=0)#\/(A03-C06#\=0),
(A03-C06#\=0)#\/(A04-C07#\=0),
(A04-C07#\=0)#\/(A05-C08#\=0),
(A05-C08#\=0)#\/(A06-C09#\=0),
(A06-C09#\=0)#\/(A07-C10#\=0),
(A07-C10#\=0)#\/(A08-C11#\=0),
(A08-C11#\=0)#\/(A09-C00#\=0),
(A09-C00#\=0)#\/(A10-C01#\=0),
(A10-C01#\=0)#\/(A11-C02#\=0),
(A11-C02#\=0)#\/(A00-C03#\=0),

labeling(Vars).

:- open(’themeC.txt’,write,Stream),
findall(V,themeC(V),S),write(Stream,S), close(Stream).
84 APPENDIX A. B-PROLOG SOURCES
Bibliography

[And07] Torsten Anders. Composing Music by Composing Rules: Design and Usage of a Generic Music
Constraint System. 2007.

[Bac87] Johann Sebastian Bach. Die kunst der fuge bwv 1080; herausgegeben von christoph wolff, 1987.

[Bai88] Kathryn Bailey. Canon and beyond: Webern’s op. 31 cantata. Music Analysis, 7(3):pp. 313–348,
1988.

[BK05] W. Bathe and K. Karnes. A Briefe Introduction to the Skill of Song. Music theory in Britain,
1500-1700. Critical editions. Ashgate, 2005.

[BR93] J. Burmeister and B.V. Rivera. Musical Poetics. Music Theory Translation Series. Yale Univer-
sity Press, 1993.

[BW64] Friedrich Blume and Piero Weiss. Bach in the romantic era. The Musical Quarterly, 50(3):pp.
290–306, 1964.

[Cal92] Seth Calvisius. Melopoeia sive melodiae condendae ratio, quam vulgo musicam poeticam vo-
cant, ex veris fundamentis explicata. Erfurt, 1592.

[Den09] A. E. Denham. The future of tonality. Brit J Aesthetics, 49(4):427–450, October 2009.

[Dij76] Edsger W. Dijkstra. A discipline of programming. Englewood Cliffs, N.J. : Prentice-Hall, 1976.

[Dij96] Edsger W. Dijkstra. Een scheve schaats. circulated privately, March 1996.

[Dij02] Edsger W. Dijkstra. Ewd1300: The notational conventions i adopted, and why. Formal Asp.
Comput., pages 99–107, 2002.

[dPS83] G.P. da Palestrina and H. Stern. Missa ad fugam: für Chor SATB (SAATB). Hänssler Verlag,
1983.

[Eul36] L. Euler. Solutio problematis ad geometriam situs pertinentis. Comment. Academiae Sci. I.
Petropolitanae, 8:128–140, 1736.

[Fle83] Fleury. Deux problèmes de geometrie de situation. Journal de mathematiques elementaires,


pages 257–261, 1883.

[Fux42] Johann Joseph Fux. Gradus ad Parnassum (German translation with commentary by L. C. Mi-
zler). L. C. Mizler, Leipzig, 1742.

85
86 BIBLIOGRAPHY

[Gau96] Robert Gauldin. The composition of late renaissance stretto canons. Theory and Practice, 21,
1996.

[GJ90] Michael R. Garey and David S. Johnson. Computers and Intractability; A Guide to the Theory
of NP-Completeness. W. H. Freeman & Co., New York, NY, USA, 1990.

[Gos97] Alan R. Gosman. Stacked canon and renaissance compositional procedure. Journal of Music
Theory, 41(2):289–317, 1997.

[Gos00a] Alan Gosman. Rameau and zarlino: Polemics in the ”traité de l’harmonie”. Music Theory
Spectrum, 22(1):pp. 44–59, 2000.

[Gos00b] Alan R. Gosman. Compositional Approaches to Canons from Ockeghem to Brahms. PhD thesis,
Harvard University, 2000.

[Hin70] Paul Hindemith. Unterweisung im Tonsatz / Paul Hindemith. Schott’s Sohne, Mainz :, 1970.

[Hon12] A. Honarmand. Canon and dodecaphony in the music of alfred schnittke. Honar–Ha-Ye-
Ziba:Honar-Ha-Ye-Namayeshi Va Mosighi, 3(43), 2012.

[JD91] Josquin and Nigel Davison. Missa sine nomine / josquin des prez ; edited by nigel davison.
[music], 1991.

[Kal90] Anne Kaldewaij. Programming: the derivation of algorithms. Prentice-Hall, Inc., Upper Saddle
River, NJ, USA, 1990.

[Mea93] Andrew Mead. Webern, tradition, and ”composing with twelve tones...”. Music Theory Spectrum,
15(2):pp. 173–204, 1993.

[Mel] E.A. Melson. Compositional Strategies in Mensuration and Proportion Canons, Ca. 1400 to Ca.
1600. McGill University, Montreal.

[MM79] Hans. Moldenhauer and Rosaleen. Moldenhauer. Anton von Webern, a chronicle of his life and
work / Hans Moldenhauer and Rosaleen Moldenhauer. Knopf : distributed by Random House,
New York :, 1st american ed. edition, 1979.

[Mor97] T. Morley. A Plaine and Easy Introduction to Practicall Musicke. London, 1597.

[Mor88] Robert D. Morris. Generalizing rotational arrays. Journal of Music Theory, 32(1):pp. 75–132,
1988.

[Mor95] Robert D. Morris. The structure of first-species canon in modal, tonal and atonal musics. Intégral,
9:33–66, 1995.

[Mor05] Robert D. Morris. Aspects of post-tonal canon systems. Intégral, 18/19:189–221, 2004/2005.

[Nei64] O. W. Neighbour. Schoenberg’s canons. The Musical Times, 105(1459):pp. 680–681, 1964.

[NK04] R. Nederpelt and F.D. Kamareddine. Logical Reasoning: A First Course. Texts in Computing.
King’s College Publications, 2004.
BIBLIOGRAPHY 87

[Par76] M. Park. The Missa Prolationum of Johannes Ockeghem: A Performing Edition. Kent State
University. Graduate School. Master’s theses. School of Music. 1976.

[Per61] Vincent Persichetti. Twentieth century harmony : creative aspects and practice / by Vincent
Persichetti. Norton, New York, 1961.

[Per71] George Perle. Webern’s twelve-tone sketches. The Musical Quarterly, 57(1):pp. 1–25, 1971.

[PR01] Francois Pachet and Pierre Roy. Musical harmonization with constraints: A survey. Constraints,
6(1):7–19, 2001.

[Rat00] Joseph Cardinal Ratzinger. The spirit of the liturgy. Ignatius Press, San Francisco, 2000.

[RG71] Jean-Philippe Rameau and Philip Gossett. Treatise on harmony / Jean-Philippe Rameau ; trans-
lated with an introduction and notes by Philip Gossett, volume 3. Dover Publications, New York
:, 1971.

[Roe03] John Roeder. Beat-class modulation in steve reich’s music. Music Theory Spectrum, 25(2):pp.
275–304, 2003.

[Rog68] John Rogers. Some properties of non-duplicating rotational arrays. Perspectives of New Music,
7(1):pp. 80–102, 1968.

[Sas03] Humphrey F. Sassoon. Js bach’s musical offering and the source of its theme: Royal peculiar.
The Musical Times, 144(1885):pp. 38–39, 2003.

[Sch40] G. Schilling. Lehrbuch der allgemeinen Musikwissenschaft oder dessen, was Jeder, der Musik
treibt oder lernen will, nothwendig wissen muß: nach einer neuen Methode zum Selbstunterricht,
und als Leitfaden bei allen Arten von praktischem wie theoretischem Musikunterricht bearbeitet.
Groos, 1840.

[Sch63] A. Schoenberg. 30[i.e. Dreissig] Kanons. Bärenreiter, 1963.

[Scr97] Roger. Scruton. The aesthetics of music. Clarendon Press, Oxford :, 1997.

[Sea89] Michael Searby. Ligeti’s chamber concerto - summation or turning point? Tempo, (168):pp.
30–34, 1989.

[SG01] Stanley. Sadie and George Grove. The new Grove dictionary of music and musicians / edited by
Stanley Sadie. Grove, London :, 2nd ed. edition, 2001.

[Sim67] Christopher Simpson. A compendium of practical musick in five parts [microform] : teaching,
by a new and easie method ... / by Christopher Simpson. Printed by William Godbid for Henry
Brome, London, 1667.

[Sto08] Nolan Stolz. Contrapuntal Techniques in Schoenbergs Fourth String Quartet. Eunomios, August
2008. online article.

[Tan03] Andranik Tangian. Constructing rhythmic canons. Perspectives of New Music, 41(2):pp. 66–94,
2003.
88 BIBLIOGRAPHY

[Tar12] Richard Taruskin. Oxford History of Western Music. http://ccrma.stanford.edu/-


˜jos/mdft/, 2012. online book.

[Tho00] Margaret E. Thomas. Nancarrow’s canons: Projections of temporal and formal structures. Per-
spectives of New Music, 38(2):pp. 106–133, 2000.

[vG12] J.L. van Geenen. On designing stacked canons with relative chord tones. Journal of Mathe-
matics and Music: Mathematical and Computational Approaches to Music Theory, Analysis,
Composition and Performance, 6(3):187–205, 2012.

[Vuz91] Dan Tudor Vuza. Supplementary sets and regular complementary unending canons (part one).
Perspectives of New Music, 29(2):pp. 22–49, 1991.

[Vuz92a] Dan Tudor Vuza. Supplementary sets and regular complementary unending canons (part three).
Perspectives of New Music, 30(2):pp. 102–124, 1992.

[Vuz92b] Dan Tudor Vuza. Supplementary sets and regular complementary unending canons (part two).
Perspectives of New Music, 30(1):pp. 184–207, 1992.

[Vuz93] Dan Tudor Vuza. Supplementary sets and regular complementary unending canons (part four).
Perspectives of New Music, 31(1):pp. 270–305, 1993.

[Wol02] C. Wolff. Johann Sebastian Bach: The Learned Musician. Oxford University Press, 2002.

[Wol03] Stephen Wolfram. The Mathematica book (5. ed.). Wolfram-Media, 2003.

[X03] Pope Pius X. Tra le sollecitudini. Motu Proprio, 1903.

[Zho06] Neng-Fa Zhou. Programming finite-domain constraint propagators in action rules. Theory Pract.
Log. Program., 6(5):483–507, 2006.

[Zho10] Neng-Fa Zhou. B-Prolog User’s Manual (Version 7.4). Afany Software & CUNY & Kyutech,
2010.
Glossary

Chord the record type for chords. 18, 90

LU the length of the unique part of the dux. 7

L the length of the dux in a (stacked) canon. 7

Pcc constrains the harmony of a stacked canon to chords of V different pitches. 15

Pnf constraint which excludes the occurence of fourths between the bass and another voice in a stacked
canon. 28

Pnpar (rcti) constraint which excludes the occurence of parallel relative chord tones at the relative chord
tone interval rcti. 25

Psc summarizes the relation between the relative scale tones of the voices in a stacked canon. 30

Pspr constraint which requires sevenths to be prepared and resolve stepwise. 16

SI scale interval of a (stacked) canon. 7, 92

Scale the record type for scales. 18

S a scale. 7

T I the time interval of a (stacked) canon. 7, 92

V the number of voices in a polyphonic structure. 7, 91

A (D (cs)) refers to D (cs)’s arcs. 17

D (cs) refers to a dux graph for a chord sequence with chord sizes cs. 17, 89, 90

V (D (cs)) refers to D (cs)’s vertices. 17

asSet (a) returns a set representation of the array a. 58

bpConsonant(C, t) requires the consonance of theme configuration C at time t. 60

bpConsonantDyads(C) requires the initial two-voice section of theme configuration C to be consonant.


60

bpDissimilar (T0 , T1 ) constrains a degree of similarity between themes T0 and T1 . 58

89
90 Glossary

bpDomains (C) constrains the domains of all themes in theme configuration C. 58

bpInitialDissonancesResolve(C) requires dissonances to resolve in the initial triads of theme configuration


C. 60

bpN oDoublings (C) constrains the chords in theme configuration C have no doublings. 59

bpN oInitialP arallelF if ths(C) requires that no parallel fifths occur between dyads or triads. 61

bpN oneRepetitive (T ) constrains a degree of repetitiveness in theme T ’s relative chord tone structure.
59

bpRequiredRCT (C, tc, rct) requires the chords in theme configuration C to contain relative chord tone
rct at time class tc. 59

chord (C, t) returns the array of the relative chord tones sounding simultaneously at time t in configuration
C, 0 ≤ t, such that chord (C, t) [v] = voice (C, v, t). 58

chord a Chord array which represents the chord sequence of a stacked canon. 18

cs an array which contains the chord-sizes of the chord sequence. 17, 89

disP airs(t) returns a set of sorted arrays representing dissonant relative-chord tone pairs at time t. 60

dissonancesResolve(C, t) requires that any dissonant occurring at time t in theme configuration C re-
solves at time t + 1. 60

edg (D (cs))) boolean function which is true iff D (cs) is a Eulerian dux graph. 21

noP arallel(C, t, int) requires the absence of a parallel relative chord tone interval int in the transition
t → t + 1 in theme configuration C. 61

rct a rectangular array, such that rct[v, t] corresponds to the relative chord tone sounding in voice v at
time t. 14, 16

resolution(t, dp) returns the relative chord tone which must be present at time t + 1, should the pair of
dissonant relative-chord tones of the array dp sound simultaneously at time t. 60

tc the time class (mod T I). 16

theme0 Spiral’s main theme. vii, 19, 20, 37

theme1 Spiral’s second theme. vii, 38

voice (C, v, t) returns the relative chord tone a voice v has at time t in theme configuration C. 58, 90

canon a compositional technique in which derivations of a single melody are overlappingly imitated. 1, 91

chace a canonic form, popular in thirteenth and fourteenth century France, in which once voice ‘hunts’ the
other. 2

chord sequence a chord progression, the repeated transposition of which can be used as a model for the
harmonic structure of a stacked canon. 13, 29, 89, 90
Glossary 91

chord sequence modulation reinterpret the relative chord tones of an incomplete chord in the canon, as
relative chord tones of another chord, while holding the pitches of the incomplete chord invariant. 30,
91

chord size the cardinality of a chord’s pitch class set. 18, 89

circle canon a canon which can be be repeated ad libitum at the same pitch. 1, 92

CLP Constraint Logic Programming. 53

combination the overlapping of two or more themes. 40, 47, 91

comes a voice entry following a dux in a canon or fugue. 1

counterpointing approach a method for the creation of canons based on writing counterpoint upon coun-
terpoint. 9

dux a leading voice entry in a canon or fugue. 1, 7, 89, 91, 92

dux graph a directed graph which’ vertices represent relative chord tones and arcs voice leadings between
relative chord tones. 16, 17, 23, 89

Eulerian a directed graph is Eulerian iff it contains a closed path covering all arcs. 21, 27, 91

Eulerian cycle a cycle in a directed Eulerian graph which covers all arcs. 21, 27

Eulerization the pruning of vertices and adjacent arcs from a directed graph, such that it becomes Eulerian.
21

GCL the Guarded Command Language[Dij76, Kal90]. 23

Hamiltonian cycle a cycle in a directed graph which covers all vertices. 17

harmoniola a harmonic passage for V voices in which the concatenation of the individual voices corre-
sponds to the dux of a canon for V voices. 9, 11, 35, 39

hoquetus the dovetailing of sounds and silences by means of the staggered arrangement of rests[SG01]. 2

intervallic approach a method for the creation of canons based on the conversion of consonant harmonic
intervals to melodic intervals. 9

pes ground or ostinato. 1

pivot chord within the context of a chord sequence modulation: incomplete chord which allows chord
sequence before and after the modulation to overlap. 31

reduced members the reduced members of a combination identify the entries of the combination modulo
transposition. 40, 47
92 Glossary

relative chord tone an integer which identifies the index of a chord tone within its chord or transpositions
thereof. 14, 89, 91, 92

relative chord tone approach a method proposed in this thesis for the creation of stacked canons, which
specifies the dux as a series of relative chord tones. 13

relative scale tone an integer which identifies the index of a scale tone within its scale. 30, 89

rota see circle canon. 1

rotational array an array of pitch classes, the rows of which are rotatations of each other. 11, 14, 29

round see circle canon. 1

Sekundgang the stepwise organisation of a melody’s contour[Hin70]. 46

species counterpoint an approach to strict counterpoint that proceeds methodically from note-against-note
settings of the cantus firmus to more complex combinations of parts[SG01]. 9

spiral canon a canon in which each voice consists of transposed repetitions of the dux. 7

stacked canon a special kind of canon in which each comes is a transposition by a fixed time interval
T Iand scale interval SI of its immediate predecessor. 7

stretto the canonic overlap of a theme with itself. 2

theme configuration an array containing theme-entries such as [A, B, A, B], in the order in which they
enter a polyphonic structure. 57, 89, 90

Tonnetz a lattice representing tonal space. 12

You might also like