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).
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.
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you. They also have student discussion forums, homework/assignments, and online quizzes or exams.
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 job keeping the course engaging and allows us a huge amount of room to be creative while also requiring us to use our knowledge from each section to make music. I would recommend this course to any programmer, whether you are a rookie or a master, because it offers an experience more unique than any other programming course I've taken. The approach to the assignments from each section was refreshing and I look forward to learning more about ChucK and studying under Professor Kapur in the future.
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.
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.
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!!
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
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.
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.
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.
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.
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.
Danila Gomulkincompleted 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!
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.
Everything explained in a very easy manner. Starts off with simple concepts and builds upon them. Never feel like I'm falling behind or can't keep up. As good as any other of the Kadenze courses ie amazing!
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.
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.
This is a great course to learn Programming . ChucK is an interesting language that seems work really well for OSX but not so well for Windows. The TA's and teachers are active in the forums. The gallery of student work is also very motivating to see what other students have done.
Fantastic course. I have learned how to use MAX/MSP in school, but never learned actually programming. This course opened my eyes to how important it is to know programming to build new tools for my music career
An awesome class - highly recommended! Great lectures, easy to follow. Awesome assignments - really fun to do. Looking forward to use Chuck with my guitar as input and integrating Chuck in my Swift programs.