Open for Enrollment

You can also start immediately after joining!
Join Now

Would you like to enroll?

Enrollment for this course has closed. But you can enroll in a future offering (please select)

Enrollment has closed

Go at your own pace
5 Sessions / 12 hours of work per session
Price
Free
Included w/ premium membership ($20/month)
Skill Level
Expert
Video Transcripts
English
Topics
Synthesis, Computer Programming, Digital Signal Processing (DSP), Faust, Effects

Not available for purchase in India

Open for Enrollment

Real-Time Audio Signal Processing in Faust

Open for Enrollment
You can also start immediately after joining!

Would you like to enroll?

Enrollment for this course has closed. But you can enroll in a future offering (please select)

Enrollment has closed

Go at your own pace
5 Sessions / 12 hours of work per session
Price
Free
Included w/ premium membership ($20/month)
Skill Level
Expert
Video Transcripts
English
Topics
Synthesis, Computer Programming, Digital Signal Processing (DSP), Faust, Effects

Not available for purchase in India

Course Description

The Faust programming language provides a generic way to implement signal processing algorithms for sound synthesis and processing towards professional audio applications. Thanks to its architecture system, Faust can be used to generate a wide range of ready-to-use elements such as audio plug-ins (e.g., VST, AU, etc.), externals for other computer music environments (e.g., ChucK, Max/MSP, PD, CSOUND, SuperCollider, etc.), standalone applications, mobile apps, web apps, etc. Additionally, it is a great tool to make DSP engines embeddable in larger projects.

This course provides an in-depth overview to the Faust programming language including fundamentals of functional programming. Students will implement a wide range of audio effects and synthesizers from scratch and learn how to turn them into various “finished” audio products. It also emphasizes the use of Faust to create DSP engines usable in existing projects.

The various programming assignments will help students solidify their understanding of the language. They will also give them the opportunity to use Faust in a creative way to implement professional-grade audio applications.

Reviews
schedule

This course is in adaptive mode and is open for enrollment. Learn more about adaptive courses here.

Session 1: Faust Overview and Language Basics (December 17, 2024)
This session gives an overview of the Faust ecosystem and of its various features. Simple high-level programming examples are provided towards making audio plug-ins, mobile and web apps, and externals for PureData and Max/MSP. It also begins a detailed survey of the Faust language that will be continued in Session 2.
10 lessons
1. Introduction
2. Faust Online Editor
3. First Faust Program
4. Adding a Reverb
5. Automating, Triggering, and Generating a Mobile App
6. Using a Sawtooth Oscillator
7. Breath Control
8. Additive Synthesizer
9. Polyphonic Midi Synthesizer
10. Polyphonic Synthesizer and Audio Effect
Session 2: Programming with Faust (December 24, 2024)
This lecture extends the review of the Faust language. Its goal is to present a detailed description of Faust’s semantics through a series of examples. In particular students will learn how to code any visual block diagram in Faust, and express the corresponding mathematical semantics. By the end of this lecture, students should be aware of all the syntactical element of the language and have a basic understanding of them. They will have implemented various simple sound synthesizers and effects from scratch.
9 lessons
1. Learning Faust
2. Basic Faust Primitives
3. Additional Faust Primitives
4. Delays and Tables
5. UI Primitives
6. Programming by Composition
7. Faust Programs
8. User Defined Function
9. Conclusion
Session 3: Sound Synthesis and Processing I: Oscillators, AM, FM, and Subtractive Synthesis (December 31, 2024)
The goal of this session is to implement various sound synthesis techniques (e.g., AM, FM, subtractive, sampling, basic physical modeling, granular) from scratch in Faust. A strong emphasis will be given to making “finished products,” (advanced user interfaces, polyphony and MIDI compatibility, etc.) ready to be converted to some of the platforms presented later.
4 lessons
1. Oscillator Synthesis
2. Amplitude Modulation Synthesis
3. Frequency Modulation Synthesis
4. Subtractive Synthesis
Session 4: Sound Synthesis and Processing II: Filters, Echo, Basic Physical Modeling, Sampling and Granular Synthesis (January 7, 2025)
In this session, various sound processing techniques/audio effects (basic filters, ring modulation, distortion, compressor, Schroeder reverb, flanger, phaser, pitch shifter, etc.) are implemented from scratch in Faust. As for Session 4, a strong emphasis will be given to implementing “finished products” that are “ready to be shipped”.
6 lessons
1. Feedforward (One Zero) Filter
2. Feedback Comb Filter
3. Echo
4. Karplus-Strong
5. Sampling and Simple Granular Synthesis
6. Quick Tour of the Libraries
Session 5: Deploying Faust Programs (January 14, 2025)
This lecture provides a survey of the different Faust targets and shows how audio plug-ins, musical mobile and web apps, standalone applications, etc. can be generated with Faust. It also demonstrates how DSP engines can be embedded in other projects for a wide range of platforms, frameworks, and standards (e.g., web, mobile, VR, etc.).
6 lessons
1. Faust Architectures
2. faust2smartkeyb: Making Smartphone Instruments
3. Plotting Signals
4. faust2api: Marking DSP Engines Using Faust
5. Structure of the Faust Ecosystem
6. Using the C++ DSP Class Generated by Faust
Show off your Certificate of Accomplishment

Verify Your Achievements
Whenever you complete a course as a premium member, you can earn a verified Statement of Accomplishment. These statements are proof that you completed an online course on our platform.

Easily Shareable
Using its unique link, you can share your statement with everyone from future employers and schools, to friends, family, and colleagues. It's the perfect tool to help you land that new job or promotion, apply to college, or simply share your achievements with the world.

Learning Outcomes

Below you will find an overview of the Learning Outcomes you will achieve as you complete this course.

Instructors And Guests
What You Need to Take This Course

Prior Knowledge:

  • Basic Notions of Digital Audio and Signal Processing, Basic Computer Programming, Familiarity with Algebra

Materials:

Equipment:

  • Required: Computer (OSX, Windows, or Linux). Optional: Android smartphone, MIDI controller.

Software:

Additional Information

Please note: Taking part in a Kadenze course as a Premium Member, does not affirm that the student has been enrolled or accepted for enrollment by Stanford University.

Peer Assessment Code of Conduct: Part of what makes Kadenze a great place to learn is our community of students. While you are completing your Peer Assessments, we ask that you help us maintain the quality of our community. Please:

  • Be Polite. Show your fellow students courtesy. No one wants to feel attacked - ever. For this reason, insults, condescension, or abuse will not be tolerated.
  • Show Respect. Kadenze is a global community. Our students are from many different cultures and backgrounds. Please be patient, kind, and open-minded when discussing topics such as race, religion, gender, sexual orientation, or other potentially controversial subjects.
  • Post Appropriate Content. We believe that expression is a human right and we would never censor our students. With that in mind, please be sensitive of what you post in a Peer Assessment. Only post content where and when it is appropriate to do so.

Please understand that posts which violate this Code of Conduct harm our community and may be deleted or made invisible to other students by course moderators. Students who repeatedly break these rules may be removed from the course and/or may lose access to Kadenze.

Students with Disabilities: Students who have documented disabilities and who want to request accommodations should refer to the student help article via the Kadenze support center. Kadenze is committed to making sure that our site is accessible to everyone. Configure your accessibility settings in your Kadenze Account Settings.