YoVDO

Introduction to Real-Time Audio Programming in ChucK

Offered By: California Institute of the Arts via Kadenze

Tags

Digital Media Courses Object-oriented programming Courses Audio Effects Courses Multi-Threading Courses Sound Synthesis Courses

Course Description

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

  • 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.
  • Multi-Threading and Concurrency
    • This session our topic will be multi-threading, or how you can make your ChucK program "juggle" multiple things at the same time.
  • Classes and Object-Oriented Programming
    • Our focus this session will be object-oriented programming and how you can create your own "objects" to use in your ChucK code.
  • ChucK Libraries and Intro to 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.
  • Sound File Manipulation in ChucK
    • This session we introduce how to use sound files in ChucK and how you can use them to create soundscapes and a techno song.
  • Functions in ChucK
    • 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.
  • 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.
  • Live Control: Keyboard, Mouse, MIDI & OSC
    • 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.

Taught by

Ajay Kapur

Tags

Related Courses

Introduction à la programmation orientée objet (en Java)
École Polytechnique Fédérale de Lausanne via Coursera
C++ For C Programmers, Part A
University of California, Santa Cruz via Coursera
Introduction to Programming for Musicians and Digital Artists
California Institute of the Arts via Coursera
Beginning Game Programming with C#
University of Colorado System via Coursera
Paradigms of Computer Programming
Université catholique de Louvain via edX