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

Chapter 1 Introduction This book describes techniques for algorithmic composition using Nyquist, a computer language for sound synthesis and composition. The purpose of the book is to assist readers who are interested in composing music using computers . The best way of learning about algorithmic composition is by doing, so this book includes numerous carefully documented examples. Accompanying electronic media (http://www.algocompbook.com) include a full implementation of the Nyquist system for several operating systems as well as files containing most of the program examples in this book. This material and a personal computer are all the reader will need to start making music. The authors assume that the reader has very little experience with Nyquist (or SAL, a language on which Nyquist is based). For this reason, SAL and Nyquist are explained in the first four chapters. The authors assume the reader has an understanding of tonal music theory. Readers may find knowledge of MIDI (The Musical Instrument Digital Interface) (International MIDI Association, 1983; Rothstein, 1992) to be helpful, although most of the examples use Nyquist to generate sound directly. Many wonderful compositions have been written over the years using Nyquist. By making the concepts of algorithmic composition and the details of Nyquist more approachable, the authors hope more people will be enticed to explore the potential of composition by computer. Nyquist is not the only computer music language or system, and any programming language can be used for music composition. Just as the concepts of this book could be expressed in French or Mandarin, the programming concepts you learn here can be transferred to other programming languages. However, the examples in this book wil use one language: Nyquist. Nyquist offers two programming languages, at least on the surface. The first of these languages, SAL, is related to popular programming languages such as Basic and Pascal, but underneath, the semantics of SAL are based on Lisp. Lisp is the second language available to Nyquist programmers. Proponents regard Lisp as simple, elegant, and powerful, while detractors claim that Lisp is confusing. For casual users and novice programmers, SAL is probably simpler, and this book uses SAL. 1.1 SAL The SAL language used in Nyquist is based on, and almost identical to, the SAL implementation in Common Music (Taube 2005). Like 2 Chapter 1 ⋅ ⋅ Introduction Nyquist, Common Music was originally based on Lisp, and SAL was designed and implemented to provide an alternative, perhaps more familiar and easy-to-use syntax for Common Music users. SAL is based on commands containing expressions. The expression “12 + 3” means “the sum of 12 and 3,” and the command “print 12 + 3” means “print the value of the expression ‘12 + 3’.” 1.2 Lisp SAL programs and commands are translated automatically by Nyquist into Lisp, making it easy to mix Lisp programs with SAL programs . The programming language Lisp derives its name from List Processing (Winston, 1989). List processing was developed in 1956 by artificial intelligence researchers Allen Newell, J. C. Shaw, and Herbert Simon, and the Lisp language was invented by John McCarthy (Touretzky, 1990). Since the early days of Lisp, researchers have discovered the power of Lisp’s processing capabilities for music. Music, a time-based art form, oftentimes is conceived as a succession of events. The events may be a series of pitches, articulation patterns, or a succession of rhythms. Figure 1.2.1 depicts a pitch series that is accompanied by a list representation of that series. Each item in the list representation is called an element. Figure 1.2.1: Pitch series represented by (C E D F) Once musical events are described as elements of a list, Lisp functions may be applied to each element of the list to transform the elements. One such example might be to transpose every element of the list in Figure 1.2.1 up a major second returning the list (D Fsharp E G). 1.3 Nyquist Nyquist is an extensible programming environment for sound synthesis and computer-based composition. The development of Nyquist began in 1990 by Roger Dannenberg (1997), and it has evolved with contributions by many people. Nyquist is based on a small implementation of Lisp called XLISP, which was designed and implemented by David Betz in the 1980’s. To support efficient sound synthesis, Nyquist includes some fundamental extensions to XLISP, and this modified XLISP is fully contained within the Nyquist sys- & c œ œ œ œ [3.133.79.70] Project MUSE (2024-04-23 09:39 GMT) 1.4 The...

Share