Open for Enrollment

You can also start immediately after joining!
Join Now
Go at your own pace
8 Sessions / 6 hours of work per session
Premium membership $20/month
Included w/ premium membership ($20/month)
Skill Level
Video Transcripts
English, Spanish; Castilian, Chinese, Portuguese
Chuck, Digital Arts, Computer Programming, Sound Design, Coding Techniques

Not available for purchase in India

Open for Enrollment

Introduction to Real-Time Audio Programming in ChucK

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
8 Sessions / 6 hours of work per session
Premium membership $20/month
Included w/ premium membership ($20/month)
Skill Level
Video Transcripts
English, Spanish; Castilian, Chinese, Portuguese
Chuck, Digital Arts, Computer Programming, Sound Design, Coding Techniques

Not available for purchase in India

Course Description

The course, lecture, and examples build on each other to teach the fundamentals of programming in general (logic, loops, functions, objects, classes) and also deals with advanced topics including multi-threading, events and signals. Throughout the course, students create meaningful and rewarding expressive digital “instruments” that make sound and music in direct response to program logic. The ChucK language provides precise high-level control over time, audio computation, and user interface elements (track pad, joysticks, etc.). ChucK is used (unknowingly in most cases, via SMule Apps) by millions of users throughout the world, and is the backbone of dozens of academic programs and laptop orchestras. Learning to program using ChucK, through the musical examples provided in this course, will prepare students to program in C++, Java, and other languages. There will be special guest lectures from creators of the ChucK language, Dr. Ge Wang (Stanford University) and Dr. Perry R. Cook (Princeton University).


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

Session 1: Basics: Sound, Waves, and ChucK Programming (July 23, 2024)
Let's begin with the basics of ChucK and computer science, including variables, types, conditional statements, and looping structures.
10 lessons
1. Course Introduction (Premium Exclusive)
2. Chuck History and Introduction (Premium Exclusive)
3. Download and Install (Premium Exclusive)
4. Hello Sine (Premium Exclusive)
5. Hello Sine Score (Premium Exclusive)
6. Data Types and Variables (Premium Exclusive)
7. Time in Chuck (Premium Exclusive)
8. Control Structures: If and Else (Premium Exclusive)
9. Control Structures: For and While Loops (Premium Exclusive)
10. Example: Making Sound with Oscillators (Premium Exclusive)
Session 2: ChucK Libraries and Intro to Arrays (July 30, 2024)
This session introduces libraries built in ChucK, and shows how random numbers and different mathematical equations can be used to make more expressive compositions. We also introduce arrays and show how to use them to make melodies.
6 lessons
1. Introduction to Session 2 (Premium Exclusive)
2. Standard Library and Unit Conversion (Premium Exclusive)
3. Random Numbers (Premium Exclusive)
4. Math Library, Panning & Multi-channel Audio (Premium Exclusive)
5. Arrays (Premium Exclusive)
6. Example: Make Melody (Premium Exclusive)
Session 3: Sound File Manipulation in ChucK (August 6, 2024)
This session we introduce how to use sound files in ChucK and how you can use them to create soundscapes and a techno song.
10 lessons
1. Samples and Sound File Manipulation (Premium Exclusive)
2. Sound File Setup (Premium Exclusive)
3. Samples and Sound Files (Premium Exclusive)
4. SndBuf (Premium Exclusive)
5. SndBuf looping (Premium Exclusive)
6. Reverse a Sample (Premium Exclusive)
7. Sample Management (Premium Exclusive)
8. Stereo Playback (Premium Exclusive)
9. Modulo (Premium Exclusive)
10. Make a Sequencer (Premium Exclusive)
Session 4: Functions in ChucK (August 13, 2024)
This session will introduce the concept of functions and how they can be used in modularizing and organizing your code, and help you create more expressive compositions.
10 lessons
1. Introduction to Session 4 (Premium Exclusive)
2. Introduction to Functions (Premium Exclusive)
3. Basic Function Examples (Premium Exclusive)
4. Local vs. Global (Premium Exclusive)
5. Functions Through Music I (Premium Exclusive)
6. Functions Through Music II (Premium Exclusive)
7. Functions Through Music III (Premium Exclusive)
8. Functions to make form (Premium Exclusive)
9. Recursion (Premium Exclusive)
10. Functions for Chords (Premium Exclusive)
Session 5: Unit Generators and Physical Models (August 20, 2024)
This session we are going to learn how to make audio effects! Through ChucK we will be using built-in synthesis techniques and other concepts to strongly enhance the sounds you use to make your.
13 lessons
1. Introduction to Session 5 (Premium Exclusive)
2. Introduction to Unit Generators (Premium Exclusive)
3. Oscillator Unit Generators (Premium Exclusive)
4. Envelope Unit Generators (Premium Exclusive)
5. Frequency Modulation (Premium Exclusive)
6. Introduction to Physical Models (Premium Exclusive)
7. Filters (Premium Exclusive)
8. Audio Effects (Premium Exclusive)
9. Physical Models - Strings (Premium Exclusive)
10. Physical Models - Wind Instruments (Premium Exclusive)
11. Modal Bar (Premium Exclusive)
12. Shakers (Premium Exclusive)
13. Example: Raga Jam (Premium Exclusive)
Session 6: Multi-Threading and Concurrency (August 27, 2024)
This session our topic will be multi-threading, or how you can make your ChucK program "juggle" multiple things at the same time.
11 lessons
1. Introduction to Concurrency (Premium Exclusive)
2. Concurrency in Chuck - Part I (Premium Exclusive)
3. Concurrency in Chuck - Part II (Premium Exclusive)
4. Machine Commands (Premium Exclusive)
5. Composition Architecture - Example: Creating a Jazz Band (Premium Exclusive)
6. Jazz Band: Bass - Part 1 (Premium Exclusive)
7. Jazz Band: Drums - Part 2 (Premium Exclusive)
8. Jazz Band: Piano - Part 3 (Premium Exclusive)
9. Jazz Band: Flute - Part 4 (Premium Exclusive)
10. Jazz Band: Score - Part 5 (Premium Exclusive)
11. Jazz Band: Initialize - Part 6 (Premium Exclusive)
Session 7: Classes and Object-Oriented Programming (September 3, 2024)
Our focus this session will be object-oriented programming and how you can create your own "objects" to use in your ChucK code.
13 lessons
1. Introduction to Object Oriented Programming (Premium Exclusive)
2. Objects (Premium Exclusive)
3. Classes (Premium Exclusive)
4. Simple Class (Premium Exclusive)
5. Overloading (Premium Exclusive)
6. Private vs. Public (Premium Exclusive)
7. DrumCircle Example: BPM Class (Premium Exclusive)
8. DrumCircle Example: Kick (Premium Exclusive)
9. Static Member Variables (Premium Exclusive)
10. DrumCircle Example: Cowbell (Premium Exclusive)
11. DrumCircle Example: Composition Architecture (Premium Exclusive)
12. Advanced: Inheritance (Premium Exclusive)
13. The Smart Mandolin Example (Premium Exclusive)
Session 8: Live Control: Keyboard, Mouse, MIDI & OSC (September 10, 2024)
Learn how to bring your programming skills into a Live Performance using external input such as HID, MIDI and OSC to control your ChucK programs.
14 lessons
1. Introduction to Session 8 (Premium Exclusive)
2. Introduction to Events (Premium Exclusive)
3. Keyboard Input (Premium Exclusive)
4. Mouse Input (Premium Exclusive)
5. Event Signal (Premium Exclusive)
6. Event Broadcast (Premium Exclusive)
7. Extending Events with Sound (Premium Exclusive)
8. Introduction to MIDI (Premium Exclusive)
9. MIDI Controllers in ChucK: Piano (Premium Exclusive)
10. MIDI Controllers in ChucK: Drum Pad (Premium Exclusive)
11. MIDI Out: ChucK and Robots (Premium Exclusive)
12. Networking with OSC (Premium Exclusive)
13. Networking with OSC II (Premium Exclusive)
14. Conclusion (Premium Exclusive)
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
  • Materials: The ChucK Book
  • Equipment: Computer with installation privileges
  • Software: Download the ChucK software for MacOS X, Windows, and Linux here. It is recommended you have ChucK open and running while watching the lectures so that you can try out some of the concepts as you move through the videos.

Knowing how to navigate and utilize your computer beyond surfing the web will be a vital asset to this course. If you haven’t already, start looking into the command line of your operating system and get a feel for how it works. You will find yourself reaching a point with your projects that miniAudicle cannot handle everything you want it to do.

Not everyone will come from a musical background or have the ability to compose but this class is not just about music. It uses music as a creative and stimulating environment for programming. In the end, you will be learning computer science as well as how to use programming skills for creative projects.

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 California Institute of the Arts.

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.

Plagiarism: Plagiarism is the use of ideas and/or quotations (from the Internet, books, films, television, newspapers, articles, the work of other students, works of art, media, etc.) without proper credit to the author/artist. While the argument in a paper can be enhanced by research, students are cautioned to delineate clearly their own original ideas from source material. Students should introduce source material (either quoted or paraphrased); note when the source material ends; and provide citations for source materials using standard documentation formats. According to CalArts policy, students who misrepresent source material as their own original work and fail to credit it have committed plagiarism and are subject to disciplinary action.

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.