This book is a practical introduction to computer composition. Its intended audience is student composers interested in learning how computation can provide them with a new paradigm for musical composition. The book therefore uses an accessible example-based approach to explain essential concepts and techniques, showing how these techniques can be integrated into the composer's own creative work. One of the most exciting aspects of computer-based composition is that it does not require years of formal music theory training to understand. Thus if you have a high-school math background and are interested in experimenting with music composition using MIDI and audio synthesis programs, this book is for you. This book will also be of use to computer science and engineering students who are interested in the artistic applications of object-oriented programming techniques and music software design. The book is full of examples and exercises for the reader to perform, study, modify, and adapt to their own musical purposes. All of the examples are available on the accompanying CD. In addition to the many short examples, the book contains a nmber of "Etudes" chapters that appear at regular intervals throughout the book. These are large structured projects that explore some particular technique or topic in detail.
This book is divided into two parts. The first nine chapters comprise an introduction to music programming in the Lisp language. Chapter 1 is introductory, but chapters 2 through 9 give a good selective introduction to computer programming techniques in Lisp. By selective I mean that these chapters are specifically relevant to the material presented in the second part of the book and to musical programming in general. The second half of the book, chapters 10 through 24, provide an introduction to the essential concepts and techniques of computer composition. The first few chapters of this part of the book discuss the representation of sound, musical structure, algorithms, and processes. The material in the remaining chapters can be grouped into four areas of discussion: algorithmic design, mapping and transformations, aleatoric composition, and pattern-based composition. An appendix to the book contains pointers to Lisp documentation that can be found online. Highly recommended to the reader interested in algorithmic composition from a non-application specific point of view.