CCRMA

LISP Workshop for Musicians

Instructor: Juan Pampin


*	Bibliography LISP texts.
General vision of the language.
*	Basic definitions: the LISP forms tree.
Evaluation and levels of evaluation: quote. Using the interactive Listener: practical rudiments. Defining global variables: defvar, defparameter. Bounding variables: setf, setq, set.
*	Lists: construction and deconstruction.
Representing music with lists. Accessing musical objects from lists. Nested lists structures and musical forms. Arrays (short introduction).
*	List Structures, primitives to compare,
        (de)construct and modify musical objects
        represented in list forms.
3-1 Deconstrucion: list-length, length, last, butlast, nth 3-2 Construction: list, append, copy-list 3-3 Identity predicates: eq, eql,equal 3-4 Modification: reverse, subst, substitute, remove.
*	Functions
The defun macro. Describing music transformations as functions. Mapping functions through lists: mapcar. Anonymous lambda functions for local transformations.
*	Logic, conditions and control:
Using logic and conditions to take decisions. 5-1 Test predicates. 5-2 Logic operators. 5-3 Primitives if, when, cond. Arithmetic and mathematic primitives. Association Lists.
*	Recursion: Goedel, Escher, Bach.
Simple iterations using the do and loop macros. Recursive functions vs. iterative functions. 6-1 Simple math examples 6-2 Analyzing and manipulating music form lists. 6-3 Circular note generators and musical operators. Tracing recursive functions: trace, untrace.
*	Final Project: 
for example: Describe the serial network of Boulez Structures II for two pianos, using lists and arrays, combining iterative and recursive functions. Discussion about different solutions to the same problem. Or solve any other musical problem using Lisp.

Last update: 07/05/98

Go to CCRMA homepage.


©1996-98 by Juan Pampin, juan@ccrma.stanford.edu