Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

California Institute of the Arts

Introduction to Real-Time Audio Programming in ChucK

California Institute of the Arts via Kadenze

Overview

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).

Syllabus

Session 1: Basics: Sound, Waves, And ChucK Programming 
Let's begin with the basics of ChucK and computer science, including variables, types, conditional statements, and looping structures. Session 2: Libraries And Arrays 
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. Session 3: Sound File Manipulation 
This session we introduce how to use sound files in ChucK and how you can use them to create soundscapes and a techno song. Session 4: Functions 
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. Session 5: Unit Generators And Physical Models 
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. Session 6: Multi-Threading And Concurrency 
This session our topic will be multi-threading, or how you can make your program "juggle" multiple things at the same time. Session 7: Objects And Classes 
Our focus this session will be object-oriented programming and how you can create your own "objects" to use in your code. Session 8: Live Control: Keyboard, Mouse, MIDI & OSC 
Learn how to bring your programming skills into a Live Performance using HID, MIDI and OSC.

Taught by

Ajay Kapur

Tags

Reviews

5.0 rating, based on 36 Class Central reviews

Start your review of Introduction to Real-Time Audio Programming in ChucK

  • Anonymous

    Anonymous completed this course.

    The course is an easy-to-follow, in-depth introduction to ChucK and music programming. It's an excellent way to learn more about music-making, music theory, and is useful for any coder with any amount of experience. Professor Kapur does an outstanding...
  • Profile image for Jeff Kai-Luen Liang
    Jeff Kai-Luen Liang

    Jeff Kai-Luen Liang completed this course.

    This was an amazing course! Truly. I had no programming skill whatsoever and all this seemed way over my head. But I kept at it and the lectures were clear and easy to follow and the tutors for this class as well as the class forum were extremely helpful. I recommend this course to anyone who is willing to explore sound and composition beyond standard DAWs and vst presets. I really learned a great deal not only in terms of basic programming but also in terms of how to think about and organize sound through programming.
  • Anonymous

    Anonymous is taking this course right now.

    I was scared to learn how to program and just wanted to learn how to use a DAW. But my friend told me about this course and it is changing my life! Not only am i learning computer science, but i am learning new ways to make my music.
  • Anonymous

    Anonymous completed this course.

    I highly recommend this course.
    I am not a programmer and have never done coding, but am a musician at heart. This is an amazing course in terms of the way Dr. Kapur teaches it. The lectures are easy to follow. The material and tutorials are organized in a way that keeps your interest up. I surely added some coding and sound skills to my knowledge base.
  • Anonymous

    Anonymous completed this course.

    The course was awesome, I feel Dr. Kapur is a wonderful teacher and keeps you excited about the material. The videos were easy to follow. It is one of the best online courses that I have taken. Great job Dr. Kapur. I recommend this course to anyone interested in Electronic music.
  • Profile image for Christen Cappello
    Christen Cappello

    Christen Cappello completed this course.

    Ajay Kapur's course is a great introduction to programming both in general, and specifically in relation to electronic music. I found his videos to be very engaging and relatively easy to follow. The class mostly covers the programming language CHUCK, but also briefly explores other subject matter such as acoustics and physical modeling through guest lecturers. This approach adds depth and scope to the technical course work. Great class for imaginative individuals looking to find new tools to express their creativity.
  • Anonymous

    Anonymous completed this course.

    I followed a number of creative coding courses (both visual and music) and this course is one of the best I've done. It's very well structured, well paced and contains interesting new stuff. I bought the book before the course, and the course more or less follows the structure of the book, so there is a really good backup if you have the book. Nice...I'd recommend this course to anyone interested in electronic music, generative music
    & live coding.
  • Anonymous

    Anonymous completed this course.

    I have been developing a class in computer music and wanted to use Chuck as the primary programming tool for students to learn. This class presented an excellent overview of the capabilities of the language with sufficient detail that I became productive rather quickly on creating small projects. I have both a computer science and music background (with some engineering thrown in there too!) so I thoroughly enjoyed the approach taken in presenting this course. This is truly one of the best online courses I have participated in. Excellent job!!
  • Anonymous

    Anonymous completed this course.

    This is one of my favorite class. I have learn a lot about creating music. I want the instructor to know how much I appreciate him and this class and the guest he has invited to help us with our creation of music through computers. Thank you very much. Again I am a women in this industry and it's hard for many women. I want to Again Thank the Instructor for all of his knowledge into this new field which I enjoy very much.
  • Anonymous

    Anonymous completed this course.

    I really enjoyed this course! It was a great way to learn all of the introductory concepts of programming as well as music. The creative aspect of it make it a lot more fun and interesting then the other computer science courses I have taken. The platform, Kadenze, that the course is taken on is easy to use and great! I plan on taking many more courses hosted by them in the future.
  • Profile image for Petr Yakyamsev
    Petr Yakyamsev

    Petr Yakyamsev completed this course, spending 10 hours a week on it and found the course difficulty to be medium.

    Was looking for some way to connect my audio skills with my efforts in programming. And this course is just what I was needed. Very good explanation and many practice tasks. Thanks Kadenze team!
  • Profile image for Danila Gomulkin
    Danila Gomulkin

    Danila Gomulkin completed this course, spending 4 hours a week on it and found the course difficulty to be medium.

    Programming and digital signal processing are real difficult stuff for a newbie. The course provides a novice with all necessary scaffolding to get into it, as it did for me. You really feel a master when you hear your first code sound!
  • Anonymous

    Anonymous is taking this course right now.

    This is a great approach to Chuck, really takes you step by step. Don´t forget to write the code as the teacher does. Every example will become clearer as you keep completing them.
    I found very useful to have the instructor in one screen and my chuck work in an other screen for better understanding.
    I haven´t completed the course but have all intentions of doing so.
  • Anonymous

    Anonymous completed this course.

    I really enjoyed this course. I learned so much about programming and how music works on that side of the computer. The teachers are awesome and the examples they show are so cool! I'm thinking about applying to Calarts now :D.
    If you want to understand programming better and/or explore new sides of music and music technology - you should take this course ;D
    Thank you!
  • Anonymous
    This course is so well made with really relatable teachers. I did not know to code at all when I started and through the music composition assignments I fell in love with coding gaining confidence each week.
  • Anonymous

    Anonymous completed this course.

    I took this course at the same time as Perry Cook´s course from Stanford. They both use ChucK, but this course helped me get the necessary skills I needed in order to really do Perry´s course.´Hard subject matter in computer science is explained very simply in the course. I already know how to program, but needed to learn more about ChucK.
  • Anonymous

    Anonymous completed this course.

    This is a very good course on modern music, it introduce an excellent language for music and the basics of computation. What makes it really cool is the people, the real ones that made the real thing recently and over the yeara of audio synthesis.
  • Anonymous

    Anonymous completed this course.

    I found this course amazing!
    it's really interesting for the newbie as like as for who already knows something about programming. then ChucK is an incredible Programming Language, powerful, with a really clear syntax and an a relatively fast learning curve.
    strongly recommended!
  • Profile image for David Matthew
    David Matthew

    David Matthew completed this course.

    Fantastic course. Not for beginners as such, but as beginner-friendly as Daniel Shiffman was able to make it (and I doubt there's anyone that could do a better job of that). There's a lot to each module, particularly module 3 onwards. But absorbing and taking your time with it is very much worth it.
  • Anonymous

    Anonymous completed this course.

    I audited this course while taking the design courses on Kadenze. Ajay seems to be the CEO of Kadenze and I wanted to learn more about the course he teaches on the platform. Very inspiring and full of energy. You can see how the platform has evolved from this course. Great work Kadenze and CalArts.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.