Information Technology Reference
In-Depth Information
(Cook & Scavone, 1999). Other influences include
the powerful but more complex architecture of
CLAM (Amatriain, 2005), the patching model and
strong timing of Chuck (Wang & Cook, 2003),
and ideas from Aura (Dannenberg & Brandt,
1996). The matrix model used in Implicit Patching
was influenced by the design of SDIFF and the
default-naming scheme for controls is inspired by
the Open Sound Control (OSC) protocol (Wright
& Freed, 1997). The code structure reflects many
ideas from Design Patterns (Gamma, Helm,
Johnson & Vlissides, 1995).
The idea of dataf low programming has
been fundamental in the design of MARSYAS .
Dataflow programming has a long history. The
original (and still valid) motivation for research
into dataflow was to take advantage of parallel-
ism. Motivated by criticisms of the classical von
Neumann hardware architecture such as (Acker-
man, 1982) dataflow architectures for hardware
was proposed as an alternative in the 1970's and
1980's. During the same period a number of tex-
tual dataflow languages such as Lucid (Wadge &
Ashcroft, 1985) were proposed. Despite expecta-
tions that dataflow architectures and languages
would take over from von Neumann concepts
this did not happen. However during the 1990's
there was a new direction of growth in the field
of dataflow visual programming languages that
were domain specific. In such visual languages
programming is done by connecting processing
objects with “wires” to create “patches”. Suc-
cessful examples include Labview ( http://www.
ni.com/labview/ ), SimuLink ( http://www.math-
works/com/products/simulink/ ) and in the field
of Computer Music, Max/MSP (Zicarelli, 2002)
and Pure Data (Puckette, 2002). A comprehensive
overview of dataflow programming languages can
be found in Johnston et al. (2004). Another recent
trend has been to view dataflow computation as a
software engineering methodology for building
systems using existing programming languages
(Manolescu, 1997). A comprehensive overview
of audio processing frameworks from a Software
Engineering perspective can be found in (Ama-
triain, 2005). More recently frameworks specific
to MIR have been introduced. They include ACE
and JAudio (McEnnis et al, 2005) and D2K/M2K
(Downie & Futrelle, 2005).
More detailed information about some of the
topics discussed in this chapter can be found in
conference publications. Implicit Patching was
introduced in Bray and Tzanetakis (2005a) and
Flexible Scheduling in Burroughs, Parkin and
Tzanetakis (2006). Experiments with distributed
audio feature extraction were described in Bray
and Tzanetakis (2005b).
description of marsYas
MARSYAS is a software framework for rapid pro-
totyping, design and experimentation with audio
analysis and synthesis with specific emphasis on
processing music signals in audio format. In this
section we examine the history and motivation
behind the design and development of MARSYAS.
Some of the requirements used to design the latest
version that are applicable to any MIR system are
also discussed. The section ends with an overview
of the software architecture of the framework.
History
The design and development of MARSYAS was
initiated by George Tzanetakis while he was
studying at Princeton University as part of his
graduate research under the supervision of
Perry Cook. The motivating application was a
reimplementation of a well-known music/speech
discriminator work (Scheirer & Slaney, 1997).
In general, implementing an existing algorithm
provides a much deeper understanding of how it
works and in many cases suggests directions for
improvement or extensions. Even though the initial
version was only used internally at Princeton it was
designed to be a general framework with reusable
components rather than a specific implementation.
Gradually MARSYAS was used to conduct new
Search WWH ::




Custom Search