Thursday, March 21, 2013

Free Introduction to Programming for Digital Artists at CALARTS 10/13


Here is a class from Vanderbilt University. Check it out! I believe that university and college education should be available to everyone. Let me know how this is.

(I am not affiliated with this class, I do not receive compensation for this referral.)

Introduction to Programming for Digital Artists

Ajay Kapur

This course provides a complete introduction to programming for digital musicians and artists, in the real-time multimedia language ChucK. Rich with practical examples and pointers to additional web resources, it can be understood by novices wishing to learn to program interactive arts systems.

Next Session:
October 2013 (9 weeks long)Sign Up
Workload: 2-4 hours/week 

About the Course

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

Course Syllabus

WEEK 0: Introduction
0.1 Interaction Design
0.2 New Musical Instruments
0.3 Why do Digital Artists need to learn how to program?
0.4 Why Open source?
0.5 Why ChucK?

WEEK 1: Basics: Sound, Waves, and ChucK Programming
1.1 Introduction to Sound
1.2 Programming Basics
1.3 Timing
1.4 Control Structures
1.5 Example: Making Sound with Oscillators

WEEK 2: Libraries and Arrays
2.1 Libraries
2.2 Arrays
2.3 Example: Playing a Melody

WEEK 3: WaveTable Synthesis & Sound File Manipulation
3.1 Wavetable Synthesis
3.2 SndBuf
3.3 Example: Making a Sequencer

WEEK 4: Functions
4.1 Declaration
4.2 Advanced Techniques
4.3 Example: Making Chords

WEEK 5: Unit Generators
5.1 Global Special Unit Generators
5.2 Signal Generators:
5.3 Oscillators
5.4 Gain
5.5 FM and Filter Based Synthesis
5.6 Physical Models
5.7 Audio Effects
5.8 Filters
5.9 Envelopes
5.10 Example: Create a Band

WEEK 6: Multi-Threading and Concurrency
6.1 Parallel Processing, Concurrency
6.2 Machine Commands
6.3 A Software Architecture
6.4 Sporking
6.5 Example: Synchronization

WEEK 7: Objects and Classes
7.1 Objects
7.2 Classes
7.3 Example: Build a Smart Mandolin Player

WEEK 8: Polling vs. Events
8.1 Polling
8.2 Events
8.3 Common HCI Input Devices
8.4 Example: Play a Flute with your Keyboard

FAQ

Will I get a Statement of Accomplishment after completing this class?
Yes. Students who successfully complete the class will receive a Statement of Accomplishment signed by the instructor.

No comments:

Post a Comment