Professional Documents
Culture Documents
June 2017
Supervisor:
David Thue, Assistant Professor
Reykjavík University, Iceland,
Examiner:
Hannes Högni Vilhjálmsson, Examiner
Associate Professor, Reykjavík University, Iceland
iv
A Model of Inter-musician Communication for Artificial
Musical Intelligence
Oscar Alfonso Puerto Melendez
June 2017
Abstract
Artificial Musical Intelligence is a subject that spans a broad array of disciplines related to
human cognition, social interaction, cultural understanding, and music generation. Although
significant progress has been made on particular areas within this subject, the combination
of these areas remains largely unexplored. In this dissertation, we propose an architecture
that facilitates the integration of prior work on Artificial Intelligence and music, with a fo-
cus on enabling computational creativity. Specifically, our architecture represents the verbal
and non-verbal communication used by human musicians using a novel multi-agent inter-
action model, inspired by the interactions that a jazz quartet exhibits when it performs. In
addition to supporting direct communication between autonomous musicians, our architec-
ture presents a useful step toward integrating the different subareas of Artificial Musical
Intelligence.
Titll verkefnis
Oscar Alfonso Puerto Melendez
júní 2017
Útdráttur
Tónlistargervigreind er grein sem spannar fjölbreytt svið tengd mannlegri þekkingu, félags-
legum samskiptum, skilningi á menningu og gerð tónlistar. Þrátt fyrir umtalsverða fram-
þróun innan greinarinnar, hefur samsetning einstakra sviða hennar lítið verið rannsökuð. Í
þessari ritgerð eru lögð drög að leið sem stuðlar að samþættingu eldri verka á sviði gervi-
greindar og tónlistar, með áherslu á getu tölva til sköpunar. Nánar tiltekið lýtur ritgerðin
að samskiptum sem notuð eru af tónlistarmönnum við nýju samskiptalíkani fyrir fjölþætt
samskipti, sem er innblásið af samskiptum jazz kvarteta á sviði. Til viðbótar við stuðning
við bein samskipti sjálfvirkra "tónlistarmanna, felst í rannsókninni framþróun samþættingar
ólíkra undirsviða tónlistargervigreindar.
vi
A Model of Inter-musician Communication for Artificial
Musical Intelligence
Oscar Alfonso Puerto Melendez
June 2017
Student:
Supervisor:
David Thue
Examiner:
Thor Magnusson
viii
The undersigned hereby grants permission to the Reykjavík University Library to reproduce
single copies of this Thesis entitled A Model of Inter-musician Communication for Arti-
ficial Musical Intelligence and to lend or sell such copies for private, scholarly or scientific
research purposes only.
The author reserves all other publication and other rights in association with the copyright
in the Thesis, and except as herein before provided, neither the Thesis nor any substantial
portion thereof may be printed or otherwise reproduced in any material form whatsoever
without the author’s prior written permission.
date
I would like to thank my supervisor David Thue for his remarkable guidance throughout my
research and to my family for all the support and encouragement.
xiv
xv
Contents
Acknowledgements xiii
Contents xv
1 Introduction 1
1.1 General Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Artificial Music Intelligence . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Computational models of music creativity . . . . . . . . . . . . . . 3
1.1.3 Common algorithms applied to musical composition . . . . . . . . 3
1.1.3.1 Cellular automata . . . . . . . . . . . . . . . . . . . . . 4
1.1.3.2 Grammar based music composition . . . . . . . . . . . . 4
1.1.3.3 Genetic Algorithms . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Interactive musical systems for live music . . . . . . . . . . . . . . 6
1.1.5 Communication protocols in a musical multi-agent system . . . . . 7
1.1.5.1 The FIPA Protocols . . . . . . . . . . . . . . . . . . . . 7
1.2 Musebot Ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Limited real-time capabilities . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Changing musical roles . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3 Collaboration between agents . . . . . . . . . . . . . . . . . . . . . 9
1.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Problem Formulation 11
2.1 Our vision: an ideal AMI system . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Autonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Musical communication . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Performance of alternative musical styles . . . . . . . . . . . . . . 12
2.1.4 Taking on different roles within a musical ensemble . . . . . . . . . 12
2.2 Our focus: enabling communication between musical agents . . . . . . . . 13
2.3 Jazz as a good domain for AMI research . . . . . . . . . . . . . . . . . . . 13
2.4 Expected challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Related Work 15
3.1 Algorithmic Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Generative grammars . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2 Evolutionary methods . . . . . . . . . . . . . . . . . . . . . . . . . 16
xvi
4 Proposed Approach 23
4.1 General Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1 The CADIA Musebot . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1.1 Musician Agent . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1.2 Composer Agent . . . . . . . . . . . . . . . . . . . . . . 28
4.1.1.3 Synchronizer Agent . . . . . . . . . . . . . . . . . . . . 30
4.1.1.4 Ensemble Assistant Agent . . . . . . . . . . . . . . . . . 31
4.2 Interaction Between Agents . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.1 Interaction Protocols . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.1 Initial Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.2 Development Challenges and Implementations . . . . . . . . . . . 33
4.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Evaluation 35
5.1 Testing and Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.1.1 Bastien and Hostager’s case study . . . . . . . . . . . . . . . . . . 35
5.1.2 Song 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.1.2.1 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.2.2 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1.3 Song 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1.3.1 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1.3.2 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.4 Song 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.4.1 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1.4.2 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7 Conclusion 51
Bibliography 53
xvii
List of Figures
6.1 Synchronization process of two agents in the Musebot Ensemble. The Musebot
Bass comes from being a leader and is ready to support the Musebot Piano, but
it will need to request its Synchronizer Agent to obtain the current section being
played by the Musebot Piano. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Interaction between three internal agents through custom protocols. . . . . . . . 49
xviii
xix
List of Tables
4.1 This table represents the properties of the song’s structure object. The tempo
and time signature’s numerator and denominator are stored as integer values.
The form stores a string of characters, and the sections of the form store a list of
musical chords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1 This table enumerates each agent’s possible actions during a song’s progression.
The actions are classified into communicative behaviours and musical behaviours. 36
5.2 Introduction of Song 1. The leader waits while the piano plays an introduction,
and all three accompanists compose their parts. . . . . . . . . . . . . . . . . . 37
5.3 First Chorus (AAB) of Song 1. The leader (sax) waits until the end of the first
section, because it needs to give a time to the CA to find out the current section
(First A) being played by the accompanists. The leader then starts to play the
solo at the beginning of the second section A. Finally at section B, the "sax"
passes the leadership to the "bass". All three accompanists play their parts dur-
ing this chorus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4 Second Chorus (AAB) of Song 1. The new leader (piano), plays a solo in each
section of this chorus, and passes the leadership to the "bass" at the last section.
The rest of the members play the accompaniments. . . . . . . . . . . . . . . . 37
5.5 Third Chorus (AAB) of Song 1. The "bass" takes its turn to be the leader and
play a solo while the accompanists play their parts. At section B of this chorus,
the "drums" accept to be the new leader of the ensemble. . . . . . . . . . . . . 37
5.6 Fourth Chorus (AAB) of Song 1. The new leader (drums) plays a solo during
the entire chorus, and the accompanists support this playing their parts. . . . . 38
5.7 Fifth Chorus (AAB) of Song 1. During this chorus, the "drums" continue play-
ing a solo until the end of the second section A. At this moment of the song, the
"sax" take back the leadership and the "drums" return to play the accompani-
ments, while the rest of the agents ("bass" and "piano") plays their parts. . . . . 38
5.8 Sixth Chorus (AAB) of Song 1. This is the last chorus of Song 1, the "sax" play
a solo for a single section and then pass the leadership to the "piano," which
continue playing the next solo during the rest of the chorus. . . . . . . . . . . . 38
5.9 Introduction of Song 2. The leader ("sax") waits for the end of the introduction,
which is played by the "piano" while all the accompanists compose their parts. . 39
5.10 First Chorus (A) of Song 2. The leader ("sax") compose the solo and waits for
the end of the chorus, while the accompanists play their parts . . . . . . . . . . 39
xx
5.11 Second Chorus (A) of Song 2. The "sax" start to play a solo and the rest of the
members of the ensemble play the accompaniments. . . . . . . . . . . . . . . . 39
5.12 Third Chorus (A) of Song 2. The "sax" ends playing the solo at second fifty-five
of section A and pass the leadership to the "piano". The "piano" and the "drums"
play the accompaniments during the entire chorus. . . . . . . . . . . . . . . . . 39
5.13 Fourth Chorus (A) of Song 2. After the "piano" accepted the leadership in the
previous chorus, it starts to play the solo at the beginning of section A. The "sax"
and "drums" support the new soloist with the accompaniments. . . . . . . . . . 40
5.14 Fifth Chorus (A) of Song 2. The leader ("piano") continues playing the solo
during this chorus as well as the accompaniments play their parts. . . . . . . . 40
5.15 Sixth Chorus (A) of Song 2. The "piano" pass the leadership to the "drums" and
ends its solo when section A finished. The "drums" then accept the leadership
and end its part while the "sax" continue playing the accompaniment. . . . . . . 40
5.16 Seventh Chorus (A) of Song 2. The new leader ("drums") starts to play a solo.
The "piano" has become an accompanist and support the "drums" along with the
"sax". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.17 Eighth Chorus (A) of Song 2. The accompanists "sax" and "piano" continues
supporting the soloist. The leader plays a section of inventive solo. . . . . . . . 40
5.18 Ninth Chorus (A) of Song 2. The leader ("drum") continues improvising a solo
during this chorus, while the other agents play the accompaniments. . . . . . . 41
5.19 Tenth Chorus (A) of Song 2. The "drums" play its last section of improvised
solo and pass the leadership to the "sax". The "sax" accepts the leadership and
plays its last accompaniment in the song, while the piano continues supporting
the leader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.20 Eleventh Chorus (A) of Song 2. The leader ("sax") compose a solo while the
rest of the agents play the accompaniments. . . . . . . . . . . . . . . . . . . . 41
5.21 Introduction of Song 3. The leader ("sax") waits for the end of the introduction,
which is played by the "piano" while all the accompanists compose their parts. . 42
5.22 First Chorus (AABA) of Song 3. At the first section, the "sax" composes a solo
and waits until this section is finished. The leader later starts to play the solo
at the beginning of the second section. Next, at section B the "sax" pass the
leadership to the "piano" and afterwards become an accompanist playing its part
from the beginning of the last section, at that moment the "piano" becomes the
new leader and starts to play a solo. The "bass" and "drums" play their parts
during the entire chorus without any change in their roles. . . . . . . . . . . . . 42
5.23 Second Chorus (AABA) of Song 3. In this chorus, the "piano" play a solo dur-
ing the first two sections, afterward it passes the leadership to the "sax" and then
becomes an accompanist. The "sax" accept the leadership during the second sec-
tion and plays a solo during the next two sections (B and A) after that, the "sax"
passes the leadership back to the "piano". The "bass" and "drums" continue this
chorus without any change in their roles. . . . . . . . . . . . . . . . . . . . . . 42
5.24 Third Chorus (AABA) of song 3. The "piano" plays a solo during the first three
sections, the leader ("piano") then becomes an accompanist and lets the "bass"
change into the new leader of the ensemble. The "bass" starts to play a solo at
the beginning of the last section, while the "sax" and the "drums" play their parts
as accompanists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
xxi
5.25 Fourth Chorus (AABA) of Song 3. The leader ("bass") plays a solo during the
first two sections. The leader later passes the leadership to the "drums" and
subsequently changes its role to an accompanist. The "drums" accept to be the
new leader during the second section and then play a solo during the rest of the
chorus. The "sax" and the "piano" continue this chorus without any changes in
their roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
xxii
1
Chapter 1
Introduction
Artificial Musical Intelligence is a broad area of research that uses Artificial Intelligence
(AI) techniques to build autonomous, interactive, musical systems [1]. Hiller [2] was one
of the pioneers of combining AI and music, building an application that generated musical
compositions based on rule systems and Markov Chains. Later, Cope’s [3] “Experiments in
Music Intelligence” used symbolic AI techniques such as grammars to generate a musical
composition. Readers interested in the history of AI and music are encouraged to read Mi-
randa’s [4] survey. We believe that the intersection of AI and music is an ideal context for
the study of computational creativity. Computational Creativity is the use of autonomous
systems to generate and apply new ideas that would be considered creative in different dis-
ciplines of social life, including art, sciences and engineering [5]. In this dissertation, we
focus particularly on the creativity that is inherent in collaborative, improvised, musical per-
formance, and we adopt Roads’s [6] assertion that both composition and performance can
be usefully tackled using AI techniques. Research and practical efforts that pursue these ob-
jectives are commonly discussed under the title “Musical Metacreation” (MuMe) [7], which
can be well thought of as a subfield of Computational Creativity.
The study of Musical Metacreation (MuMe) techniques has been approached from sev-
eral different perspectives, which we roughly organize into three subareas: Algorithmic
Composition, Live Algorithms, and Musical Multi-agent Systems.
Algorithmic Composition is a subarea of MuMe that seeks to automate different aspects
of musical composition, including orchestration, score editing and sound synthesis [8]. For
example, Stella [9] is an automated music representation system that can be used to edit
musical scores.
Live Algorithms seeks to build autonomous systems that can perform in a collaborative
musical setting, sharing the same privileges, roles, and abilities as a human performer. For
example, ixi lang [10] is an interpreted programming language that produces musical events
in response to instructions typed in real-time – a practice known as “coding live music” [11]
or simply "live coding". Autonomy is a central concern when creating such systems, mean-
ing that the interaction between the musician and the system must be strictly collaborative;
neither should control the other. Elements of Algorithmic Composition, live electronics
(e.g., Imaginary Landscape [12]), and free improvisation are often combined to satisfy this
constraint [13]. While Algorithmic Composition aims to model different elements of the
composition task, Live Algorithms seeks to model the creative abilities that can be observed
when human musicians perform.
Musical Multi-agent Systems is a subarea of MuMe that seeks to model the composi-
tion and performance of music as a task that requires collaboration between multiple agents.
The general concepts of multi-agent systems can been applied to MuMe in two ways: mul-
2 CHAPTER 1. INTRODUCTION
tiple agents can be used to represent a single autonomous musician (e.g., a composer and
a performer) [14], or the behaviour of multiple autonomous musicians can be represented
as a single multi-agent system (e.g., a string quartet) [15]–[17]. Ideas related to computer
networking are often used in this context, with communication protocols being defined and
used to deliver messages between interacting agents.
Although many useful advances have been made in each of these three subareas, methods
and architectures for combining such advances remain largely unexplored. Recently, Bown,
Carey, and Eigenfeldt [18] developed “Musebot Ensemble” – a platform for agent-based
music creation in which musical agents are developed individually and designed to accom-
plish a specific role in a larger ensemble. In their paper, the authors asserted that the agents
in the ensemble (called “Musebots”) must be able to communicate musical ideas through a
set of predefined messages, toward supporting collective performances that are analogous
to those of human musical ensembles. While the Musebot Ensemble platform offers a ba-
sis for integrating various MuMe techniques, its model of how agents communicate can be
improved. Specifically, it lacks support for direct communication between agents, choosing
instead to allow only a special, centralized “Conductor” agent to communicate directly with
each Musebot. The result is that some agents can be left unaware of decisions that are made
by other agents, reducing their ability to perform well [19]. Furthermore, direct commu-
nication between agents is essential to certain kinds of music, where the need for real-time
coordination is inherent to the musical style (e.g., small-group jazz [20]). In this dissertation,
we propose an architecture for Musical Metacreation that offers two contributions. First, it
extends the Musebot Ensemble platform with a model of direct communication between au-
tonomous musicians. Second, it does so in a way that facilitates integrating recent advances
in the MuMe subareas of Algorithmic Composition, Live Algorithms, and Musical Multi-
agent Systems. The remainder of this dissertation is organized as follows. We begin with
a broad description of background in Artificial Music Intelligence. We then formulate our
challenge and follow with an overview of related work, covering each of MuMe’s subareas
in turn. We then present our architecture in two parts; we describe its overall structure and
each of its component parts, and then explain how the parts interact with one another. We
conclude by discussing our contributions and offering some suggestions for future work.
generate music. For instance, Emmy and Emily Howell are computer programs that gener-
ate musical compositions [25]. While the origins of the intersection between AI and music
favoured musical composition, several studies have been conducted in other areas of music,
including performance (e.g., The flavor band system [26]), sound synthesis analysis (e.g.,
Seewave [27]) and improvisation (e.g., JIG [28]). This thesis only addresses areas of music
and AI that are related to creativity and collaboration.
that allows one to represent music in common notation analogous to how musicians write
music in a score, including elements such as parts, phrases, and notes; these elements are
represented in the data structure of the jMusic library [32]. One can use this data struc-
ture to implement algorithms related to cellular automata, generative grammars, and genetic
algorithms.
Cellular automata have been studied by different disciplines [34]-[35]. This concept
has been applied to music with the goal of experimenting with alternative paradigms of
musical composition. For instance, researchers have identified elements of the composition
of rhythms (e.g., repetition and musical patterns) that are suitable to model with cellular
automata.
Brown [36] explored the generation of rhythmic patterns using a single linear cellular
automata. Brown assigned a binary set of states to each cell of the cellular automata, where
1 represented a musical note and 0 represented a rest (see Figure 1.2).
Figure 1.2: Example of the binary and notational representations of the cellular automata
rhythm extracted from Brown’s work [36]
To produce a new sequence of notes and rests, Brown initially experimented using what
he called a totalistic rule. This rule will update the state of each cell according to the sum of
1s in its neighborhood (a subset of cells from the cellular automata). The aesthetics of the
resulting composition are outlined by the application of the rule in each repetition [36].
language, music escapes the problem of dealing with semantics since music does not have
any precise meaning [38]; thus, grammar-based techniques are one of the most popular
approaches used in algorithmic composition. The great majority of AI domains employ
models based on theories of probability and statistics, from evaluating functions based on
Monte Carlo tree searches in the application of games [39] to Bayesian networks [40].
Markov chains are commonly used in computer musical composition. A Markov chain
represents a chance process where the results of an event can be influenced by the outcome
of a previous event [41]. For a description of the Markov chain process, see Grinstead and
Snell [41]. Translating this mechanism into a computer algorithm that outputs a melody
requires the input of an existing composition. Brown gives an example of this operation
[42]. Given the melody described in Table 1.1, the probability of the note G depends on the
occurrence of the previous note. This is determined by representing the likelihood of each
note using a Markov Matrix of all possibilities. Table 1.2 shows how Brown calculated the
probabilities of each pitch by counting the sequence repeated of each note in the first column
(e.g., the transition from D in the first column to E in the top row is repeated four times in the
melody). After normalizing the values in the matrix so the count of each row sum to 1, the
matrix can be used to generate a new melody of any length sharing similar caractheristics to
the previous one [42].
E, D, C, D, E, E, E, D, D, D, E, G, G, E, D, C, D, E, E, E, E, D, E, D, C
Table 1.2: Transition probability matrix from Brown’s markov process example [42].
C D E G
C 0.0 0.1 0.0 0.0
D 0.3 0.3 0.4 0.0
E 0.0 0.4545 0.4545 0.0909
G 0.0 0.0 0.5 0.5
extensive number of variations. Third, the decision of which variation best fits the given
sample involved a selection process. The selection process was carried out by applying a
fitness function that rated the generated variations according to certain criteria. Finally, the
highest-rated variations were chosen [42].
Blackwell, Bown, and Young also described a framework for Live Algorithms called the P, F
and Q architecture. P represents sound analysis through analogous input (listening), F is the
reasoning module of the system that processes the audio received by applying algorithms in a
musical context (brain), and Q represents the functions of synthesis by converting the input
from analogue to digital and streaming the music (voice). In general terms, F represents
the integration of algorithmic composition into the framework. The whole process is an
abstraction of musicians’ perception, cognition, and production [46].
messages to coordinate agents’ actions. The existing FIPA interaction protocols are listed
in Table 1.3. Generally speaking, the FIPA interaction protocols either request to perform a
task or to share information among participants in a multi-agent system. In the FIPA request
interaction protocol, an agent (the initiator) asks another agent (the responder) to perform an
action. The responder computes the request and decides whether to accept or refuse it. From
a music perspective, this kind of protocol is a powerful tool for negotiating which passages
agents will perform. We demonstrate this capability in Chapter 4.
in Live Algorithms. Incorporating Live Algorithms into the architecture of Musebot Ensem-
ble is expected to impact the quality of synchronizing and tracking beats [54]. The efficacy
of Live Algorithms is to allow for synchronization of performances between computational
and human musicians. This functionality further allows the system to track any changes in
the structure of the music and take corrective measures in real time. Brown and Gifford
[55] argue that implementing Live Algorithms allows systems to make corrections to the
changing structure of music in real time [55].
1.3 Summary
In this chapter, we gave a brief background of AMI research. We started by discussing com-
mon computational models of music creativity. We then addressed some of the mechanisms
used in earlier studies of AI and music, including Cellular Automata, grammar based mu-
sic composition, and genetic algorithms. Furthermore, we listed different communication
protocols provided by FIPA. Finally, we described the Musebot Ensemble and its limita-
tions. In Chapter 2, we will discuss the challenge of creating an AMI system with a focus
on communication.
10
11
Chapter 2
Problem Formulation
The study of human cognition and how it can be modeled has contributed to several im-
provements in our daily lives, including “smart systems” that use AI techniques to ease
users’ experiences. Inspired by this perspective, we view the study and emulation of human
musical abilities as an important avenue to explore in pursuit of autonomous musical sys-
tems, which are computer programs based on AI techniques. Several autonomous musical
systems have been developed over the years that propose a vast number of approaches to
either aid musicians with composition or generate original compositions that are considered
to be aesthetically creative. In this chapter, we describe the specific challenges within this
area that we seek to address in our work, and we motivate why jazz is a useful domain for
our research.
to integrate all three components into a single system, as a talented human musician is able
to compose, improvise, and perform. While integrating these three abilities into one system
could present various challenges, doing so will enhance the generative music system’s ca-
pabilities and will enable it to more closely approximate a human musical performance. In
our view, an ideal AMI system must be able to: (1) autonomously, (2) communicate musical
information, (3) Perform alternative musical styles, and (4) take on different roles within a
musical ensemble.
2.1.1 Autonomy
We envision an ideal AMI system as an autonomous music generator that does not rely on
any human intervention. In contrast to most of the previously proposed interactive music
systems that collaborate with human musicians, an autonomous AMI system should be able
to perform in a musical setting without expecting any input from a human musician.
would also be the first to perform the main melody of the song and the first to assign musical
tasks to the accompanists. As an accompanist, it should support the leader and respond to
the leader’s requests. It should also provide compelling musical accompaniments according
to the specifications of the musical structure. Simulating musicians’ ability to trade between
roles has remained unexplored; therefore, the difficulty of doing so remains unknown.
generative music systems. However, most formal grammatical implementations are strongly
related to the structure of music and have failed to address problems relevant to musical
performance [64]. In spite of this, Sawyer argued that collaborative musical performance
and language are heavily connected as a means of communication. Sawyer’s work focused
on the observation of jazz improvisation and the similarities that its features share with ev-
eryday conversation. He proposed that everyday conversations are creatively improvised,
and neither the speaker nor the interlocutor can know for certain what the next line in the
conversation will be—both are guided through the conversation by facial or visual expres-
sions [64]. Sawyer uses the term "collaborative emergence" to describe the unpredictable
directions in which a jazz ensemble can go.
In this work, we adopt and extend Bastien and Hostager’s [20] case study as a model of
the desired behavior of an AMI system. This model must be customized to exhibit attributes
related to previously mentioned characteristics of musical performers, including autonomy,
musical communication, performing alternative musical styles, and taking on different roles
within a musical ensemble.
2.5 Summary
Generally, AMI is based on the notion of computational creativity [18]. The essence of the
field of computational creativity is to advance the development of artificial systems in order
to demonstrate creative behavior or produce original artifacts [68]. In essence, computa-
tional creativity such as MuMe endows machines with the capability to perform functional
musical tasks. Such musical tasks include combination, accompaniment, composition, and
interpretation [18], and existing systems that exhibit all of these characteristics are limited,
as we discuss in Chapter 3. We aim to create a system that achieves the above-mentioned
musical tasks, and enables our vision fo an ideal AMI system.
In this chapter, we described the different abilities that an ideal AMI system should
have and explained our decision to focus on enabling direct musical communication. To
enable the creation of ideal AMI systems, we aim to design and demonstrate a platform that
allows the different techniques of MuMe’s subareas to be integrated and that support direct
communication between musicians in an ensemble.
15
Chapter 3
Related Work
The community of researchers studying MuMe has grown over the years, with projects
like the Musebot Ensemble platform and research networks like Live Algorithms for Music
(LAM) seeking to encourage interest and integration in the context of musical creativity. As
a result, numerous papers have been published in the MuMe subareas of algorithmic com-
position, live algorithms, and musical multi-agent systems, as considered in the subsections
that follow. We will conclude our review of related research by summarizing recent efforts
to facilitate and promote integration across MuMe’s subareas, along with a section devoted
to commercial music software.
rules that will define the generative composition. Applying these rules to musical attributes
could be achieved using production rules from a Context Free Grammar (CFG). Perchy and
Sarria [75] developed a stochastic CFG that generates harmonic progression based upon J.S.
Bach’s rules of homophonic composition [75]. Additionally, a rule-based generative music
system was engineered by Wallis, Ingalls, Campana, et al. [76]. While Perchy and Sarria’s
system used CFG to generate musical sequences that provide ideas for musicians to use
in their compositions, the Wallis, Ingalls, Campana, et al. system focused on the research
of emotional music synthesis. Both studies are limited to the scope that involves real-time
music composition in multi-agent systems.
Some grammar-based methods have been combined with evolutionary algorithms, creat-
ing a compound approach to algorithmic composition. For instance, a work in grammatical
evolution in automatic composition was proposed by Puente, Alfonso, and Moreno [77].
The goal of this work is to provide an alternative to algorithmic composition, merging ge-
netic algorithms and grammar-based mechanisms to create music that sounds comparable to
that played by humans [77]. Despite the connections between human composition and al-
gorithmic composition, there are problems beyond the quality of the music being generated,
including a musician’s capacity to interchange roles during the production of music (e.g.,
musicians who play a solo right after playing and accompaniment).
Other approaches involve a variation of formal grammars. A Lindenmayer System (L-
system) is based on a parallel rewriting system. A definition of a rewriting system is de-
scribed by Prusinkiewicz and Lindenmayer in [78] as follows:
The main different between formal grammars and L-systems is defined by how they ap-
ply the production rules. While a formal grammar applies its rules in sequence, L-systems
apply their rules in parallel. McCormack [79] described an implementation of rewriting
rules over a representation of pitch, duration, and timbre, which are encoded as grammar
symbols and stored in strings. After simultaneously applying the production rules to these
strings, the result is translated to MIDI data, which allows the system to play the composition
through various synthesizers. In his paper, McCormack reported that in contrast to previ-
ous grammar-based methods, L-systems allow the development of complex music patterns
and the exploitation of notes’ attributes, such as velocity and volume. Furthermore, S LIP -
PERY CHICKEN is an opensource algorithmic composition system that combine different
techniques used in AC. This system implemented L-system in three ways: "as a straightfor-
ward cycling mechanism; as a simple L-System without transition; and as a Transitioning
L-system [80]." However, this methods does yet not fulfill the requirement that includes
musicians’ behaviors, such as negotiation and cooperation. Abdallah and Gold [81] offer a
detailed explanation of grammar-based models and Markov models, as well as a comparison
between them.
ing automatic fitness functions [8]. Tokui and Iba [83] provided a system in which prefer-
ence of the fitness function is defined implicitly by the user. The system combines genetic
algorithms with genetic programming, resulting in the generation of rhythm patterns. Al-
though the system promotes interaction between human and evolutionary algorithms through
a novel composition tool, the fitness values are given previously by a user. Therefore, sys-
tem autonomy is limited to its user. EAs are often combined with other AI methods given
the EAs reproductive nature. We will discuss a more hybrid system that combines Artificial
Neural Networks with EAs in the next subsection.
tempo, and they help the music synchronize more effectively and accurately with the musi-
cal partners. ANTESCOFO is an excellent example of computational music, wherein the
synchronization of the two elements (audio angent and tempo agent) offer impeccable re-
sults. The interesting thing about this system is that it is capable of predicting changes in
the structure of music and adapting to those changes in real time with efficiency and accu-
racy. The resultant music can be considered dynamic in nature, with the ability to create new
structures as and when required. It has the ability to produce enjoyable music by identifying
patterns and structures by itself. It is helpful in providing a sense of accomplishment to its
users.
Genjam, similar to ANTESCOFO, is also capable of performing with human musicians
[47]. The effects are similar to ANTESCOFO, with varying forms of musical creation.
Music can be created using these programs without employing actual performers since the
algorithm is able to follow programmed instructions in a systematic manner without being
monitored [71]. According to Biles [47], the most important feature of this system, is its
capability to trade fours and eights. Fours and eights are the parts of a performance in jazz
where soloists exchange and improvise musical ideas turn by turn in a way that mimics
verbal communication.
A characteristic of a live algorithms is that they are able to improvise just by following
the leader of the ensemble, without need for the leader to give instructions. Interaction
between musicians in a musical ensemble could be represented by the self-organization
components of swarms [92]. Alternatively, Harrald [93] discussed interactive improvisation
in musical ensembles using the game-theoretic concept of the Prisoner’s Dilemma. Finally,
members of the research network “Live Algorithms for Music” have provided a description
of live algorithms, wherein they classified different attributes a live algorithm must possess
[46]. Live algorithms develop automatic systems, capable of performing in coordinated
music settings and sharing the same privileges, abilities, and roles as human performers
[46]. Ixi Lang, previously mentioned in Chapter 1, is one such interpreted language, able to
produce musical events based on the instructions provided to it by typing in real time [10].
This practice is known as live music coding or live coding.
While we believe that the study of live algorithms is essential to the development of
artificial musical intelligence, it has thus far only addressed the challenges of building au-
tonomous systems that can perform together with humans. In contrast, our work seeks to
understand and address the challenge of having multiple autonomous systems perform to-
gether and without any reliance on human participation.
piece to attempt emotional profiling. Users can request a upbeat or down-tempo songs based
on their moods [99]. Finally, similar to AC, computer musical frameworks based on multi-
agent systems have been developed to stimulate human musical creativity. This provides
musicians with new ideas, which can be used to generate unique compositions. Navarro,
Corchado, and Demazeau’s [100] system assists composers in creating harmonies through
a multi-agent system based on virtual organization [100]. Despite the promising results
offered by these multi-agent systems, they lack the musicians’ ability to take multiple roles
during the performance of a song.
3.6 Summary
In this chapter, we have reviewed some AI approaches used in the three areas of MuMe: al-
gorithmic composition, live algorithms and musical multi-agent systems. First, we discussed
the advantages of different implementations of AC and how this area effectively expresses
the formalization of music composition. However, AC is not yet suitable to conquer the full
representation of musicians’ interactions. Secondly, we have described some of the work
in live algorithms and the limitations that these face regarding the performance of musical
agents without any human intervention. Next, we presented some previous contributions in
multi-agent systems and discussed some challenges regarding the coordination of a musical
ensemble. We then described The Musebot Ensemble platform as previous effort toward the
integration of MuMe’s subareas. Finally, we devoted a section to commercial tools provided
by the music and games industry. In the next chapter, we will explain in detail our proposed
approach, which aims to overcome some of the limitation discussed in this chapter.
22
23
Chapter 4
Proposed Approach
We seek to understand and build a system that demonstrates the cognitive abilities exhibited
by musicians in a musical ensemble. A musical ensemble is a group of musicians that
are able to coordinate through various communication modes during a live performance.
This ensemble interprets different parts from a musical score with instruments or vocals,
which are then transformed into a piece of music and delivered to an audience. To operate
effectively, the musical ensemble must work in a coordinated manner. Accurate decision
coordination and action management among musicians are what ultimately determine the
success or failure of the ensemble’s goal.
The Musebot Ensemble provides some of the mechanisms required to model a musical
ensemble; its concept of musical creativity (based on a group of agents representing a single
musical instrument) makes it suitable for our purpose to provide the AMI system with a high
of level autonomy. The Musebot Ensemble also offers a communication architecture which
enables the Musebot to receive and transmit information pertinent to the participation of each
musician in the ensemble. This architecture also provides each Musebot with the ability to
communicate certain elements of the musical composition, such as tempo. Therefore, this
software is a relevant piece of technology for the proposed AMI system.
Our goal is to extend the Musebot Ensemble platform in a way that supports direct com-
munication between Musebots while simultaneously offering a clear avenue for integrating
recent advancements in MuMe’s subareas. We have chosen to use the concept of a jazz
quartet as a case study for this work, since jazz is a genre of music that routinely requires
real-time coordination and improvisation from its players. Thus, it serves as a suitable and
convenient proving ground for the techniques of Algorithmic Composition, Live Algorithms,
and Musical Multiagent Systems. Furthermore, jazz performance (among humans) has been
studied from the perspective of social science due to its inherent social interactivity, pro-
viding us with a solid point of reference when considering whether and how autonomous
musicians can be made to play jazz. We will base our discussion on the work of Bastien and
Hostager [20], who presented a study of how four jazz musicians could coordinate their mu-
sical ideas without the benefit of rehearsal and without the use of sheet music. In their study,
the authors found that the musicians communicated through a variety of different means,
including visual, verbal, and non-verbal cues. We aim to model such communications be-
tween autonomous musical agents. To extend the Musebot Ensemble platform in a way that
supports direct communication between Musebots, we propose the use of a two-level agent
architecture in which each Musebot is itself comprised of multiple interacting agents. In
the remainder of this chapter, we will describe the general architecture of the AMI system,
as well as the functionalities of a Musebot as an individual performer and each of its com-
ponents. We will then address the different levels of interaction between the Musebots in
24 CHAPTER 4. PROPOSED APPROACH
the ensemble and include a brief explanation of the interaction protocols implemented to
support direct communication between the Musebots.
MUSICIAN
SYNCHRONIZER
MUSEBOT (SAX)
ENSEMBLE ASSISTANT
COMPOSER
MUSICIAN
SYNCHRONIZER
MUSEBOT (PIANO)
ENSEMBLE ASSISTANT
COMPOSER
Figure 4.1: An example of our Musebot agent architecture. Each Musebot represents an
autonomous musician and is a multiagent system composed of four agents: musician, com-
poser, synchronizer, and ensemble assistant.
our structure (Figure 4.1, left side), each Musebot represents a single autonomous musi-
cian, such as a saxophonist or a pianist. The software was designed to perform in a virtual
environment where, as a musical agent, it plays music along with an arbitrary number of fel-
low Musebots. A Musebot chooses its actions with the intention to achieve common goals
within the Musebot ensemble. For example, some of these goals are to support a soloist with
musical accompaniments or improvise original melodies as a soloist.
While the CADIA Musebot was created to perform as a single musical instrument, this
does not mean that it cannot perform as a variety of instruments at the same time. For
instance, a Musebot intended to play a drum set will need to play different instruments
simultaneously, since in the system, each component of a drum set (such as a ride or a snare)
is represented as an individual musical instrument.
Each Musebot is made up of four different sub-agents (musician, composer, synchro-
nizer, and ensemble assistant) which are designed to distribute the various tasks that a Muse-
bot should perform. Agents at the lower level share a common goal: to help the Musebot
perform appropriately as part of the Musebot Ensemble, including communicating and in-
teracting effectively with other Musebots. To achieve this goal, several actions are executed
by the sub-agents, based on the role that the Musebot is currently playing within the musical
ensemble.
We developed these sub-agents using the Java Agent Development Framework (JADE),
an agent-oriented framework designed in compliance with specifications from the Founda-
tion for Intelligent Physical Agents (FIPA). FIPA is an organization that provides an agent
communication language along with standards for several interaction protocols [104]. This
framework provides a variety of components:
• Agent Platform (AP): The AP is the virtual environment in which the agents are
launched. The AP runs under the computer operating system and can be executed
across multiple computers [105].
• Agent Management System (AMS): The AMS manages the operations of the AP;
all agents must be registered to the AMS. Additionally, this component is responsible
for the creation and deletion of every agent [105].
• Directory Facilitator (DF): The DF is an additional agent included with the AP that
provides “yellow pages” to the other agents [105]. It keeps a list of the identification
of all agents within the AP. An agent can register its services into the yellow pages
through the DF.
• Message Transport Service (MTS): The MTS is a component within the framework
that allows the agents to communicate through FIPA-ACL messages.
26 CHAPTER 4. PROPOSED APPROACH
In the following sections, we explain how we used JADE to develop the agents in our archi-
tecture.
wait Play
Request accompaniment Play intro
to be a leader
solo
Figure 4.2: The musician agent’s (MA’s) Finite State Machine (FSM).
FSM behaviour mentioned in the previous section. Some child behaviours are composed of
one or more sub-behaviours, meaning that sometimes a single state consists of two or three
layers of behaviours, as shown in Figure 4.3. Such structures help the agent handle different
types of computations, including computations with tasks that are either programmed to
be executed only once or in cycles. Having this hierarchy of behaviours managed by the
MA makes it high in complexity. However, it is a suitable approach to simulate the actions
taken by a music performer because they can be distributed in different musical tasks. After
the “start,” the MA registers its service to the DF, followed by a search of every member
of the ensemble. There must be at least four agents registered in the ensemble in order to
advance to the following state. Once the MA is placed into the “Search musicians” state
and has successfully found all the musicians’ partners, it will have to decide to take either
an accompanist or a leader role. This decision currently depends on a rule pre-established
by an external user. If the MA happens to be the leader, it will take the transition that leads
to the “Leader/Soloist” state, otherwise it will be directed to the “Accompanist” state. We
model a musician agent being the leader or an accompanist using separate musician agents.
Soloist Musician Agent. Being a soloist in the Musebot Ensemble is equivalent to being
the leader of the group. The MA with a leadership position will be the one coordinating
4.1. GENERAL ARCHITECTURE 27
parent
Layer 1 Composite Behaviour
Cycle Behaviour
Layer 2
Play Intro state
parent
children children
the musical activities as well as deciding upon and sharing the structure of the song to be
played, which is currently set prior to the performance by an external user. Once the MA is
placed in the “Leader/Soloist” state, it will check if this is the very first time passing by this
state. If affirmative, the transition will follow to the “Get song’s structure” state. Here, the
MA will take the structure of the song (an object encoding musical elements such as tempo,
time signature, and form of the song) and a list of chords, which comprise each section of
the form (see Table 4.1). In the current proposed system, we only support two sections: “A
and B.”
Table 4.1: This table represents the properties of the song’s structure object. The tempo and
time signature’s numerator and denominator are stored as integer values. The form stores a
string of characters, and the sections of the form store a list of musical chords.
Tempo 120
Time Numerator 4
Signature Denominator 4
Section A Em7, A7, Dm7, G7
Form AAB
Section B CM7, CM7
After retrieving this information, the MA will share it with the other members of the
ensemble, whereupon confirmation is received from each member. The MA will continue
to the next state and negotiate the introduction to the song by requesting another Musebot
to play it. If every Musebot refuses or fails to play the introduction, the leader will continue
trying to find someone that wants to cooperate. (We address the mechanisms of this nego-
tiation in Section 4.2.1). From there, the MA will remain ready to improvise a solo after
the completion of the introduction of the song. Finally, after playing a number of sections
28 CHAPTER 4. PROPOSED APPROACH
(relying upon the form in the structure of the song), the MA will pass leadership to another
musician, supporting the new soloist from then on as an accompanist.
Accompanist Musician Agent. A MA designed as an accompanist would have a largely
passive behavior; it would respond to and support the soloist’s requests. From the “Accom-
panist” state (see Figure 4.2), the MA will directly receive the structure of the song provided
by the leader of the ensemble. This will then transition to the “Play intro” state, where the
MA will wait until the leader sends a petition to play the introduction. The accompanist
could accept or reject the request, depending on the simulation computing its decision. In
case several accompanists accept to play the introduction, the leader will choose only the
first one that has accepted to play and will reject the rest. Next, it will follow the transition
to the "Play accompaniment" state; in this state, it will play an accompaniment to the song,
following the given structure. Finally, the accompanist MA will be directed to the “Wait to
be a leader” state, where it will remain waiting for a request to be the succeeding leader of
the Musebot Ensemble. A fragment from the musician agent FSM is illustrated in Figure
4.4. The cycle involving four states (“Request Solo,” “Pass the Leadership,” “Request ac-
companiment,” and “Wait to be a leader”) allows the system perform multiple roles in the
AMI system.
Wait Play
Request Play intro
to be a leader accompaniment
solo
Once the leader is ready to pass the lead, the accompanist will respond to this request
by either accepting or rejecting it. If the accompanist accepts, it will take the transition to
the “Request solo” state and automatically become the leader of the ensemble. Comparably,
the soloist, after passing the lead, continues to the “Request accompaniment” state, where it
will play the accompaniment to the song and therefore, change its role from a soloist to an
accompanist.
Although the “Request accompaniment” state has similar functionalities as the “Play
accompaniment” state, they are different; only “Play accompaniment” is concerned with
calculations related to the introduction of the song since this follows after the "play intro"
state. Therefore, to decrease the complexity of returning to the “Play accompaniment” state,
we decided to add a state that removes any computation related to the introduction of the
song.
ment that it is playing. For instance, a Musebot playing a drums solo will compose rhythm
patterns, while a Musebot playing piano accompaniment will likely play the chord progres-
sion of the song.
The CA’s behaviour is based on three FSMs: the intro FSM, the accompaniment FSM,
and the solo FSM. These three FSMs run simultaneously once the CA is launched by
the AMS.
Intro FSM. The intro FSM (see Figure 4.5) provides the mechanisms to compose the
introduction of the song. It begins in the “Wait for request” state; here, after the CA receives
a request from the MA, it will take the transition leading to the “Compose intro” state.
This state will apply methods of algorithmic composition to generate the introduction to the
song. Once the composition is completed, the CA will pass into the “Play intro” state, where
it will take the composition and play it at run-time. The CA then goes to the “End” state,
completing the musical task. This is the only FSM of the CA that runs just once during the
performance of the song.
Accompaniment FSM. The accompaniment FSM is responsible for composing and per-
forming the accompaniment (see Figure 4.6). Like the intro FSM, the process begins when
the MA requests the composition of an accompaniment. The request could happen after the
end of an introduction; in this situation, the CA will follow the transition to the “Confirm”
state. This state informs the MA that the petition was successfully processed. The only
transition that follows the “Confirm” state leads to the “Compose” state, where the accom-
paniment will be composed. Afterward, it will be played in the “Play” state. However, if
Play End
the MA requests an accompaniment after playing a solo, the transition will continue to the
30 CHAPTER 4. PROPOSED APPROACH
“Request info to sync” state, where a coordination with the Synchronizer Agent will occur
(see Section 4.1.1.3). The CA then passes to the “Get info from sync” state and retrieves
information concerning the current section played in the song. It also sends confirmation to
the MA that the process has been executed. Next, as seen in Figure 4.6, the CA goes into
the “Compose” state.
It is important to address the relation between the “Compose” state and the “Play” state,
which allows the Musebot to perform at real time. While the CA is playing a determined
section from the form, the “Compose” state is preparing the next section to be played by the
CA, providing enough time to for the “Play” state to perform each section of the song. This
cycle continues until the MA is requested to play a solo.
Solo FSM. The solo FSM is analogous to the accompaniment FSM (see Figure 4.7).
It follows the same principles as the accompaniment FSM. However, the solo FSM is dis-
tinguished by the procedure applied to the compositions. The solo FSM uses methods re-
lated to stochastic algorithms, providing it the ability to improvise. The compositions are
constructed using “jMusic,” a Java library that encodes music as a symbolic representation
similar to Common Practice Notation (CPN), and played using the JAVA MIDI sound bank.
This agent provides a point of integration for recent advances in Algorithmic Composition.
Afterward, the composition will be played in the “Play” state.
Play End
Most of the functionalities of the SA are strongly related to the communication and
interaction protocols proposed in this dissertation. Therefore, we will discuss the operations
performed by this agent in detail later in this chapter.
Initiator Responder
proposal
refuse
accept proposal
reject proposal
failure
inform done
Figure 4.8: One of the agent interaction protocols that we implemented to support commu-
nication in our agent architecture (the FIPA Contract Net Interaction Protocol).
While this example describes an interaction between agents at the top level of the ar-
chitecture (e.g., a saxophonist interacting with a bassist, drummer, and pianist), other con-
versations are carried out internally by the agents at the lower level. There is a constant
communication between the musician agent and the synchronizer agent each time a piece
of the song is planned to be played. For instance, the SA stores information about sections
being played in the progression of the song, which allows each Musebot to synchronize the
transition of the introduction to the accompaniment. The MA needs to access information
about the introduction, so the MA can calculate for how long the introduction will be played
and how much time it has left to compose and play the accompaniment. We use the FIPA
Query interactive protocol to do this. This protocol follows a sequence of messages started
by the initiator sending an FIPA-ACL message with "QUERY_IF" as a performative (a com-
ponent of speech act theory, which uses verbs to represent agents’ actions). The responder
will handle this message with either a confirmation (in the case that it has such information)
or a refusal (in the case that it ignores the information).
4.3. DEVELOPMENT PROCESS 33
We used jMusic through the Composer Agent to replace the musical composition com-
ponents of the previous Musebot (see Section 4.1.1.2). In contrast with previous methods of
algorithmic composition, we did not require any pre-established melodies to generate both
accompaniments and solos. Instead, we used different rhythm patterns stored in arrays that
were randomly chosen by the algorithms to generate the musical compositions. This method
is described in [42] as a “random walk.” Finally, the decision to develop the CADIA Muse-
bot as a set of four different sub-agents allowed us to distribute the agents’ multiple musical
tasks and reduce the CADIA Musebot’s complexity. The two-level architecture (see Figure
4.1) provided an opportunity to integrate advances in Algorithmic Composition and Live
Algorithms.
4.4 Summary
In this chapter, we discussed our proposed AMI system. We addressed the different com-
ponents that provide the system with functionalities exhibited by human music performers,
such as composition, improvisation, and performance. Furthermore, we proposed the use
of interactive protocols to extend the communication architecture of the Musebot ensemble
and provided examples of two interactive protocols used to model characteristics of Bastien
and Hostager’s observations of a (human) jazz quartet [20]. We also discussed in detail the
mechanisms that allow the Musebots to perform different roles in the ensemble, as well as
the importance of these roles to coordinating their musical tasks. We explained how the
components of our Musebots enable the integration of advances in Algorithmic Composi-
tion and Live Algorithms. In the next chapter, we will evaluate the system and determine
whether it constitutes is a relevant approach for building an ideal AMI system.
35
Chapter 5
Evaluation
In this chapter, we evaluate the proposed AMI system by comparing its operation across
three simulations of Bastien and Hostager’s case study [20] of a jazz quartet. We review the
different abilities of an ideal AMI system that we discussed in Chapter 2 and assess if they
are present in the proposed system.
system, we used different input values to model three different songs, each of which the sys-
tem can perform on demand. The remainder of this section will describe the communicative
events that happen during the progression of each song. These communicative events and
other actions are represented in the results by the abbreviations that we enumerate in Table
5.1.
Table 5.1: This table enumerates each agent’s possible actions during a song’s progression.
The actions are classified into communicative behaviours and musical behaviours.
5.1.2 Song 1
In jazz, a song is based on a chord progression, which is a sequence of musical chords
that support the song’s melody and guide improvised solos. The chord progression is often
divided into sections, which together represent the "form" of the song. For example, consider
a song of twenty-four measures where the first eight measures are the same as the next eight,
but the last eight are different. This song has three eight-measure sections with the form
AAB: Section A is a sequence of chords that will be repeated a second time, followed by
a different sequence of chords represented by Section B. When performing a jazz song,
"playing a chorus" means playing one time through every chord in the song’s form. A jazz
performance typically involves several choruses played one after another.
The Song 1 is based on a common jazz chord progression. Four Musebots ("sax", "pi-
ano","bass", and "drums") were set up to perform. The agent playing the saxophone was
designated by a user to be the leader. The leader was provided with several song attributes,
including tempo, song structure, time signature, and introduction length.
1. The structure of the song is based on the form AAB. The set of chords Em7 , A7 , Dm7 ,
G7 are contained in section A, while the set of chords CM 7 , CM 7 represent section
B.
2. The tempo of 120 bpm.
3. The introduction will be six measures long.
4. The time signature of 4/4.
5.1. TESTING AND SIMULATIONS 37
The four Musebots were launched sequentially, generating a musical composition, which
readers can access through the following link :
https://tinyurl.com/simulationsong1
5.1.2.1 Results
Tables 5.2-5.8 show the roles of each musician during the progression of the song, as well
as the different actions performed by the agents.
Table 5.2: Introduction of Song 1. The leader waits while the piano plays an introduction,
and all three accompanists compose their parts.
Table 5.3: First Chorus (AAB) of Song 1. The leader (sax) waits until the end of the first
section, because it needs to give a time to the CA to find out the current section (First A)
being played by the accompanists. The leader then starts to play the solo at the beginning of
the second section A. Finally at section B, the "sax" passes the leadership to the "bass". All
three accompanists play their parts during this chorus.
Table 5.4: Second Chorus (AAB) of Song 1. The new leader (piano), plays a solo in each
section of this chorus, and passes the leadership to the "bass" at the last section. The rest of
the members play the accompaniments.
Table 5.5: Third Chorus (AAB) of Song 1. The "bass" takes its turn to be the leader and
play a solo while the accompanists play their parts. At section B of this chorus, the "drums"
accept to be the new leader of the ensemble.
Table 5.6: Fourth Chorus (AAB) of Song 1. The new leader (drums) plays a solo during the
entire chorus, and the accompanists support this playing their parts.
Table 5.7: Fifth Chorus (AAB) of Song 1. During this chorus, the "drums" continue playing
a solo until the end of the second section A. At this moment of the song, the "sax" take
back the leadership and the "drums" return to play the accompaniments, while the rest of the
agents ("bass" and "piano") plays their parts.
Table 5.8: Sixth Chorus (AAB) of Song 1. This is the last chorus of Song 1, the "sax" play a
solo for a single section and then pass the leadership to the "piano," which continue playing
the next solo during the rest of the chorus.
5.1.2.2 Analysis
We can see in Song 1 how the simulation replicates the basic patterns in the jazz process
described by Bastien and Hostager. It begins with “piano” playing the introduction, followed
by the first soloist change, which occurs during the shift from the first chorus to the second
chorus when “sax” requests “piano” to play the next solo (Tables 5.3-5.4). The next change
occurs at the transition from the second chorus to the third chorus when “piano” passes the
leadership to “bass” (Tables 5.4-5.5). Next, “drums” takes the next solo at the beginning of
the fourth chorus (Table 5.6). Finally, the lead returns to “sax” at the end of the fifth chorus
(Table 5.7).
5.1.3 Song 2
In this simulation the system performed a twelve measure blues in C major. We only used
three agents ("sax", "piano" and "drums"). The agent “sax” was designated to be the leader
of the ensemble. Furthermore, the leader was provided with the following information.
1. The form of the song, based on a single section (A), which contains the following
sequence of chords: C 7 , F 7 , C 7 , C 7 , F 7 , F 7 , C 7 , C 7 , G7 , F 7 , C 7 , C 7 .
5.1. TESTING AND SIMULATIONS 39
5.1.3.1 Results
Tables 5.9-5.18 show the roles of each musician during the progression of the song, as well
as the different actions performed by the agents.
Table 5.9: Introduction of Song 2. The leader ("sax") waits for the end of the introduction,
which is played by the "piano" while all the accompanists compose their parts.
Table 5.10: First Chorus (A) of Song 2. The leader ("sax") compose the solo and waits for
the end of the chorus, while the accompanists play their parts
Table 5.11: Second Chorus (A) of Song 2. The "sax" start to play a solo and the rest of the
members of the ensemble play the accompaniments.
Table 5.12: Third Chorus (A) of Song 2. The "sax" ends playing the solo at second fifty-five
of section A and pass the leadership to the "piano". The "piano" and the "drums" play the
accompaniments during the entire chorus.
Table 5.13: Fourth Chorus (A) of Song 2. After the "piano" accepted the leadership in
the previous chorus, it starts to play the solo at the beginning of section A. The "sax" and
"drums" support the new soloist with the accompaniments.
Table 5.14: Fifth Chorus (A) of Song 2. The leader ("piano") continues playing the solo
during this chorus as well as the accompaniments play their parts.
Table 5.15: Sixth Chorus (A) of Song 2. The "piano" pass the leadership to the "drums" and
ends its solo when section A finished. The "drums" then accept the leadership and end its
part while the "sax" continue playing the accompaniment.
Table 5.16: Seventh Chorus (A) of Song 2. The new leader ("drums") starts to play a solo.
The "piano" has become an accompanist and support the "drums" along with the "sax".
Table 5.17: Eighth Chorus (A) of Song 2. The accompanists "sax" and "piano" continues
supporting the soloist. The leader plays a section of inventive solo.
Table 5.18: Ninth Chorus (A) of Song 2. The leader ("drum") continues improvising a solo
during this chorus, while the other agents play the accompaniments.
Table 5.19: Tenth Chorus (A) of Song 2. The "drums" play its last section of improvised
solo and pass the leadership to the "sax". The "sax" accepts the leadership and plays its last
accompaniment in the song, while the piano continues supporting the leader.
Table 5.20: Eleventh Chorus (A) of Song 2. The leader ("sax") compose a solo while the
rest of the agents play the accompaniments.
5.1.3.2 Analysis
Similarly to Song 1, Song 2 begins with an introduction played by the piano. However,
this introduction is seven seconds shorter than that of Song 1 and the solos played in each
chorus are longer than those of Song 1. For example, the first solo played by “sax” in Song
2 is twenty one seconds longer than the first solo played in Song 1. The different between
the length of the solos of these songs is caused by the numbers of chords played in each
chorus. Whereas the choruses of Song 1 consist of 10 chords, the choruses of Song 2 are
composed of twelve chords. The soloists of Song 2 thus play two additional chords than the
soloists of Song 1. Furthermore, “bass” was not included in Song 2. Despite this, the level of
communication remained the same, with each agent taking turns to play a solo, sequentially
beginning with "sax" and ending with the "drums".
5.1.4 Song 3
In this simulation, the proposed system performed "Sunday," a popular jazz song performed
by the jazz quartet in Bastien and Hostager’s case study [20]. The agent “sax” was once
again designated to be the first agent leading the ensemble and was provided with the fol-
lowing song attributes.
1. The form of the song: AABA. Section A of the form is represented by the following
sequence of chords: C, C, C 7 , G7 , A7 , Dm7 , G7 , C, C. Section B of the form is
represented by the following sequence of chords: E 7 , E 7 , A7 , A7 , D7 , D7 , G7 , G7 .
The four Musebots were launched sequentially, generating a musical composition. Readers
can access this with the following link:
https://tinyurl.com/simulationsong3.
5.1.4.1 Results
Tables 5.21-5.25 show the roles of each musician during the progression of the song and the
different actions performed by the agents.
Table 5.21: Introduction of Song 3. The leader ("sax") waits for the end of the introduction,
which is played by the "piano" while all the accompanists compose their parts.
Table 5.22: First Chorus (AABA) of Song 3. At the first section, the "sax" composes a solo
and waits until this section is finished. The leader later starts to play the solo at the beginning
of the second section. Next, at section B the "sax" pass the leadership to the "piano" and
afterwards become an accompanist playing its part from the beginning of the last section, at
that moment the "piano" becomes the new leader and starts to play a solo. The "bass" and
"drums" play their parts during the entire chorus without any change in their roles.
Table 5.23: Second Chorus (AABA) of Song 3. In this chorus, the "piano" play a solo during
the first two sections, afterward it passes the leadership to the "sax" and then becomes an
accompanist. The "sax" accept the leadership during the second section and plays a solo
during the next two sections (B and A) after that, the "sax" passes the leadership back to the
"piano". The "bass" and "drums" continue this chorus without any change in their roles.
Table 5.24: Third Chorus (AABA) of song 3. The "piano" plays a solo during the first three
sections, the leader ("piano") then becomes an accompanist and lets the "bass" change into
the new leader of the ensemble. The "bass" starts to play a solo at the beginning of the last
section, while the "sax" and the "drums" play their parts as accompanists.
Table 5.25: Fourth Chorus (AABA) of Song 3. The leader ("bass") plays a solo during the
first two sections. The leader later passes the leadership to the "drums" and subsequently
changes its role to an accompanist. The "drums" accept to be the new leader during the
second section and then play a solo during the rest of the chorus. The "sax" and the "piano"
continue this chorus without any changes in their roles.
5.1.4.2 Analysis
Song 3 shows a different pattern regarding the communication behaviour, specifically in the
second chorus, when “piano” passed the leadership to “sax” instead of passing it to “bass,”
like in the first two simulations (Table 5.23). Moreover, after “sax” played its second solo, it
returned the leadership to “piano,” which performed its second solo and decided to pass the
leadership to “bass” (Table 5.24). This characteristic of the communication behaviour was
generated by a modification in the decision simulator of the MA’s "Request solo" behaviour.
5.2 Summary
In this chapter, we evaluated the proposed AMI system. We presented the results of three
different simulations, each arising from different input values. These simulations are clas-
sified in the chapter as Song 1, Song 2, and Song 3. The results of these simulations are
described through various tables in Section 5.1.
From the results, we can see that the agents communicate with each other during dif-
ferent moments of the song and that each change happening in the song is the result of
communicative acts between the agents. This reveals the high degree of autonomy of each
Musebot during the progression of the song. This behaviour complies with the first two
abilities of our vision of an ideal AMI system (see Section 2.2).
We can see how the different songs’ attributes produce different outcomes, specifically
affecting the length of the solos and the style of the music. For instance, solos played in
Song 2 are longer than those played in Song 1. The possibility of setting the system with
song structures used to represent different genres of music allows our system to support
44 CHAPTER 5. EVALUATION
the performance of diverse musical styles (the third ability of our vision of an ideal AMI
system). Furthermore, the results of these simulations show how agents are able to change
roles during the progression of the song, enabling them to either lead the ensemble or support
the leader with accompanying compositions. Therefore, we have successfully implemented
the four abilities described in our vision of an ideal AMI system.
45
Chapter 6
Artificial Music Intelligence (AMI) involves a combination of different research areas, in-
cluding AI, musicology, and mathematics, among others. In this dissertation, we proposed
an AMI system that integrates some advances in the subareas of MuMe. We reviewed several
generative music systems that have provided promising results in these subareas, but found
all of them to lack certain necessary attributes of the ideal AMI system that we envision.
When performing, an AMI system must be autonomous (e.g., independent of human
intervention during performance), communicative (e.g., exchange musical ideas with the
members of an ensemble), musically diverse (e.g., play different styles of music), and adapt-
able to perform either as a leader or as an accompanist.
To fulfill each these capacities, we chose to extend the previous MuMe work of the Muse-
bot Ensemble platform. Certain mechanisms of the Musebot Ensemble platform (e.g., the
musical multi-agent system architecture) helped us to achieve our desire of integrating algo-
rithmic composition, live algorithms, and musical multi-agent systems. However, different
adjustments to the platform were needed to achieve the requirements stated in our problem
formulation, such as maintaining coordination between Musebots and ensuring their aware-
ness of what the rest of the members in the ensemble are doing during the progression of
a song. To do so, we enhanced the communication mechanisms of the Musebot Ensemble
platform.
The Musebot Ensemble platform’s original methods of communication required the im-
plementation of a “musebot conductor,” the main objective of which is to initiate the per-
formance of the ensemble and pass messages with musical parameters between Musebots to
coordinate their musical activities. The Musebot conductor needed to be run or the Musebot
Ensemble would not be able to perform. The only direct communication supported by each
Musebot was limited to the Musebot Conductor.
by sending a message to the Musebots containing a parameter for tempo. Furthermore, the
agents in the ensemble are capable of performing even if the Musebot conductor is not run-
ning, which we achieved by implementing standardized protocols (the FIPA Contract Net
Interaction Protocol).
Bown, Carey, and Eigenfeldt [18] claim that there is no need for conversations between
the agents in the Musebot Ensemble, as everything can be handled via the passing of mes-
sages through the conductor. However, conversations based on interactive protocols allow
Musebots to negotiate, coordinate, and plan autonomously in a peer-to-peer fashion, which
is a closer representation of how human musicians perform. Additionally, implementing
this interaction protocol allows the agents to speak the same communication language (the
FIPA-ACL), which provides the system with considerable flexibility when the agents need to
share information. This is useful, for example, when a leader wants to pass a song structure
composed of different parameters, including one or two lists of chords. These parameters
can be encoded and sent in a single message by a leader to its interlocutor. The interlocu-
tor (the accompanist) will receive and decode this information in number of simple steps.
The communication is quick and clean considering the amount of information that is pass-
ing through a single message. Furthermore, while the original functioning of the Musebot
Ensemble passes information continually during an entire performance, our communication
architecture transmits information only at the precise moment when it is required.
Allowing the system to share these song structures once before a performance not only
simplifies the communication architecture, but also provides the system with the ability to
perform different musical styles. While we based our evaluation on the simulation of jazz
compositions, other genres of music could be generated by providing parameters related
to a specific musical style in the structure of a song, as well as by implementing certain
musical algorithms in the CA (e.g., a new implementation of Algorithmic Composition in
the behaviour represented by the "Compose" state (see Section 4.1.1.2). Such an effort
remains as a future work.
The second benefit offered by our architecture is that it is able to support cross-compatibility
with different implementations of the platform. For example, given an ensemble made up of
Musebots defined using our architecture, the addition of an arbitrary other Musebot into the
ensemble (i.e., one which does not implement our architecture) should result in as viable a
performance as the Musebot Ensemble platform allows. However, since the new Musebot’s
abilities to communicate with the others would be reduced (because it lacks our architec-
ture), the resulting ensemble performance might be impaired. Testing this hypothesis with a
variety of different Musebots remains a task for future work.
The third benefit of our architecture is that the multi-agent design of each Musebot al-
lows for convenient points of integration with recent advances in both live algorithms (in
the synchronizer agent) and algorithmic composition (in the composer agent). Furthermore,
Blackwell, Bown, and Young identified four important behaviours in a Live Algorithm:
"shadowing, mirroring, coupling and negotiation" [46]. They stated that while negotiation
has been hard to achieve in Live Algorithms, implementing this behaviour could provide
strong creative collaboration in autonomous generative music systems. They have asserted
that “systems which are capable of successful negotiation are the goal for Live Algorithms
research" [46]. Therefore, we believe that the mechanisms that allow the collaborative be-
haviours in our proposed AMI system offer a significant benefit to further research direc-
tions in Live Algorithms. In addition to the precedents set by prior work, our decision to
model each Musebot as a multi-agent system has been supported in the field of neuroscience.
Specifically, Zatorre, Chen, and Penhune [108] measured the activity of different areas of the
brain during music performance and found relationships between motor function and audi-
6.1. BENEFITS AND LIMITATIONS 47
tory interaction. While we do not claim that the specific agents in our architecture represent
an optimal design or mimic the true operations of the human brain, we have found that utility
can be gained from having a multi-agent representation for each autonomous musician.
Designing each Musebot based on a multi-agent system, however, resulted in a number
of challenges. First, since each Musebot in our system was represented by four agents (see
Figure 4.1), simulating a jazz quartet meant simultaneously running twenty agents. Each
agent was controlling its own thread, with each thread performing a considerable number of
behaviours (within the framework, each behaviour is implemented in a java class that runs
in a continuous loop). If not treated carefully, this can be extremely CPU consuming. For
example, each state in the MA’s FSM (see Figure 4.2) runs a loop until some event (e.g.,
receiving a message from another agent) triggers a transition to a following state. We put
the agent’s thread to sleep when no events were available to avoid wasting CPU time.
We tested the system with four Musebots on a typical personal computer, without any
significant increase on the CPU usage. We expect that executing simulations with a higher
number of Musebots (e.g., big band jazz) on a single computer will not substantially affect
the performance of the system with each additional Musebot. However, this hypothesis was
not evaluated in this dissertation. In the future, we hope to assess the system with more than
four agents.
tion ?
est sec
equ
2. R
nA
4. Provide sectio
ctio
ction ?
ti o n A
se
ide
3. Prov
est se
ec
ide s
equ
rov
nA
R
5. P
Form: AAB
1.
Figure 6.1: Synchronization process of two agents in the Musebot Ensemble. The Musebot
Bass comes from being a leader and is ready to support the Musebot Piano, but it will need
to request its Synchronizer Agent to obtain the current section being played by the Musebot
Piano.
With respect to the number of Musebots running in the ensemble, certain synchronization
issues were discovered when the system was running with only two agents. The origin of
the synchronization problems occurred when a Musebot that had been leading the ensemble
finished its solo and prepared to become an accompanist. For example, consider the process
48 CHAPTER 6. DISCUSSION AND FUTURE WORK
shown in Figure 6.1. First, the bass requests the current section being played from its own SA
(see step 1 in Figure 6.1). Second, the bass’ SA requests this information from the piano’s
SA (see step 2 in Figure 6.1). Third, the piano’s SA receives the current section and provides
this information to the bass’ SA (see step 3 in Figure 6.1). Finally, the bass’ SA passes the
current section to the accompanist (see step 4 in Figure 6.1). From the moment that the
bass received this information, it could then calculate the time left of the current section
by using the parameters encoded in the content of the message (including the length of the
section and the elapsed time from the moment that the piano started to play the section, at the
moment that the bass received the information). It could then use the time left to compose
the accompaniment and prepare to join the soloist at the beginning of the following section.
However, the remaining time of the current section played by the soloist could at times be
too short, and the accompanist would not have enough time to play the accompaniment at
the right moment. Thus, by the time the leader finished its solo and passed leadership back
to the accompanist, both agents would ignore the current section of the song, which would
lead to infinite loop wherein both asked each other the current section of the song without
receiving a correct answer.
Such issues reveal the complex nature of developing a generative music system that per-
forms in real time. Numerous related works have avoided such problems by saving their
generated compositions into files that can be listened to after a simulation has finished.
However, we dealt with this problem by adding a third Musebot to the ensemble. An en-
semble with three Musebots will always have an agent that knows the current section of the
song, which removes the uncertainty created in the two-Musebot ensemble. An alternative
solution to this issue would be to compose and play smaller groups of measures instead of
measures in complete sections. This approach remains to be tested in future work.
While the interactive protocols proposed in this dissertation offer many benefits, there
were certain cases in which they could not be implemented exactly according to their speci-
fication. For instance, sometimes the agents needed to put an ongoing conversation on hold
to request information from another agent that was needed to complete a musical task. The
problem with interactive protocols such as FIPA Contract Net and FIPA Query is that it is
not possible to interrupt a sequence of messages without experiencing undesirable results.
In such cases, we replaced the interactive protocols with custom protocols that allowed the
agents to maintain multiple conversations simultaneously. Figure 6.2 shows an example of a
custom protocol in a finite state machine. In this example, before the Composer Agent (CA)
could confirm with the Musician Agent (MA) that it was to compose a solo, the CA needed
to receive the section of the song from the Synchronization Agent (SA) before going into
the “Compose" state. As we can see in this example, the CA is having a conversation with
the MA and the SA simultaneously. However, one disadvantage of using a custom protocol
is that we were not able to catch possible communication problems within the network. For
example, the speaker does not get a notification when the interlocutor fails to respond.
A common challenge experienced by researchers of MuMe concerns the evaluation of
the effectiveness of their music generation systems. Delgado, Fajardo, and Molina-Solana
[99] state that the assessment of any musical work is a complex task based on subjective
individual opinions. MuMe has devoted an area of research that specifically studies prob-
lems related to the evaluation of computational creativity. Often people will find value in
a generative music system based on the quality of its musical compositions and their simi-
larity to a human musician’s work. However, in this dissertation, we were not interested in
generating musical compositions that are indistinguishable from those of humans, but rather
focused on modeling aspects of musicians’ behaviors in a collaborative environment. As we
demonstrated in Chapter 5, our proposed AMI system succeeded in this task.
6.2. FUTURE WORK 49
MUSEBOT
A
to C
Receive rm
Wait for the Confirm to MA Info
confirmation the
section
Compose
END
Play
END
Figure 6.2: Interaction between three internal agents through custom protocols.
Chapter 7
Conclusion
Understanding the variety of human actions that lead to creative behaviors is a complicated
task, yet the study of creative behavior has gained the attention of artists and programmers
alike. Together, they hope to create technological artifacts and artificial systems that can
autonomously act in disciplines that seem to require high levels of creative intelligence.
In this dissertation, we studied AMI as a medium for integrating current advances in
MuMe. First, we outlined our vision of an ideal AMI system and explained how it must
be capable of four fundamental abilities: autonomy, musical communication, performance
of alternative musical styles, and the performance of multiple roles. Second, we proposed
an approach for enabling direct communication between autonomous musical agents from
the Musebot Ensemble platform. Finally, we situated our work within the musical genre
of jazz and showed how our approach can mimic certain human social behaviors (such as
communicative modes) in the context of a jazz quartet, through our analysis of three different
simulations.
Two simulations based on a jazz quartet and one based on a jazz trio were executed
using the proposed system. Different musical parameters were put into the system prior to
each simulation, generating three different collaborative compositions. The main novelty
of our extended communication architecture of the Musebot Ensemble is the agents’ ability
to interact without any direct human intervention. Furthermore, as evidenced by the results
of our evaluation, we have emulated similar communicative behaviors to those described in
Bastien and Hostager’s work [20].
Our results show how the FIPA interactive protocols and the custom protocols are com-
parable to the cues that jazz musicians use during performances to indicate changes in solos.
However, in contrast to human improvisation, computers can easily plan and calculate the
exact duration of the fragment of a song as well as pre-plan future interactions.
In this dissertation, we have summarized the current state of the advances of MuMe
and explored the integration of algorithmic composition, live algorithms, and musical multi-
agent systems. Despite the minor limitations of our presented approach, we believe that
we have presented a valuable AMI system that meets the criteria described in our problem
formulation. We hope that it can be used as a tool for future research in the area of MuMe.
52
53
Bibliography
[1] N. M. Collins, “Towards autonomous agents for live computer music: Realtime ma-
chine listening and interactive music systems”, PhD thesis, University of Cambridge,
2006.
[2] L. A. Hiller, “Computer music”, Scientific American, vol. 201, pp. 109–121, 1959.
[3] D. Cope, “Computer modeling of musical intelligence in EMI”, Computer Music
Journal, vol. 16, no. 2, pp. 69–83, 1992.
[4] E. R. Miranda, Readings in music and artificial intelligence. Routledge, 2013, vol. 20.
[5] T. R. Besold, M. Schorlemmer, A. Smaill, et al., Computational creativity research:
towards creative machines. Springer, 2015.
[6] C. Roads, “Research in music and artificial intelligence”, ACM Computing Surveys
(CSUR), vol. 17, no. 2, pp. 163–190, 1985.
[7] A. Eigenfeldt and O. Bown, Eds., Proceedings of the 1st International Workshop on
Musical Metacreation (MUME 2012), AAAI Press, 2012.
[8] J. D. Fernández and F. Vico, “AI methods in algorithmic composition: A compre-
hensive survey”, Journal of Artificial Intelligence Research, vol. 48, pp. 513–582,
2013.
[9] H. Taube, “Stella: Persistent score representation and score editing in common mu-
sic”, Computer Music Journal, vol. 17, no. 4, pp. 38–50, 1993.
[10] T. Magnusson, “ixi lang: a SuperCollider parasite for live coding”, in Proceedings
of International Computer Music Conference, University of Huddersfield, 2011,
pp. 503–506.
[11] ——, “Algorithms as scores: Coding live music”, Leonardo Music Journal, vol. 21,
pp. 19–23, 2011.
[12] J. Cage, Imaginary landscape, no. 1: for records of constant and variable frequency,
large Chinese cymbal and string piano, 1. Henmar Press, 1960.
[13] T. Blackwell, “Live algorithms”, in Dagstuhl Seminar Proceedings, Schloss Dagstuhl-
Leibniz-Zentrum für Informatik, 2009.
[14] D. Murray-Rust, A. Smaill, and M. Edwards, “MAMA: An architecture for interac-
tive musical agents”, Frontiers in Artificial Intelligence and Applications, vol. 141,
p. 36, 2006.
[15] R. D. Wulfhorst, L. Nakayama, and R. M. Vicari, “A multiagent approach for musi-
cal interactive systems”, in Proceedings of the second international joint conference
on Autonomous agents and multiagent systems, ACM, 2003, pp. 584–591.
54 BIBLIOGRAPHY
[16] A. Carôt, U. Krämer, and G. Schuller, “Network music performance (NMP) in nar-
row band networks”, in Audio Engineering Society Convention 120, Audio Engi-
neering Society, 2006.
[17] L. F. Thomaz and M. Queiroz, “A framework for musical multiagent systems”, Pro-
ceedings of the SMC, vol. 1, no. 2, p. 10, 2009.
[18] O. Bown, B. Carey, and A. Eigenfeldt, “Manifesto for a Musebot Ensemble: A plat-
form for live interactive performance between multiple autonomous musical agents”,
in Proceedings of the International Symposium of Electronic Art, 2015.
[19] A. Eigenfeldt, O. Bown, and B. Carey, “Collaborative Composition with Creative
Systems: Reflections on the First Musebot Ensemble”, in Proceedings of the Sixth
International Conference on Computational Creativity, ICCC, 2015, p. 134.
[20] D. T. Bastien and T. J. Hostager, “Jazz as a process of organizational innovation”,
Communication Research, vol. 15, no. 5, pp. 582–602, 1988.
[21] D. J. Hargreaves, The developmental psychology of music. Cambridge University
Press, 1986.
[22] G. Assayag and H. G. Feichtinger, Mathematics and music: A Diderot mathematical
forum. Springer Science & Business Media, 2002.
[23] J. Shepherd, Whose music?: A sociology of musical languages. Transaction Publish-
ers, 1977.
[24] L. Harkleroad, The math behind the music. Cambridge University Press Cambridge,
2006, vol. 1.
[25] D. Cope, “The well-programmed clavier: Style in computer music composition”,
XRDS: Crossroads, The ACM Magazine for Students, vol. 19, no. 4, pp. 16–20, 2013.
[26] C. Fry, “Flavors Band: A language for specifying musical style”, Computer Music
Journal, vol. 8, no. 4, pp. 20–34, 1984.
[27] J. Sueur, T. Aubin, and C. Simonis, “Seewave, a free modular tool for sound analysis
and synthesis”, Bioacoustics, vol. 18, no. 2, pp. 213–226, 2008.
[28] M. Grachten, “JIG: Jazz improvisation generator”, in Proceedings of the MOSART
Workshop on Current Research Directions in Computer Music, 2001, pp. 1–6.
[29] S. Parsons and M. Wooldridge, “Game theory and decision theory in multi-agent
systems”, Autonomous Agents and Multi-Agent Systems, vol. 5, no. 3, pp. 243–254,
2002.
[30] H. Finnsson and Y. Björnsson, “Simulation-Based Approach to General Game Play-
ing.”, in AAAI, vol. 8, 2008, pp. 259–264.
[31] M. A. Boden, “Computer models of creativity”, AI Magazine, vol. 30, no. 3, p. 23,
2009.
[32] A. R. Brown and A. C. Sorensen, “Introducing jMusic”, in Australasian Computer
Music Conference, A. R. Brown and R. Wilding, Eds., Queensland University of
Technology, Brisbane: ACMA, 2000, pp. 68–76. [Online]. Available: http : / /
eprints.qut.edu.au/6805/.
[33] M. Delorme and J. Mazoyer, Cellular Automata: a parallel model. Springer Science
& Business Media, 2013, vol. 460.
BIBLIOGRAPHY 55
[34] K. Nagel and M. Schreckenberg, “A cellular automaton model for freeway traffic”,
Journal de physique I, vol. 2, no. 12, pp. 2221–2229, 1992.
[35] D. A. Wolf-Gladrow, Lattice-gas cellular automata and lattice Boltzmann models:
an introduction. Springer, 2004.
[36] A. R. Brown, “Exploring rhythmic automata”, in Workshops on Applications of Evo-
lutionary Computation, Springer, 2005, pp. 551–556.
[37] N. Chomsky and M. P. Schützenberger, “The algebraic theory of context-free lan-
guages”, Studies in Logic and the Foundations of Mathematics, vol. 35, pp. 118–
161, 1963.
[38] J. P. Swain, “The range of musical semantics”, The Journal of aesthetics and art
criticism, vol. 54, no. 2, pp. 135–152, 1996.
[39] M. Lanctot, V. Lisỳ, and M. H. Winands, “Monte Carlo tree search in simultaneous
move games with applications to Goofspiel”, in Workshop on Computer Games,
Springer, 2013, pp. 28–43.
[40] K. B. Korb and A. E. Nicholson, Bayesian artificial intelligence. CRC press, 2010.
[41] C. M. Grinstead and J. L. Snell, Introduction to probability. American Mathematical
Soc., 2012.
[42] A. Brown, Making Music with Java: An Introduction to Computer Music, Java Pro-
gramming and the JMusic Library. Lulu. com, 2005.
[43] H. Ishii, A. Mazalek, and J. Lee, “Bottles as a minimal interface to access digital
information”, in CHI’01 extended abstracts on Human factors in computing systems,
ACM, 2001, pp. 187–188.
[44] F. Menenghini, P. Palma, M. Taylor, and A. Cameron, The art of experimental inter-
action design. Systems Design Limited, 2004, vol. 4.
[45] J. A. Paradiso, K.-y. Hsiao, and A. Benbasat, “Tangible music interfaces using pas-
sive magnetic tags”, in Proceedings of the 2001 conference on New interfaces for
musical expression, National University of Singapore, 2001, pp. 1–4.
[46] T. Blackwell, O. Bown, and M. Young, “Live Algorithms: towards autonomous com-
puter improvisers”, in Computers and Creativity, Springer, 2012, pp. 147–174.
[47] J. A. Biles, “GenJam: Evolution of a jazz improviser”, Creative evolutionary sys-
tems, vol. 168, p. 2, 2002.
[48] R. D. Wulfhorst, L. V. Flores, L. Nakayama, C. D. Flores, L. O. C. Alvares, and R.
Viccari, “An open architecture for a musical multi-agent system”, in Proceedings of
Brazilian symposium on computer music, 2001.
[49] P. R. Cohen and C. R. Perrault, “Elements of a plan-based theory of speech acts”,
Cognitive science, vol. 3, no. 3, pp. 177–212, 1979.
[50] S. Poslad, “Specifying protocols for multi-agent systems interaction”, ACM Trans-
actions on Autonomous and Adaptive Systems (TAAS), vol. 2, no. 4, p. 15, 2007.
[51] O. Bown and A. Martin, “Autonomy in musicgenerating systems”, in Eighth Artifi-
cial Intelligence and Interactive Digital Entertainment Conference, 2012, p. 23.
[52] A. Eigenfeldt, “Real-time Composition or Computer Improvisation? A composer’s
search for intelligent tools in interactive computer music”, Proceedings of the Elec-
tronic Music Studies, vol. 2007, 2007.
56 BIBLIOGRAPHY
[53] A. Eigenfeldt and P. Pasquier, “A realtime generative music system using autonomous
melody, harmony, and rhythm agents”, in XIII Internationale Conference on Gener-
ative Arts, Milan, Italy, 2009.
[54] P. Pasquier, A. Eigenfeldt, O. Bown, and S. Dubnov, “An introduction to musical
metacreation”, Computers in Entertainment (CIE), vol. 14, no. 2, p. 2, 2016.
[55] A. R. Brown and T. Gifford, “Prediction and proactivity in real-time interactive
music systems”, in Musical Metacreation: Papers from the 2013 AIIDE Workshop,
AAAI Press, 2013, pp. 35–39.
[56] G. Solis and B. Nettl, Musical improvisation: Art, education, and society. University
of Illinois Press, 2009.
[57] P. Toiviainen, “Modeling the target-note technique of bebop-style jazz improvisa-
tion: An artificial neural network approach”, Music Perception: An Interdisciplinary
Journal, vol. 12, no. 4, pp. 399–413, 1995.
[58] G. Papadopoulos and G. Wiggins, “A genetic algorithm for the generation of jazz
melodies”, Proceedings of STEP, vol. 98, 1998.
[59] B. Baird, D. Blevins, and N. Zahler, “Artificial intelligence and music: Implement-
ing an interactive computer performer”, Computer Music Journal, vol. 17, no. 2,
pp. 73–79, 1993.
[60] R. L. De Mantaras and J. L. Arcos, “AI and music: From composition to expressive
performance”, AI magazine, vol. 23, no. 3, p. 43, 2002.
[61] J. Pressing, “Free jazz and the avant-garde”, The Cambridge companion to jazz,
pp. 202–216, 2002.
[62] I. Monson, Saying something: Jazz improvisation and interaction. University of
Chicago Press, 2009.
[63] H. Gardner, Multiple intelligences: New horizons. Basic books, 2006.
[64] R. K. Sawyer, “Music and conversation”, Musical communication, vol. 45, p. 60,
2005.
[65] A. Williamon and J. W. Davidson, “Exploring co-performer communication”, Mu-
sicae Scientiae, vol. 6, no. 1, pp. 53–72, 2002.
[66] W. F. Walker, “A computer participant in musical improvisation”, in Proceedings of
the ACM SIGCHI Conference on Human factors in computing systems, ACM, 1997,
pp. 123–130.
[67] F. A. Seddon, “Modes of communication during jazz improvisation”, British Journal
of Music Education, vol. 22, no. 01, pp. 47–61, 2005.
[68] K. Agres, J. Forth, and G. A. Wiggins, “Evaluation of musical creativity and musical
metacreation systems”, Computers in Entertainment (CIE), vol. 14, no. 3, p. 3, 2016.
[69] M. Edwards, “Algorithmic composition: computational thinking in music”, Com-
munications of the ACM, vol. 54, no. 7, pp. 58–67, 2011.
[70] G. M. Rader, “A method for composing simple traditional music by computer”,
Communications of the ACM, vol. 17, no. 11, pp. 631–638, 1974.
[71] C. Roads and P. Wieneke, “Grammars as representations for music”, Computer Mu-
sic Journal, pp. 48–55, 1979.
BIBLIOGRAPHY 57
[72] C. Rueda, G. Assayag, and S. Dubnov, “A concurrent constraints factor oracle model
for music improvisation”, in XXXII Conferencia Latinoamericana de Informática
CLEI 2006, 2006, pp. 1–1.
[73] R. M. Keller and D. R. Morrison, “A grammatical approach to automatic improvi-
sation”, in Proceedings of the Fourth Sound and Music Conference, SMC, 2007.
[74] D. Morris, I. Simon, and S. Basu, “Exposing Parameters of a Trained Dynamic
Model for Interactive Music Creation.”, in AAAI, 2008, pp. 784–791.
[75] S. Perchy and G. Sarria, “Musical Composition with Stochastic Context-Free Gram-
mars”, in 8th Mexican International Conference on Artificial Intelligence (MICAI
2009), 2009.
[76] I. Wallis, T. Ingalls, E. Campana, and J. Goodman, “A rule-based generative music
system controlled by desired valence and arousal”, in Proceedings of 8th interna-
tional sound and music computing conference (SMC), 2011, pp. 156–157.
[77] A. O. de la Puente, R. S. Alfonso, and M. A. Moreno, “Automatic composition
of music by means of grammatical evolution”, in ACM SIGAPL APL Quote Quad,
ACM, vol. 32, 2002, pp. 148–155.
[78] P. Prusinkiewicz and A. Lindenmayer, The algorithmic beauty of plants. Springer
Science & Business Media, 2012.
[79] J. McCormack, “Grammar based music composition”, Complex systems, vol. 96,
pp. 321–336, 1996.
[80] M. Edwards, “An introduction to slippery chicken”, in ICMC, 2012.
[81] S. A. Abdallah and N. E. Gold, “Comparing models of symbolic music using prob-
abilistic grammars and probabilistic programming”, in Proceedings of the 40th In-
ternational Computer Music Conference (ICMC|SMC|2014), 2014, pp. 1524–1531.
[82] C. A. C. Coello, G. B. Lamont, D. A. Van Veldhuizen, et al., Evolutionary algo-
rithms for solving multi-objective problems. Springer, 2007, vol. 5.
[83] N. Tokui, H. Iba, et al., “Music composition with interactive evolutionary computa-
tion”, in Proceedings of the 3rd international conference on generative art, vol. 17,
2000, pp. 215–226.
[84] B Yegnanarayana, Artificial neural networks. PHI Learning Pvt. Ltd., 2009.
[85] C. V. Goldman, D. Gang, J. S. Rosenschein, and D. Lehmann, “Netneg: A hybrid
interactive architecture for composing polyphonic music in real time”, in Proceed-
ings of the International Computer Music Conference, Michigan Publishing, 1996,
pp. 133–140.
[86] M. Nishijima and K. Watanabe, “Interactive music composer based on neural net-
works”, Fujitsu scientific and technical journal, vol. 29, no. 2, pp. 189–192, 1993.
[87] H. Sak, A. W. Senior, and F. Beaufays, “Long short-term memory recurrent neu-
ral network architectures for large scale acoustic modeling.”, in Interspeech, 2014,
pp. 338–342.
[88] A. Nayebi and M. Vitelli, “GRUV: Algorithmic Music Generation using Recurrent
Neural Networks”, 2015.
[89] D. Eck and J. Schmidhuber, “Learning the long-term structure of the blues”, Artifi-
cial Neural Networks—ICANN 2002, pp. 796–796, 2002.
58 BIBLIOGRAPHY
[90] C.-C. Chen and R. Miikkulainen, “Creating melodies with evolving recurrent neural
networks”, in Neural Networks, 2001. Proceedings. IJCNN’01. International Joint
Conference on, IEEE, vol. 3, 2001, pp. 2241–2246.
[91] A. Cont, “ANTESCOFO: Anticipatory Synchronization and Control of Interactive
Parameters in Computer Music.”, in International Computer Music Conference (ICMC),
2008, pp. 33–40.
[92] T. Blackwell, “Swarm music: improvised music with multi-swarms”, in In Proceed-
ings of the AISB ’03 Symposium on Artificial Intelligence and Creativity in Arts and
Science, AISB, 2003, pp. 41–49.
[93] L Harrald, “Collaborative Music Making with Live Algorithms”, in Australasian
Computer Music Conference, Australasian Computer Music Association, Australasian
Computer Music Association, 2007, pp. 59–65.
[94] D. Murray-Rust, A. Smaill, and M. C. Maya, “VirtuaLatin - towards a musical multi-
agent system”, in Sixth International Conference on Computational Intelligence and
Multimedia Applications (ICCIMA’05), 2005, pp. 17–22. DOI: 10.1109/ICCIM
A.2005.59.
[95] C. Alexandraki and D. Akoumianakis, “Exploring new perspectives in network mu-
sic performance: The DIAMOUSES framework”, Computer Music Journal, vol. 34,
no. 2, pp. 66–83, 2010.
[96] M. Sarkar and B. Vercoe, “Recognition and prediction in a network music perfor-
mance system for Indian percussion”, in Proceedings of the 7th international con-
ference on new interfaces for musical expression, ACM, 2007, pp. 317–320.
[97] J. L. Oliveira, M. E. Davies, F. Gouyon, and L. P. Reis, “Beat tracking for multiple
applications: A multi-agent system architecture with state recovery”, IEEE Transac-
tions on Audio, Speech, and Language Processing, vol. 20, no. 10, pp. 2696–2706,
2012.
[98] S. Dixon, “A lightweight multi-agent musical beat tracking system”, PRICAI 2000
Topics in Artificial Intelligence, pp. 778–788, 2000.
[99] M. Delgado, W. Fajardo, and M. Molina-Solana, “Inmamusys: Intelligent multiagent
music system”, Expert Systems with Applications, vol. 36, no. 3, pp. 4574–4580,
2009.
[100] M. Navarro, J. M. Corchado, and Y. Demazeau, “A Musical Composition Applica-
tion Based on a Multiagent System to Assist Novel Composers”, 2014.
[101] F. Pachet, “Rhythms as emerging structures.”, in ICMC, Berlin, Germany, 2000.
[102] P. M. Inc. (2017). Band-in-a-Box, [Online]. Available: http://www.pgmusic.
com/ (visited on 01/01/2017).
[103] F. Bt. (2015). ChordPulse, [Online]. Available: http : / / www . chordpulse .
com/ (visited on 01/01/2015).
[104] FIPA, “FIPA ACL message structure specification”, Foundation for Intelligent Phys-
ical Agents, http://www. fipa. org/specs/fipa00061/SC00061G. html (30.6. 2004),
2002.
[105] F Bellifemine, “Jade and beyonds”, Presentation at AgentCities Information Day,
vol. 1,
BIBLIOGRAPHY 59