You are on page 1of 4

we measure by the melodic distance between measures.

A comparison of different melodic distance measures can


be seen in Table 1. The table shows overall similarity
scores (Equation 3) for different organizations of Minuet
and Trio measures in each layer (a lower number means
lower overall score and thus better, more seamless result).
The overall similarity is calculated by using different distance measures for all pairs of neighboring measures in
same layer. For all distance measures we found an organization that has a significantly lower overall score than for
average random organization - for distribution of note duration we obtained a more than 70% lower overall score.
This holds for both Minuet and Trio collections of measures. Results also show that according to selected distance measures even average random organization of measures has a better score than Mozarts organization. However the selection of next measures is done differently in
Mozarts game than in the presented approach, where we
only took into account very simple melodic distance measures.
The developed system was tested by a small number
of people who confirmed that music created with the developed algorithm is easier on the ear than music from
original or random organization, but no detailed evaluation of user experience was done by the time of paper
submission.
Score
Best
AVG
Mozarts

DPC

M
6.83
14.02
11.53

T
5.97
13.25
13.41

M
6.0
13.87
14.01

DI

T
6.0
13.82
14.28

DND

M
3.0
13.94
13.73

T
4.17
13.73
15.0

Table 1. Table shows scores for different distance measures: Distribution of pitch classes (DPC), Distribution of
intervals (DI) and Distribution of note durations (DND)
for Minuet (M) and Trio (T) organizations for best found
distribution (Best), average random distribution (AVG)
and Mozarts original organization.

global scoring measures (such as Dominant and Tonic) for


achieving a better harmonic structure of the final result.
We could also omit separated collections for Minuet and
Trio measures and use one combined collection instead.
The platform could also be transferred to mobile phones
and tablets, which already have accelerometers integrated.
6. ACKNOWKEDGMENT
Authors would like to thank anonymous reviewers for their
constructive comments, suggestions and for pointing out
errors; they helped make this article better.
The work was partly supported by the Slovenian Govern-ment-Founded R&D project EthnoCatalogue: creating semantic descriptions of Slovene folk song and music.
7. REFERENCES
[1] T. Eerola and P. Toiviainen, Midi toolbox: Matlab
tools for music research, University of Jyvaskyla
Kopijyva Jyvaskyla Finland, 2004.
[2] K. F. Hansen and R. Bresin, Dj scratching performance techniques: Analysis and synthesis, in Proc.
Stockholm Music Acoustics Conference, R. Bresin,
Ed., vol. 2, Stockholm, aug 2003, pp. 693696.
[3] J. P. Kirnberger, Der allezeit fertige polonaisen und
menuetten komponist (trans.: The ever ready composer of polonaises and minuets), 1757.
[4] E. Lee, T. Karrer, and J. Borchers, Toward a framework for interactive systems to conduct digital audio and video streams, Computer Music Journal,
vol. 30, no. 1, pp. 2136, Spring 2006.
[5] C. Metzger, M. Anderson, and T. Starner, Freedigiter: A contact-free device for gesture control,
Wearable Computers, IEEE International Symposium, vol. 0, pp. 1821, 2004.
[6] W. A. Mozart, Musikalisches wurfelspiel, Journal
des Luxus und der Moden, 1787.

5. CONCLUSION
In this paper we presented a new approach that uses the
collection of measures from the Mozarts Dice game for
real-time creation of music with the Wiimote controller.
We are no longer limited to production of Minuet-Trios
only, but can compose endless music from a well organized collection, where selection of the next possible measure is guided by a similarity measure. This makes the
transition between measures more seamless, while also
giving the creator a chance of creating more diverse music
than with the original game.
There are many possible extensions of our current solution. Instead of using only melodic features of symbolic
data we could use audio samples as well, to create a more
diverse organizations of measures. Instead of using a fixed
layer organization of measures, we could introduce a dynamic space for selection of the next measure, as well as

_296

[7] K. C. Ng, Music via motion: Transdomain mapping


of motion and sound for interactive performances,
Proceedings of the IEEE, vol. 92, no. 4, pp. 645
655, 2004.
[8] K. Nymoen, S. A. Skogstad, and A. R. Jensenius,
SoundSaber - A Motion Capture Instrument, in
Proceedings of the International Conference on New
Interfaces for Musical Expression, 2011, pp. 312
315.
[9] M. Torrens, P. Hertzog, and J. L. Arcos, Visualizing
and Exploring Personal Music Libraries. Universitat Pompeu Fabra, 2004, pp. 421424.
[10] M. M. Wanderley and P. Depalle, Gestural control of sound synthesis, Proceedings of the IEEE,
vol. 92, no. 4, pp. 632644, 2004.

TOOLS AND ABSTRACTIONS FOR SWARM BASED MUSIC AND ART


Daniel Bisig, Philippe Kocher
Institute for Computermusic and Sound Technology
Zurich University of the Arts
daniel.bisig@zhdk.ch
philippe.kocher@zhdk.ch
ABSTRACT
A new version of our swarm simulation environment
for musical and artistic applications is presented. The
main improvements of this version concern the integration
of an OSC based communication protocol and the addition of a graphical user interface. These extensions offer
a variety of approaches for the configuration, manipulation and application of simulated swarms in real time. We
hope, that these improvements open up the application of
swarm simulations to a wider audience of artists and musicians.
1. INTRODUCTION
The swarm simulation tools and their application in musical and artistic creation and education have originated
within the context of two research projects entitled Interactive Swarm Orchestra (ISO) and Interactive Swarm
Space (ISS) that were conducted at the Institute for Computer Music and Sound Technology (ICST) of the Zurich
University of the Arts (ZHdK). The projects have been
motivated by the multitude of artistic and musical applications of swarm simulations such as [7, 8, 10, 11]. Due
to the diversity and uniqueness of these approaches, the
projects attempt to provide a systematic foundations for
the integration of swarm simulations into creative processes in computer music and generative art. As part of
this endeavor, we have explored a variety of strategies
that emphasize the creative potential of capturing artistic ideas through highly customized swarm simulations
rather than using standard swarms as black box mechanisms [2, 9]. Furthermore, we have developed software
tools for the creation and control of simulated swarms
[1, 3]. These tools try to strike a balance between a simple
integration into existing musical and artistic software environments and a high degree of flexibility and customizability that characterizes scientific multi agent simulation
software. Finally, we have realized several prototypical
works that include musical compositions, interactive installations and dance performances [4, 6, 5].
Recently, we have started to integrate the results of the
two research projects into our pedagogical activities. For
this, we have modified and extended the software tools to
help students to quickly gain an appreciation and understanding for the creative capabilities of swarm simulations

and to be able to gradually expand the artistic and technical sophistication and uniqueness of their ideas in order to
realize entire works.
This paper presents the current state and capabilities
of the swarm simulations tools and discusses their application both in education and in our own artistic activities.
2. TECHNICAL DESCRIPTION
2.1. Simulation
The swarm simulation environment has started its existence as an open source C++ library that allows to develop
a wide range of swarm behaviors and that provides a network communication protocol to control and retrieve simulation parameters in real time [3]. The simulation library
is highly generic in that it does not pre-specify the physical or biological meaning of any of the agentss properties nor how these properties interrelate with each other
via the agents behaviors. Neighborhood relationships
among agents are handled via their properties, which are
assigned positions within corresponding property spaces
and its these properties that perceive each other depending on their distance and visibility constraints. There is no
limit with respect to the number of swarms that can coexist and interact with each other. Simulations can be saved
to or restored from XML formatted data files at any point
during the running simulation.
2.2. Control and Communication
The swarm simulation environment provides an OSC
based communication protocol. This feature permits the
usage of any OSC capable software to create arbitrary
swarm simulations without having to resort to C++ programming. It also allows to retrieve swarm simulation
data to control audio or video generation processes.
In order to trigger a simulation event, the OSC message format follows a syntax that employs the address part
of the message to identify the type of event and the arguments part of the message to supply the necessary parameters for executing that particular event.
Syntax:

/Event Type Parameter1


Parameter2...ParameterN

Example: /AddAgents "Boids" 5

_297

To receive OSC messages from the swarm simulation,


the desired agent properties have to be registered for communication. The format of the OSC messages sent by the
swarm simulation is as follows: the address part of the
OSC message contains a path representing the particular
agent property whereas the arguments part contains the
values.
Syntax:

/SwarmName/AgentNr/PropertyName Values

Example: Boids/1/pos 0.1 0.4 0.3


2.3. GUI based Control
To provide a user friendly environment for the creation
and control of customized swarms, we have developed a
standalone application for Mac OS X that hides the intricacies of the OSC communication syntax. This software
exposes a slightly reduced set of OSC commands via a
collection of graphical controls (see Figure 1). The number and types of these controls correspond to the number and types of swarm properties and behaviors. When
restoring a swarm from a serialized state, the GUI modifies itself accordingly. And when manually changing, removing or adding control elements in the GUI, the corresponding properties and behaviors in the simulation are
concomitantly changed, removed or added.

Figure 1. A screenshot of the GUI application together


with the visualization that is currently controlled by it.
3. LEVELS OF ABSTRACTION
The improvement and extension of the original C++ library into a software environment for remote and real time
configuration and control has expanded the number of approaches with which artists and musicians can explore and
integrate swarm simulations into their creative process.
Each approach represents a different level of abstraction
of the underlying simulation functionality and provides a
different degree of flexibility and spontaneity (see table 1).
Obviously, the level of C++ offers the greatest freedom to configure a swarm simulation including the possibility to modify the core functionality of the simulation library. The main drawback of a C++ based approach lies in
the required programming expertise, a necessary familiarization with the data structures and core functionalities of

_298

Abstraction
Flexibility
Spontaneity
Technical
Expertise

C++
Programming
low
high
low
high

OSC
Control
medium
medium
high
medium

GUI
Control
high
low
high
low

ing forms of semi-stochastic input to the audio patches.


An interesting aspect of the collaboration involved the
reuse of the algorithmic temporal patterns that underly the
compositions score in order to trigger behavioral changes
in the swarm simulation that are synchronized to the instrumental music. This approach created an overarching
coherence throughout the entire piece.

Table 1. Three different approaches to configuring and


controlling simulated swarms.
the simulation environment and a limited ability to spontaneously experiment with different swarm configurations.
OSC commands provide almost the same degree of
control as C++. The higher level of abstraction that is
inherent in an OSC based approach flattens the learning
curve for experimenting with swarm simulations. In addition, since OSC commands can be dispatched at any time
during a running simulation, this approach allows for real
time interaction and spontaneous experiments. The possibly most important benefit of using OSC lies in the fact
that it enables a simple integration of the swarm simulations into whatever OSC capable software infrastructure
the user is already familiar with.
The standalone GUI application does an excellent job
at hiding most of the details that are required to create a
swarm simulation. In particular, it automates much of the
basic swarm setup procedure such as adding frequently
used agent properties and behaviors and it gracefully resolves dependencies between behaviors, properties and
neighborhood spaces when new behaviors are added or
old ones are removed. On the other hand, this high level
of abstraction limits the diversity of swarms that can be
created much more than an OSC or C++ based approach.
It is important to stress the fact that these three different approaches are not mutually exclusive. It is very
well possible to create a swarm simulation via C++, store
the simulation in an XML file and reload this XML file
into the GUI application. Or it is equally imaginable to
configure a basic swarm simulation via the GUI application and subsequently modify it via OSC commands. In
order to promote a flexible transition between these different approaches, we have implemented a similar usage and
configuration functionality and syntax for each of them.
As an illustration, Figure 2 depicts an excerpt of the same
basic swarm configuration steps that have to be conducted
when working with C++, sending OSC commands or using the GUI application.
4. APPLICATION SCENARIOS
The following section presents three different application
scenarios in which the swarm simulation tools have been
extensively used. These scenarios are a teaching situation,
the creation of an audiovisual composition, and the realization of an interactive installation.

Figure 2. An excerpt of the steps necessary for configuring a simple swarm simulation. From top to bottom: C++
source code, OSC commands, GUI controls.
4.1. Teaching
In 2011, the authors have been teaching an interdisciplinary course entitled Interactive Swarm Space at the
ZHdK. The background of the attending students included
computer and instrumental music, new media, engineering and natural sciences. The course was based on the
swarm simulation tools developed thus far and aimed at
familiarizing the students with sufficient conceptual background and practical skills to allow them to realize their
own swarm-based artworks and compositions. The course
ended with the public performance of a total of five student works.
The students were initially presented some of the
concepts of algorithmic composition and generative art
in general and swarm based music and art in particular. Subsequently, they were acquainted with the software
tools including the standalone GUI application, example
patches in Max/MSP and SuperCollider for configuring
swarms and receiving swarm data, and XCode based C++
projects for creating simple swarms. Thereafter, the students started to work on their own projects. Most of the
students decided to use the standalone GUI application to
design their swarm simulations and a Max/MSP patch to
receive agent position data via OSC for musical and visual
rendering.
4.2. Composition
The two authors have collaboratively created an audiovisual composition entitled Trails that combines a live
performance of acoustic instruments with an electronic
playback and a pre-rendered generative film (see Figure 3). Both the electronic music part of the composition
and the generative film were heavily relying on a combination of standalone GUI application and OSC based
configuration and control of the swarm simulations. This
approach allowed for a very flexible and interactive experimentation with different swarm behaviors throughout the
creation process. For the sound synthesis part, the temporal and spatial dynamics of the swarms provided interest-

Figure 3. World premiere of Trails at the British Film


Institute in London.
4.3. Installation
The installation entitled Flowspace has been realized as a
collaboration between one of the authors with two members of the ICST, Jan Schacher and Martin Neukom. The
installation was realized in the shape of a dodecahedron
and consists of a touch sensitive surface, a 20 speakers
ambisonics audio setup and three surfaces for video rear
projection (see Figure 4). The installation served as a
platform for the realization and presentation of interactive swarm based audiovisual compositions. So far, three
different works have been realized and were shown in the
context of an exhibition entitled Milieux Sonores (Kunstraum Walcheturm, Zurich, 2009 and Gray Area Foundation for the Arts, San Francisco, 2010). The installation has been extensively documented in two other publications [4, 9]. For each composition, a dedicated and
highly customized swarm simulation was developed in
parallel with the generative visual and acoustic programs
that were controlled by the simulation. This approach
helped to connect the simulation design decisions to the
artistic and musical ideas that informed each of the compositions. For each of these works, the swarm simulations were programmed in C++ and subsequently diversified and serialized into different simulation states via
OSC based graphical user interfaces. During the exhibition, OSC based communication provided the means to
reload different simulations and states, to modify simulation properties based on the visitors interactions, and
to control the audiovisual feedback processes in a coordinated manner.
5. RESULTS AND CONCLUSIONS
The swarm simulation environment and its OSC based
functionality have proven to be sufficiently robust and ver-

_299

To receive OSC messages from the swarm simulation,


the desired agent properties have to be registered for communication. The format of the OSC messages sent by the
swarm simulation is as follows: the address part of the
OSC message contains a path representing the particular
agent property whereas the arguments part contains the
values.
Syntax:

/SwarmName/AgentNr/PropertyName Values

Example: Boids/1/pos 0.1 0.4 0.3


2.3. GUI based Control
To provide a user friendly environment for the creation
and control of customized swarms, we have developed a
standalone application for Mac OS X that hides the intricacies of the OSC communication syntax. This software
exposes a slightly reduced set of OSC commands via a
collection of graphical controls (see Figure 1). The number and types of these controls correspond to the number and types of swarm properties and behaviors. When
restoring a swarm from a serialized state, the GUI modifies itself accordingly. And when manually changing, removing or adding control elements in the GUI, the corresponding properties and behaviors in the simulation are
concomitantly changed, removed or added.

Figure 1. A screenshot of the GUI application together


with the visualization that is currently controlled by it.
3. LEVELS OF ABSTRACTION
The improvement and extension of the original C++ library into a software environment for remote and real time
configuration and control has expanded the number of approaches with which artists and musicians can explore and
integrate swarm simulations into their creative process.
Each approach represents a different level of abstraction
of the underlying simulation functionality and provides a
different degree of flexibility and spontaneity (see table 1).
Obviously, the level of C++ offers the greatest freedom to configure a swarm simulation including the possibility to modify the core functionality of the simulation library. The main drawback of a C++ based approach lies in
the required programming expertise, a necessary familiarization with the data structures and core functionalities of

_298

Abstraction
Flexibility
Spontaneity
Technical
Expertise

C++
Programming
low
high
low
high

OSC
Control
medium
medium
high
medium

GUI
Control
high
low
high
low

ing forms of semi-stochastic input to the audio patches.


An interesting aspect of the collaboration involved the
reuse of the algorithmic temporal patterns that underly the
compositions score in order to trigger behavioral changes
in the swarm simulation that are synchronized to the instrumental music. This approach created an overarching
coherence throughout the entire piece.

Table 1. Three different approaches to configuring and


controlling simulated swarms.
the simulation environment and a limited ability to spontaneously experiment with different swarm configurations.
OSC commands provide almost the same degree of
control as C++. The higher level of abstraction that is
inherent in an OSC based approach flattens the learning
curve for experimenting with swarm simulations. In addition, since OSC commands can be dispatched at any time
during a running simulation, this approach allows for real
time interaction and spontaneous experiments. The possibly most important benefit of using OSC lies in the fact
that it enables a simple integration of the swarm simulations into whatever OSC capable software infrastructure
the user is already familiar with.
The standalone GUI application does an excellent job
at hiding most of the details that are required to create a
swarm simulation. In particular, it automates much of the
basic swarm setup procedure such as adding frequently
used agent properties and behaviors and it gracefully resolves dependencies between behaviors, properties and
neighborhood spaces when new behaviors are added or
old ones are removed. On the other hand, this high level
of abstraction limits the diversity of swarms that can be
created much more than an OSC or C++ based approach.
It is important to stress the fact that these three different approaches are not mutually exclusive. It is very
well possible to create a swarm simulation via C++, store
the simulation in an XML file and reload this XML file
into the GUI application. Or it is equally imaginable to
configure a basic swarm simulation via the GUI application and subsequently modify it via OSC commands. In
order to promote a flexible transition between these different approaches, we have implemented a similar usage and
configuration functionality and syntax for each of them.
As an illustration, Figure 2 depicts an excerpt of the same
basic swarm configuration steps that have to be conducted
when working with C++, sending OSC commands or using the GUI application.
4. APPLICATION SCENARIOS
The following section presents three different application
scenarios in which the swarm simulation tools have been
extensively used. These scenarios are a teaching situation,
the creation of an audiovisual composition, and the realization of an interactive installation.

Figure 2. An excerpt of the steps necessary for configuring a simple swarm simulation. From top to bottom: C++
source code, OSC commands, GUI controls.
4.1. Teaching
In 2011, the authors have been teaching an interdisciplinary course entitled Interactive Swarm Space at the
ZHdK. The background of the attending students included
computer and instrumental music, new media, engineering and natural sciences. The course was based on the
swarm simulation tools developed thus far and aimed at
familiarizing the students with sufficient conceptual background and practical skills to allow them to realize their
own swarm-based artworks and compositions. The course
ended with the public performance of a total of five student works.
The students were initially presented some of the
concepts of algorithmic composition and generative art
in general and swarm based music and art in particular. Subsequently, they were acquainted with the software
tools including the standalone GUI application, example
patches in Max/MSP and SuperCollider for configuring
swarms and receiving swarm data, and XCode based C++
projects for creating simple swarms. Thereafter, the students started to work on their own projects. Most of the
students decided to use the standalone GUI application to
design their swarm simulations and a Max/MSP patch to
receive agent position data via OSC for musical and visual
rendering.
4.2. Composition
The two authors have collaboratively created an audiovisual composition entitled Trails that combines a live
performance of acoustic instruments with an electronic
playback and a pre-rendered generative film (see Figure 3). Both the electronic music part of the composition
and the generative film were heavily relying on a combination of standalone GUI application and OSC based
configuration and control of the swarm simulations. This
approach allowed for a very flexible and interactive experimentation with different swarm behaviors throughout the
creation process. For the sound synthesis part, the temporal and spatial dynamics of the swarms provided interest-

Figure 3. World premiere of Trails at the British Film


Institute in London.
4.3. Installation
The installation entitled Flowspace has been realized as a
collaboration between one of the authors with two members of the ICST, Jan Schacher and Martin Neukom. The
installation was realized in the shape of a dodecahedron
and consists of a touch sensitive surface, a 20 speakers
ambisonics audio setup and three surfaces for video rear
projection (see Figure 4). The installation served as a
platform for the realization and presentation of interactive swarm based audiovisual compositions. So far, three
different works have been realized and were shown in the
context of an exhibition entitled Milieux Sonores (Kunstraum Walcheturm, Zurich, 2009 and Gray Area Foundation for the Arts, San Francisco, 2010). The installation has been extensively documented in two other publications [4, 9]. For each composition, a dedicated and
highly customized swarm simulation was developed in
parallel with the generative visual and acoustic programs
that were controlled by the simulation. This approach
helped to connect the simulation design decisions to the
artistic and musical ideas that informed each of the compositions. For each of these works, the swarm simulations were programmed in C++ and subsequently diversified and serialized into different simulation states via
OSC based graphical user interfaces. During the exhibition, OSC based communication provided the means to
reload different simulations and states, to modify simulation properties based on the visitors interactions, and
to control the audiovisual feedback processes in a coordinated manner.
5. RESULTS AND CONCLUSIONS
The swarm simulation environment and its OSC based
functionality have proven to be sufficiently robust and ver-

_299

sual processes. However they do not provide functionality for automated forms of configuration and modification
via mechanisms of adaptation such as evolution or learning. Also, the tools fall somewhat short in the creation of
simulations that gradually change over extended periods
of time and thereby provide the opportunity to experiment
with emergent macro scale structures in musical compositions and visual designs. Accordingly, we plan to include
adaptive mechanisms in future versions of the simulation
tools.
Figure 4. Interaction with the Flowspace installation. Exhibition Milieux Sonores, Gray Area Foundation for the
Arts, San Francisco, 2010.
satile to allow its usage in education and artistic realizations. The standalone GUI application complements this
environment in that it not only provides a gentle introduction into the usage of swarm based simulations for users
that lack programming skills, but also offers a good starting point for any artistic realizations as it allows to quickly
sketch and experiment with customized swarms. Only the
realization of rather exotic swarm simulations required
an implementation in C++. But as these new behaviors
become part of the simulation library, the limitations of
a purely OSC based approach gradually decrease. The
software and documentation that can be accessed via the
projects website [1] keep up with these improvements.
Our teaching experience proved that the standalone
GUI application is very helpful in conveying a practical understanding of the principles and capabilities of
swarm simulations as it enables a hands-on approach
where the students can immediately experience the effects
upon changing parameters. Throughout the course, most
of the students kept working solely with the standalone
GUI application and did not consider to modify the simulations more thoroughly on a lower level of abstraction.
They rather focused on the design of their audiovisual
Max/MSP patches and would only return to experimentation with the swarm simulation itself when their envisioned result could not be achieved by modifications to
those patches alone. It remains to be seen whether a prolonged use of the simulation tools will lead the students
to integrate swarm simulation into their works on a more
fundamental level.
As for the authors themselves, the swarm simulation
tools have proven to be extremely inspiring and useful
both for the realization of musical and artistic works. The
tools flexibility has allowed us to transfer a wide variety
of artistic and musical ideas into swarm based approaches.
Furthermore, their OSC based real time configuration and
control capabilities has allowed us to creatively exploit the
swarms high level of responsiveness both in the creation
process and for the final performance and exhibition situations. In their current state, the simulation tools extensively support the manual design and refinement of swarm
simulations and their communication with musical and vi-

_300

6. REFERENCES
[1] http://swarms.cc.
[2] D. Bisig and M. Neukom, Swarm based computer
music - towards a repertory of strategies, in Proceedings of the Generative Art Conference, Milano,
Italy, 2008.
[3] D. Bisig, M. Neukom, and J. Flury, Interactive
swarm orchestra - a generic programming environment for swarm based computer music, in Proceedings of the International Computer Music Conference, Belfast, Ireland, 2008.
[4] D. Bisig, J. Schacher, and M. Neukom, Flowspace
a hybrid ecosystem, in Proceedings of the New
Interfaces for Musical Expression Conference, Oslo,
Norway, 2011.
[5] D. Bisig and T. Unami, Cycles - blending natural
and artificial properties in a generative artwork, in
Proceedings of the Generative Art Conference, Milano, Italy, 2010.
[6] D. Bisig and T. Unemi, Swarms on stage - swarm
simulations for dance performance, in Proceedings
of the Generative Art Conference, Milano, Italy,
2009.
[7] T. Blackwell and P. Bentley, Improvised music with
swarms, in Proceedings of the 2002 Congress on
Evolutionary Computation, 2002.
[8] J. E. Boyd, G. Hushlak, and C. J. Jacob, Swarmart:
interactive art from swarm intelligence, in Proceedings of the 12th annual ACM international conference on Multimedia, 2004.
[9] J. Schacher, D. Bisig, and M. Neukom, Composing
with swarm algorithms - creating interactive audiovisual pieces using flocking behavior, in Proceedings of the International Computer Music Conference, Huddersfield, England, 2011.
[10] D. Shiffman, Swarm, SIGGRAPH emerging technologies exhibition, 2004.
[11] R. Vitorino, Self-organizing the abstract: Canvas as
a swarm habitat for collective memory, perception
and cooperative distributed creativity, CoRR, 2004.

SOURCENODE: A NETWORK SOURCED APPROACH TO


NETWORK MUSIC PERFORMANCE (NMP)
Robin Renwick
Sonic Arts Research Centre (SARC)
Queens University Belfast

ABSTRACT
This paper will seek to outline a Network Sourced Approach
(NSA) to Network Music Performance (NMP). The NSA is
governed through the software application SourceNode,
which can be seen as a working example of a NMP enabler.
The core focus of the NSA is that a master node will
source audio content from designated slave nodes, which
are synchronised together by the master node. The
SourceNode project is a specic type of NMP: a nodal-based
performance environment that has been network
synchronised through time signature, start/stop, loop point
and tempo control. The NMP is assembled in a star
formation. This paper addresses the characteristics of a star
topology within a synchronised environment and describes a
standalone software application implemented for this type of
nodal-based performance. The study will attempt to outline
the implications, advantages and issues faced when
implementing such a nodal-based framework and also offer
a formal example of this NMP structure in practice, through
the SourceNode project.
1.

INTRODUCTION
it is possible to stop seeing music as singular, as a
street between point a and point b, and to start seeing
music as multiple, as landscape, as atmosphere, as an
n-dimensional eld of opportunities [23].

Network Music Performance is a musical practice that has


been enabled through, included with, or integrated by
computer networking technologies, protocols, systems and
topologies that have been incorporated into the design,
implementation or architecture of either the musical system
or sonic output.
A Network Sourced Approach is a distinct form of Network
Music Performance; an approach in which the core focus is
the sense of sourcing or gathering sonic content from a
delineated network. The sourcing behaviour, and its
implications for NMP, may be seen as an extension of
previous NMP approaches as outlined by Alain Renaud in
the Frequencyliator project [15] and Georgi Hadju in the
Quintet.net project [10]. The central characteristic of such

practice is that nodes within a network perform individual


sonic content. The architecture establishes a framework that
ensures this individual audio content is no longer mutually
exclusive. The nodes are governed with respect to tempo,
time signature, loop point and start/stop control. Indeed, they
may now be seen as elements of a greater whole [10]. The
NSA approach offers a topology that is extremely exible,
allowing for expansion or contraction of the framework
without needing to change the network conguration. A
master node can implement certain rules; governing the
audio content that it receives but the number of streams, or
nodes, from which it may source content is unequivocally
open.
The SourceNode project is a specic type of NMP, enabled
through the intricate use of current technologies derived
simultaneously from the elds of music and computer
networking technology. The project seeks to reformulate
past conceptualisations of NMP models and architectures
into a framework that is distinct, unique and evolving in
both context and nature.
2.

AN INTRODUCTION TO NETWORK MUSIC


PERFORMANCE (NMP)

Network Music Performance has always stood at the


intersection of technology and art and will continue to do so.
Unique and interesting art forms have emerged from these
systems; art forms that evolve as technology improves,
continuing to ask questions of our modern understanding of
the musical art form. An outlook which envisions
intermedia or hybrid spaces being utilised by musicians
standing at the cross section of networking, computer music
and internet technologies is far from imaginary [19][25].
Similarly, collaborative spaces which harness the powers of
synergy will always have networking technologies,
architectures and frameworks at their centre [17][20][22]
[24].
Darin Barney offers a very simple, yet detailed, explanation
of what a network is; what is needed within a structure for it
to be termed a networked organisation: networks are
comprised of three main elements: nodes, ties and ows. A

_301

You might also like