Programming for Musicians and Digital Artists: Creating Music with ChucK offers a complete introduction to programming in the open source music language ChucK. In it, you'll learn the basics of digital sound creation and manipulation while you discover the ChucK language. As you move example-by-example through this easy-to-follow book, you'll create meaningful and rewarding digital compositions and "instruments" that make sound and music in direct response to program logic, scores, gestures, and other systems connected via MIDI or the network.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About this Book
A digital musician must manipulate sound precisely. ChucK is an audio-centric programming language that provides precise control over time, audio computation, and user interface elements like track pads and joysticks. Because it uses the vocabulary of sound, ChucK is easy to learn even for artists with little or no exposure to computer programming.
Programming for Musicians and Digital Artists offers a complete introduction to music programming. In it, you'll learn the basics of digital sound manipulation while you learn to program using ChucK. Example-by-example, you'll create meaningful digital compositions and "instruments" that respond to program logic, scores, gestures, and other systems connected via MIDI or the network. You'll also experience how ChucK enables the on-the-fly musical improvisation practiced by communities of "live music coders" around the world.
Written for readers familiar with the vocabulary of sound and music. No experience with computer programming is required.
Learn ChucK and digital music creation side-by-side
Invent new sounds, instruments, and modes of performance
Written by the creators of the ChucK language
About the Authors
Perry Cook, Ajay Kapur, Spencer Salazar, and Ge Wang are pioneers in the area of teaching and programming digital music. Ge is the creator and chief architect of the ChucK language.
Table of Contents
Introduction: ChucK programming for artists
PART 1 INTRODUCTION TO PROGRAMMING IN CHUCK
Basics: sound, waves, and ChucK programming
Libraries: ChucK's built-in tools
Arrays: arranging and accessing your compositional data
Sound files and sound manipulation
Functions: making your own tools
PART 2 NOW IT GETS REALLY INTERESTING!
Unit generators: ChucK objects for sound synthesis and processing
Synthesis ToolKit instruments
Multithreading and concurrency: running many programs at once
Objects and classes: making your own ChucK power tools
Events: signaling between shreds and syncing to the outside world
Integrating with other systems via MIDI, OSC, serial, and more
Ajay Kapur is currently the Director of the Music Technology program (MTIID) at the California Institute of the Arts, as well as the Associate Dean for Research and Development in Digital Arts. Kapur is also a Senior Lecturer in the Sonic Engineering Labs for Creative Technology (SELCT) at Victoria University of Wellington in New Zealand. He has also published over 80 technical papers and presented lectures across the world on music technology, human computer interface for artists, robotics for making sound, and modern digital orchestras.
Perry R. Cook served as Stanford's Technical Director of the Center for Computer Research in Music and Acoustics, until joining the faculty of Princeton University in 1996 as a Professor of Computer Science, with a joint appointment in music. Along with working for companies such as NeXT Inc., Media Vision, Xenon/Chromatic, Interval Research, and mobile music App giant SMule, Cook has published over 200 technical and music papers and has lectured worldwide on the acoustics of the voice and musical instrument simulation, human perception of sound, and interactive devices for expressive musical performance. He is also the author of the Synthesis Toolkit in C++ (STK), and co-author of the ChucK audio programming language.
Spencer Salazar is a doctoral student at the Stanford Center for Computer Research in Music and Acoustics (CCRMA), researching computer-based forms of music performance and experience. He has created interfaces for ChucK, developed prototype consumer electronics, architected large-scale social music interactions for SMule, composed for laptop and mobile phone ensembles, and taught numerous workshops on computer music topics.
Ge Wang is the creator and chief architect of the ChucK audio programming language. He is an Assistant Professor at Stanford University's Center for Computer Research in Music and Acoustics (CCRMA) where his research includes programming languages and interactive software systems for computer music, mobile and social music, new performance ensembles paradigms (e.g., live coding), interfaces for human-computer interaction, musical visualization, and methodologies for education at the intersection of computer science and music. Ge is also the co-founder of mobile music startup SMule (over 100 million users) and the designer of the iPhone's Ocarina and Magic Piano.