Spring quarter 2006. University of California, San Diego

http://crca.ucsd.edu/~msp/syllabi/270c.06s/

Meeting time and place have yet to be determined, but

The course is organized along ten general topics as follows:

- arithmetic and number theoretic algorithms
- stochastic processes 1: Markov chains and random walks
- stochastic processes 2: modeling deterministic sequences
- stochastic processes 3: continuous-time processes
- combinatorial optimization and constraint problems
- fractals, strange attractors, and L-systems
- linguistic parsers and generators
- applications 1: harmony
- applications 2: rhythm
- applications 3: improvisation

Here are the class patches as of April 27 as compressed tar and zip formats. Or indeed, here's everything .

ASSIGNMENT 1. Make a computer generate repeating sequences like this one:

[0 5 10 2 7 12 4 9 1 6 11 3 8]whose rule is, "add 5 and, if the result is at least 13, subtract 13." If you know a way to do it, represent this in music notation (start at middle C for instance) or in any graphical notation, or synthesize it as sound. Use whatever computer programming environment (Max/Pd/SC? Open Music? C? Basic?) you prefer. You can either bring it on a computer or print out whatever program you ended up with, or just e-mail me the program if it can be represented in plain text. Here is a sample output in music notation:

and here in a crude graphical notation:

ASSIGNMENT 2 (due Thursday, Apr. 20): Make a program (in Pd, Max, C, or whatever) to generate the series [1 2 3 4 5 6 ...], multiply by the golden ratio (about 1.61803), and take the integer part. Sample output:

[1 3 4 6 8 9 11 12 14 16 17 19 21](by the way, I'm using square brackets "[]" just to indicate a sequence of numbers). An alternative representation of the sequence is to report differences between successive numbers:

[2 1 2 2 1 2 1 2 2 1 2 2 1]and a third representation is to report, for each positive integer [1, 2, ...] a "1" if it appears in the sequence and a "0" if it doesn't:

[1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1]

ASSIGNMENT 3 (due Thursday, Apr. 27): Make a program that outputs a sequence of 1s and 0s, in which the density of 1s steadily decreases from 1 (always) to 0 (never). For instance:

[1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]ASSIGNMENT 4 (due Thursday, May 4): Generate a random-walk solo over a 12-bar blues chord progression. A possible way to proceed would be to make a simple random walk and then quantize it down to a scale that changes with the chord. If you don't like the 12-bar blues, make up your own chord progression or perhaps generate one with a Markov chain.

Here is my own feeble attempt ( Wav, 2.5M ); ( mp3, 600K ). The bass and the 'solo' are both random walks, each with its own rhythm and scales.