In lieu of an abstract, here is a brief excerpt of the content:

Reviewed by:
  • Robert Rowe: Machine Musicianship
  • Steven M. Miller
Robert Rowe: Machine Musicianship Hardcover, 2001, ISBN 0-262-18206-8, 399 pages, illustrated, references, index, hybrid CD-ROM/CD-Audio, US$ 47.95; The MIT Press, Five Cambridge Center, Cambridge, Massachusetts 02142-1493, USA; telephone (+1) 800-356-0343; electronic mail mitpress-order@mit.edu; Web mitpress.mit.edu/.

As the author Robert Rowe states in the first paragraph of the first chapter, "Machine Musicianship is both an exploration of the theoretical foundations of analyzing, performing, and composing music with computers, and a tutorial in writing software to pursue these goals." As such, it proceeds simultaneously, and largely seamlessly, as an overview of fundamental concepts and issues in music analysis, composition and performance, a programming tutorial with example implementations in both C++ and Max, a review of related research literature, and a survey of compositional uses of interactive [End Page 89] techniques. As fundamental concepts of musicianship are introduced, they typically are directly encapsulated into general algorithms and then into C++ code and working example applications. In many cases, fragments of Max patches are used as examples, as well.


Click for larger view
View full resolution

Organized into ten chapters, Machine Musicianship groups its materials under cognitive, technical, and musical rubrics. Chapter 1 lays out the motivations behind creating software that incorporates detailed knowledge and "understanding" of traditional music theory and practice. It then briefly introduces the general concepts of algorithmic composition and analysis, including pointing out ways that these tasks can be aided by software which encapsulates and draws upon basic knowledge of musicianship—materials, relationships, and context. Following this is a brief overview of the remaining text, and an introduction to the "Machine Musicianship Library" of C++ source code. This library, included on the accompanying cross-platform hybrid CD-ROM/CD-Audio, is an extensive set of base classes that the author has used to implement the working example applications included on the CD-ROM. As source code, these classes are fully user-extensible and modifiable. C++ programmers should find this a valuable resource with which to pursue their own projects. Unfortunately, Max programmers are not so well provided for; no attempt has been made to implement these base classes as Max objects.

Chapters 2, 3, and 4 present materials organized around the cognitive concepts of symbolic processes, sub-symbolic processes, and segments and patterns, respectively. The focus in these chapters is on developing software implementations of the concepts and techniques of traditional music analysis. Defining symbolic processes as those that are "based on representations of objects and relationships and manipulations of those representations according to some set of rules," chapter 2 introduces several general techniques for algorithmic analysis and composition, and a number that focus specifically on the handling of pitch (of the "standard" 12-tone equal tempered variety, not frequency per se). Chord theory, in terms of classifying, representing, recognizing, and spelling triads (here taken to mean any three-note chord), and by extension individual pitch classes and sets, independent of context, is covered in detail, followed by the introduction of context sensitivity to determine both "missing pitches" and chord type (major or minor). From there, induction of key for a specified passage is considered and several techniques for carrying this out are examined in detail. The final section of the chapter introduces the C++ base classes of the "Machine Musicianship Library" that are at the core of the working examples in the text. In doing so, concepts of object orientation are briefly introduced, and the underlying details of implementing the musical concepts and issues are established.

Chapter 3 introduces a number of sub-symbolic processes, here defined as processes that "learn their behavior from exposure to material . . . this learning engenders models that do not rely on a fixed set of rules." In other words, through training, they learn to map states of inputs to desired output states, and can then recognize and successfully handle novel inputs and arrive at desired outcomes without reliance upon explicit rules or procedures. The classic example of this sort of sub-symbolic process is the neural network. The first section of the chapter introduces the general concept and theoretical underpinnings...

pdf

Share