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.
Manual Table of Contents
Demo compositions and tutorials
- (slippery-chicken 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
- Score layout
- Enharmonics
- Output
- Envelopes
Exercises
- Core usage
- Intra-phrasal looping
- sc and CLM
- Post-generation data editing
- Score layout
- Permutations
- L-systems
- Rhythm chains