bach workshop at Notam

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:

• Introduction to bach: automated composer’s helper
philosophy of the ecosystem
notation editors
basic mechanism of interaction
first useful interface commands
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
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)
lambda cycles
matrices and transposition

DAY 2:


• 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

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:


• solution to assignment

• Introduction to dada:
database structures
queries and SQLite basic syntax
database visualization
feature extraction (via external libraries, or via a preview of ears, if it will be available)

• EXAMPLE: a feature-based drum machine?

Group A) A notational complex example: symbolic Risset rhythms
Group B) Individual work on assignment individual projects

DAY 4:

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)
• ….

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

Individual work on projects/assignments/desiderata.