Computer Programming for Music Applications
This UC Berkeley Music Department course, abbreviated CPMA, is my first semester-length course that I have designed to date. It was taught in the main room of CNMAT.
The Course starts out in the Max/MSP programming environment, focuses on ODOT (CNMAT’s internal update to OSC), and moves into its relationship to syntehsis processes in Max, Gen, gestural processing, and more.
Topics covered include:
- Max and Open Sound Control
- Events and signals, patchers and routines
- Sound file playback, real-time manipulation
- Max + MSP intro, including sub-patchers, abstractions, polyphony
- Grains and granular synthesis, o.granubuf~
- sinusoids~, resonators~, CNMAT Externals at large
- Analysis, re-synthesis
- Architecting Wrappers
- Gestures and behaviors
There were also In-class presentations and discussion that moved the student along in their education in computer music. Many of the students were CS or EECS, and took the course as an opportunity to build interfaces that they could use for improvisation.
The official (outdated) description will be updated for this year, although there are similarities: “Software engineering for musical applications covering programming concepts for live-performance real-time systems as well as cloud-based music information retrieval applications. Topics include the software representation of sound and music, real-time scheduling, analysis of gestures from systems of sensors, common design patterns, analysis and controlled synthesis, and machine learning applications for music understanding and creation. Behavior driven design and test driven development are core ideas that permeate the course.”