music 267/177 – custom programming for music – winter 2022
instructor – tom erbe – tre@music.ucsd.edu
ta – devansh zurale – dzurale@ucsd.edu
•••••topic
this year we will be learning to program music software in a number of contexts. PD/Max externals, computer applications, or embedded processors. to do this we could cover 5 topics.
- c programming
- PD external programming
- Embedded programming on STM32F4/7 bare metal or electrosmith daisy
- JUCE music application API
- computer music/signal processing algorithms
••••likely schedule
- introduction, discussion, basics, PD externals
- dsp code 1 – amplifiers and distortion (first assignment)
- STM programming – ADC and DAC, gates, CODEC, analog connections
- dsp code 2 – oscillators and sampling
- dsp code 3 – filters (second assignment)
- JUCE API – plugins and applications – GUI, parameters, MIDI, audio
- dsp code 3 – delay reverb
- other topics as interest or need requires (final assignment)
••••texts – software – hardware
all of these texts are suggested, but not required. however, all of these books will help you solve programming problems or give you signal processing ideas
- C Primer Plus by Stephen Prata
- Computer Music by Charles Dodge
- DAFX by Udo Zolzer
- ARM Cortex M4 Cookbook by Mark Fisher
- DIGITAL SIGNAL PROCESSING AND APPLICATIONS : USING THE ARM CORTEX M4 by Donald Reay
PD is required for PD external programming
JUCE API from www.juce.com
For ARM programming obtain either an STM32F4Discovery Board or an STM32F7Discovery. The F4 board is slightly slower and has only sound out, but should be sufficient for this class. The F7 board has a touch display and sound in and out (though not simultaneously)
STM32F407G-DISC1 $21.70
STM32F746G-DISCO $56.25
As of this year there is a much simpler ARM board available. The Electrosmith Daisy Seed. It is $27.95, but I suggest either the POD, PETAL or PATCH, as they come with easy to use knobs and jacks (the POD is least expensive at $84).
•••••my office hours
9 – 5 tuesday and thursday
•••••class requirements
3 projects of increasing complexity…. one is a final project. students will be required to use their final project in a piece or for research.
****class notes
all class keynotes and examples will be on the class canvas and synthnotes.ucsd.edu