This workshop will introduce the bach environment, a set of free and open source libraries for doing computer-aided composition in Max. The main features of the core environment will be discussed, as well as its sibling libraries cage and dada.
The workshop, oriented both to score-based and sound-based musical practices, will be split into frontal lessons, dedicated to discussing the basic principles and to building examples, and one-to-one discussions, dedicated to providing feedback on individual projects.
Basic familiarity with the Max software is necessary.
DAY 1:
MORNING+AFTERNOON
• Introduction to bach: automated composer’s helper
philosophy of the ecosystem
notation editors
basic mechanism of interaction
first useful interface commands
inlet/outlets
separate/gathered/playout syntax
addchord and other basic messages
domain and time representations
navigating the documentation
import/export from other systems (MIDI, MusicXML, OpenMusic, PWGL…)
usage of bach.roll along with waveforms
• Introduction to cage: a simple entry point to bach’s ecosystem
elementary score treatment
electro-spectral processes
profiles
SDIF analysis handling
• Dealing with bach’s nested lists
(a.k.a. Lisp-like linked lists, or llll)
length, depth, tree structure
basic modules and principles (maxdepth, mindepth)
iterations
lambda cycles
matrices and transposition
DAY 2:
MORNING
• Using bach to control synthesis
building a playback system
an introduction to slots
• Using bach to transcribe data
bach.transcribe and recording systems
• Quantization via bach.quantize
AFTERNOON SPLIT
Group A) Notation
• EXAMPLES: stochastic processes: random, weighted-random, distributions…
• EXAMPLES: tempo canons, polytemporality
• EXAMPLES: Markov processes
Group B)
Individual work on assignment
DAY 3:
MORNING
• solution to assignment
• Introduction to dada:
database structures
queries and SQLite basic syntax
database visualization
segmentation
feature extraction (via external libraries, or via a preview of ears, if it will be available)
• EXAMPLE: a feature-based drum machine?
AFTERNOON SPLIT:
Group A) A notational complex example: symbolic Risset rhythms
Group B) Individual work on assignment individual projects
DAY 4:
MORNING
Choice between several topics
• A gentle introduction to bell: the bach evaluation language
The usage of bach.eval to simplify complex patches
• Constraint programming in bach
• Tools for Set Theory?
• Abstracting things: how to build your own library leveraging on bach
• Meta-scores
• ears: a library for buffer manipulation (currently Mac only, not sure if we’ll have a Windows version by May yet)
• ….
AFTERNOON
Individual work on projects/assignments/desiderata.
DAY 5:
• A showcase of personal real-life usages of bach?
• Open schedule: desiderata or specific requests collected in the first four days
AFTERNOON
Individual work on projects/assignments/desiderata.