-
Contents
- University of Michigan Press
- Chapter
- Additional Information
Contents Preface xi Acknowledgments xiii Chapter 1 Introduction 1 1.1 SAL 1 1.2 Lisp 2 1.3 Nyquist 2 1.4 The Nyquist Integrated Development Environment 3 1.5 Algorithmic Composition 4 1.6 Additional References 5 Chapter 2 The History and Philosophy of Algorithmic Composition 6 2.1 The Process of Algorithmic Composition 6 2.2 A Brief History of Algorithmic Processes Applied to Music Composition 7 2.3 Aesthetics of Algorithmic Composition 14 2.4 Suggested Listening 15 Chapter 3 Introduction to SAL 16 3.1 Data 16 3.2 Running Nyquist 18 3.3 SAL Expressions 19 3.4 Functions 21 3.5 Predicates 29 3.6 User-Defined Functions 36 3.7 Getting Help 38 3.8 Programming Errors 38 3.9 Error Messages 38 3.10 Stack Traces 40 3.11 Printing 42 viii Contents Chapter 4 Programming and Nyquist 43 4.1 Getting Started 43 4.2 Nyquist Instruments 46 4.3 Nyquist Scores 48 4.4 Variables 51 4.5 Score Processing 52 Chapter 5 Introduction to Algorithmic Composition 61 5.1 Getting Started 61 5.2 Pitch and Rhythm Notation 64 5.3 Pattern Objects and Item Streams 64 5.4 A Complete Example 68 5.5 Suggested Listening 73 Chapter 6 Printing, Reading, and Debugging 74 6.1 print Command 74 6.2 format Command 74 6.3 display Command 76 6.4 Debugging with #display and #print 77 6.5 Tracing Pattern Evaluation 78 6.6 Reading Data from the Computer Keyboard 80 Chapter 7 Variable Assignment and Scoping 82 7.1 set Command 82 7.2 begin, end, and with 84 7.3 score-gen and Local Variables 86 7.4 Combining with and score-gen 87 7.5 Understanding Variable Scope in SAL 90 7.6 Increment, Decrement, and Other Operators 93 7.7 Assigning Local Variables Interactively 95 7.8 Suggested Listening 97 Chapter 8 Conditionals 99 8.1 if Command 99 8.2 #? Special Form 101 8.3 Using if with begin-end 102 8.4 Using Conditionals in Algorithmic Composition 102 8.5 Conditionals vs. Formulas 105 8.6 Suggested Listening 107 [18.118.120.109] Project MUSE (2024-04-18 23:57 GMT) Contents ix Chapter 9 Sets and Tables 108 9.1 Introduction to Set Theory 108 9.2 List and Set Operations 111 9.3 Tables 117 9.4 Arrays 123 9.5 Suggested Listening 123 Chapter 10 Functional Programming 125 10.1 Introduction to Functional Programming 125 10.2 Mapping a Function over a List 125 10.3 Using the score-apply Function 128 Chapter 11 Recursion 132 11.1 Introduction to Recursion 132 11.2 Single-Test Tail Recursion 132 11.3 List-Cons’ing Recursion 134 11.4 Conditional Augmenting Tail Recursion 136 11.5 Double-Test Tail Recursion 139 11.6 Multiple Recursion 141 11.7 Tracing Function Evaluation 143 11.8 SAL Is Recursive 144 11.9 Using Recursive Forms in Nyquist 145 11.10 Suggested Listening 147 Chapter 12 Iteration 148 12.1 The loop Command with a for-below Clause 148 12.2 The Full Story of for-below 151 12.3 Iterating over the Elements of a List 151 12.4 Using return in a loop 153 12.5 The for-then Clause 154 12.6 Loops with while and until 155 12.7 Reading and Writing Records Using Iteration 157 12.8 score-gen as Iteration 161 12.9 Suggested Listening 162 x Contents Chapter 13 Algorithmic Composition Using Probabilistic Methods 164 13.1 Introduction to Probability 164 13.2 The random Pattern 164 13.3 Graphs and Patterns 168 13.4 The markov Pattern Generator 170 13.5 Patterns Can Specify Next States and Weights 173 13.6 Learning a Markov Process 176 13.7 1/f2 Noise or Brownian Motion 181 13.8 1/f Noise 183 13.9 Suggested Listening 186 13.10 Suggested Reading 186 Chapter 14 Hierarchical and Recursive Musical Structure 187 14.1 Structure from Nested Patterns 187 14.2 Hierarchy in Scores 189 14.3 Encapsulation 194 14.4 Compositional Environments 196 14.5 Suggested Listening 197 Chapter 15 Composing Sonic Microstructure and Macrostructure 198 15.1 Sound Synthesis in Nyquist 199 15.2 A Pattern-Driven Sound Generator 202 15.3 Nyquist Sounds and Scores 205 15.4 Nyquist Sounds and Global Control Functions 208 15.5 Scores and Global Control Functions 211 15.6 Further Explorations 212 15.7 Suggested Listening 212...