Introduction to Programming for Musicians and Digital Artists (kadenze)

Introduction to Programming for Musicians and Digital Artists (kadenze)

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

Schedule

This course is in adaptive mode and is open for enrollment.
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.

Note: This course is currently not available.

Related Courses

Introduction à la programmation orientée objet (en Java) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Introduction à la programmation orientée objet (en Java) (Coursera)

Ce cours introduit la programmation orientée objet (encapsulation, abstration, héritage, polymorphisme) en l'illustrant en langage Java. Il présuppose connues les bases de la programmation (variables, types, boucles, fonctions, ...). Il est conçu comme la suite du cours « Initiation à la programmation (en Java) ».

Jun 21st 2026
5-12 Weeks
Creativity Toolkit I: Changing Perspectives (Coursera) Coursera
University of Illinois at Urbana-Champaign

Creativity Toolkit I: Changing Perspectives (Coursera)

Thinking and doing the same things faster and better is not enough; we need creativity. Fortunately, creativity is a skill you can learn. This course will examine when, why, and how we can be creative. It examines the cues that trigger us to consider being creative. It provides a road map of the creative process – the process of changing our perspectives – and the kinds of outcomes that result from creativity.

Jun 17th 2026
4 Weeks
Programming for Everybody (Getting Started with Python) (Coursera) Coursera
University of Michigan

Programming for Everybody (Getting Started with Python) (Coursera)

This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course.

Jun 15th 2026
5-12 Weeks
C++程序设计 (Coursera) Coursera
Peking University

C++程序设计 (Coursera)

讲授C++语言中和面向对象有关的概念和语法,如类和对象、运算符重载、继承和多态、类模板和算法模板、标准模板库等。目标是使得学生能够用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序,初步领会面向对象程序设计方法的优势所在。

Jun 15th 2026
5-12 Weeks
Learn to code with AI (Coursera) Coursera
Scrimba

Learn to code with AI (Coursera)

Imagine waking up tomorrow as a web developer. What would you want to build? With AI tools like ChatGPT, you're already a developer, regardless of your experience, if you know how to work with them. So in this course, you'll build functional, interactive front-end projects while learning how to write effective prompts and debug and refine your code with the help of AI.

Jun 17th 2026
2 Weeks
Audio Signal Processing for Music Applications (Coursera) Coursera
Stanford University,Universitat Pompeu Fabra

Audio Signal Processing for Music Applications (Coursera)

In this course you will learn about audio signal processing methodologies that are specific for music and of use in real applications. We focus on the spectral processing techniques of relevance for the description and transformation of sounds, developing the basic theoretical and practical knowledge with which to analyze, synthesize, transform and describe audio signals in the context of music applications.

Jun 15th 2026
5-12 Weeks
Python Data Structures (Coursera) Coursera
University of Michigan

Python Data Structures (Coursera)

This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis. This course will cover Chapters 6-10 of the textbook “Python for Everybody”. This course covers Python 3.

Jun 15th 2026
5-12 Weeks
Algorithmic Thinking (Part 1) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 1) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Jun 15th 2026
4 Weeks
Capstone Project: Teaching Impacts of Technology (Coursera) Coursera
University of California, San Diego

Capstone Project: Teaching Impacts of Technology (Coursera)

In this project-based course you’ll review the Advanced Placement Computer Science Principles course and exam description guide to prepare for the “Explore Task”, where students must research a recent computing innovation and and analyze its impacts on the world. You’ll also review the description of this task from the student perspective and complete the task yourself. Then you’ll assess sample secondary student work by following the APCSP scoring guidelines as well as provide feedback to a fellow learner on their submitted task and receive the same from fellow learners.

Jun 17th 2026
5-12 Weeks
The Art of Music Production (Coursera) Coursera
Berklee College of Music

The Art of Music Production (Coursera)

Explore the art of record production and how to make recordings that other people will love listening to. This course will teach you how to make emotionally moving recordings on almost any recording equipment, including your phone or laptop. The emphasis is on mastering tangible artistic concepts; the gear you use is up to you. You will learn to develop the most important tool in the recording studio: your ears. You will learn to enhance every aspect of your own productions, both sonically and musically, by employing deeper listening skills.

Jun 15th 2026
4 Weeks
HTML, CSS, and Javascript for Web Developers (Coursera) Coursera
Johns Hopkins University

HTML, CSS, and Javascript for Web Developers (Coursera)

Do you realize that the only functionality of a web application that the user directly interacts with is through the web page? Implement it poorly and, to the user, the server-side becomes irrelevant! Today’s user expects a lot out of the web page: it has to load fast, expose the desired service, and be comfortable to view on all devices: from a desktop computers to tablets and mobile phones. In this course, we will learn the basic tools that every web page coder needs to know. We will start from the ground up by learning how to implement modern web pages with HTML and CSS.

Jun 16th 2026
5-12 Weeks