slippery chicken is documented in the form of a manual (the main source of discursive information and examples), source code documentation (for details on individual methods, classes, and functions), and papers.
In addition there are several articles related to the use of slippery chicken on Michael Edwards's blog. Some of these explore a particular technique in detail, along with code, others are more general.
Manual Table of Contents
Demo compositions and tutorials
- (slippery-chicken code template)
- "Primary Disposition" — Core usage
- "Second Law" —
Intra-phrasal looping
- Setting variables
- Multiple curves in one pitch-seq-palette
- Adjusting instrument attributes for one piece
- Setting tessitura for one piece
- Well-considered set palettes
- An application of fibonacci-transitions
- An application of the chop method
- Combining chop and fibonacci-transitions for intra-phrasal looping
- The rthm-seq-map and orchestration
- Assembling the rthm-seq-map from the chop fragments
- rthm-seq objects of equal length
- re-bar
- Adding a tape part using CLM
- "Nouveau Reich" — User-defined algorithms to generate and manipulate slippery-chicken data
- "Tempus Perfectum" —
Composing with L-Systems
- Defining the L-system elements
- Defining the L-system rules
- Constructing the rthm-seq-map using do-simple-lookup
- Shaping the ensemble's tessitura
- Adding separate computer players to the ensemble
- Setting up the directory and sndfile-palette for CLM output
- Generating the CLM computer parts
- Generating the MIDI and printable score output
- A tonal example — A modular approach to
composing tonal pieces
- The modules: 3- and 4-voiced improvisation patterns
- sc's pitch-selection algorithm and voice-leading
- Converting note-names to pitch-seq numbers
- Generating the set-palette with :transposition
- Using the l-for-lookup class for harmonic progressions
- An assoc-list object to store transposition rules
- Assembling the set-map from the transpositions list
- An assoc-list object to store module combinations
- Assembling the rthm-seq-map from the combos-al
- set-limits for the C-transpositions of the rthm-seqs
- Transposing the set-limits- curves
- Variables for repetition in the rthm-seqs
- The call to make-slippery-chicken
- The individual voices in the rthm-seq-palette
- Enharmonic spellings that reflect the tonality
- Inserting key changes and double-bars
- Changing staff names for same instruments
- Output
- "Reeling Trains" — Composing with
Rhythm Chains
- Functions to auto-insert dynamics and articulation
- Adjusting the chord functions
- Defining the rhythm fragments
- Setting activity and auto-insertion of rests and rhythms
- Setting up the players and adding voices
- Automatic pitch-seq-palettes
- The set-palette and the set-map
- Set-limits for each instrument and each set
- The call to make-slippery-chicken
- Post-generation placement and editing of marks
- Consolidating durations
Featured algorithms
- Fibonacci functions
- chop
- L-systems
- Rhythm Chains
- The "procession" algorithm
- The procession keyword arguments
- General attributes of the make-rthm-chain function
- Explaining make-rthm-chain through a simple example
- Using fibonacci-transitions instead of procession
- An extra level of fibonacci-transitions
- Some useful post-generation editing methods
- consolidate-notes
- consolidate-rests-max
- tie-over-notes
- map-over-bars
- re-bar
- add-voice
- Permutations
Supporting documentation
- Objects, slots, methods, functions, and keywords
- Pitches
- Rhythms
- Instruments, players, and the ensemble
- Articulation, dynamics, performance indications, and note-heads
- Tempo
- Post-generation data editing
- slippery chicken and CLM
- Setting the output directory
- The sndfile-palette
- The call to cmn-play
- How it produces the new sound files
- Start times, end times, and durations
- Base frequency
- Source sound file groups
- Other useful sndfile class slots
- Other useful clm-play arguments
- clm-play arguments for output format
- Tape parts with independent rhythmic structures
- User-defined CLM instruments with clm-play
- Score layout
- Enharmonics
- Output
- Envelopes
- slippery chicken and OSC
Exercises
- Core usage
- Intra-phrasal looping
- sc and CLM
- Post-generation data editing
- Score layout
- Permutations
- L-systems
- Rhythm chains