Enrollment Closed

Open for Enrollment (In Development)

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

Enrollment for this course is currently closed, but the next offering will be available shortly. Check back soon!

Scheduled
5 Sessions / 12 hours of work per session
Price
Free
Included w/ premium membership ($20/month)
Skill Level
Expert
Topics
Synthesis, Computer Programming, Digital Signal Processing (DSP), Faust, Effects
Open For Enrollment

Real-Time Audio Signal Processing in Faust

Real-Time Audio Signal Processing in Faust
Open for Enrollment (In Development)

Would you like to enroll?

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

Enrollment has closed

Enrollment for this course is currently closed, but the next offering will be available shortly. Check back soon!

Scheduled
5 Sessions / 12 hours of work per session
Price
Free
Included w/ premium membership ($20/month)
Skill Level
Expert
Topics
Synthesis, Computer Programming, Digital Signal Processing (DSP), Faust, Effects
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.

schedule

This course is in scheduled mode. Learn more about scheduled courses here.

Session 1: Faust Overview and Language Basics
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.
Session 2: Digging Into Faust’s Semantics
This lecture extends the review of the Faust language started in Session 1. 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.
Session 3: Deploying Faust Programs
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.).
Session 4: Advanced Sound Synthesis in Faust
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 in Session 3.
Session 5: Advanced Sound Processing and Audio Effects in Faust
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”.
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 & 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.