JOS Index |
JOS Pubs |
JOS Home |
Below is the schedule of weekly in-class presentations, with pointers
to all associated reading, lecture overheads, and so on. The default
weekly topic is learning the FAUST language for signal processing
and the JUCE development platform for C++ audio plugins.
Additional discussion will be driven by the interests, projects, and
any research activities of the participants. Results and associated
pointers will be logged here.
- Week 1: Course Overview, Project Planning and Introduction to the Faust Language for Audio Signal Processing
- Course Overview Videos:
- Read MUS320C main handout
- Plan your Audio Plugin Project
- What novel signal-processing plugin would you like to have?
- Default Project: Modify a JUCE plugin example (such as one covered in class) to use a new Faust
module in its signal-processing function(s)
- Try out the FAUST Web IDE
(Firefox browser most recommended right now)
Video: FAUST IDE Intro
This appears to be the FAUST IDE of choice for live-coding presentations.
- Optional (we won't be using these in this class):
- Read ``Audio Signal Processing in
up to ``Pattern Matching in FAUST''
- Briefly look over ``Faust Quick Reference''
This has long been the most comprehensive and up to date reference manual for FAUST.
- Briefly read about FAUST ``Architecture Files''
- Briefly see what other sections exist under ``Faust Manual'' at
For example, you'll want to come back to this to learn about support for
MIDI, OSC, sound files, and the various faust2* tools.
- Try making some standalone-apps from the FAUST examples using
faust2caqt, faust2jaqt, faust2jack, or the like.
This is a good way to prototype FAUST plugin modules.
- Week 2: Introduction to the FAUST Libraries
- Continue project discussions in class and beyond
- Continue reading ``Audio Signal Processing in
- Continue with videos from last week
- Continue with reading/perusings from last week
- Week 3: Integrating FAUST modules within interactive programming environments
- Continue interactive video playback with discussion
(FAUST modules in ChucK) by guest lecturers Ge Wang and Romain Michon
- Optional (if for you): Try out faust2puredata and/or faust2max6 and/or faust2supercollider
- Week 4: More FAUST Examples and Introduction to the JUCE Development Framework
- Week 5: Project progress reports, Integrating FAUST in JUCE
- Week 6: JUCE Audio Plugin GUI Options
- Host AutoGUI
- Using faust -xml some.dsp to create XML readable into a juce::ValueTree
(I.e., start with a FAUST standalone app and port its GUI to JUCE via XML. Recall our
first in-class demo: FAUST Standalone App: Graphic Equalizer Example
- FAUST-specified GUI via faust2juce
(Start with a FAUST standalone app and convert it to a JUCE project)
- Run-Time Editable AutoGUI using ``Plugin Gui Magic'' (PGM)
- Custom JUCE GUI Hand-Coded in C++
- JUCE Tutorial: ``Advanced GUI Layout Techniques''
- External controllers (MIDI, OSC) driving the GUI however it's done.
JUCE supports MIDI timestamps down to a resolution of
minimumSubBlockSize, which is 32 samples by default, which is
under 1ms for normal audio sample rates, and matches standard MIDI
pretty well. This is independent of your audio block size.
- Week 7: Example JUCE plugins made using FAUST
- Week 8:
- JUCE + PGM GUI wrap-up
Nick Porcaro guest lecture
- Measuring Acoustic Bodies to use as Impulse Responses (IRs)
Mark Rau guest lecture
- Week 9: Example JUCE+PGM Plugins, GitHub and CMake Workflows
Jatin Chowdhury guest lecture
- Week 10 - Project Presentations
(Five 10-Minute Presentations in 15-Minute Slots)
JOS Index |
JOS Pubs |
JOS Home |
[Comment on this page via email]