Abstract

Signal processing, including synthesis, is an important component of any digital audio system. Often, however, signal processing is offered with little or no additional support. The goal of Nyquist is to provide an open-ended programming language that supports high-level compositional tasks in addition to low-level signal processing. One of the key advantages of Nyquist is the integration of signal processing, control, and temporal structure within a general-purpose programming language. The programming language Lisp provides an interactive interface, flexibility in manipulating sounds, and a base for performing other related symbolic processing. Sounds are first-class types in Nyquist; hence they can be assigned to variables, passed as parameters, and stored in data structures. Storage for sounds is dynamically allocated as needed, and is reclaimed by automatic garbage collection (Schorr and Waite 1967). This feature allows instruments to be implemented as ordinary Lisp functions, and eliminates the orchestra/score dichotomy found in other systems. Nyquist semantics include behavioral abstraction as introduced by Arctic (Dannenberg 1984; Dannenberg, McAvinney, and Rubine 1986) and Canon (Dannenberg 1989). The motivation for behavioral abstraction is the idea that one should be

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call