Creating Interactive Musical Instruments/Devices with ChucK

UNIVERSITY OF ALBERTA : DEPARTMENT OF MUSIC
MUS 645 : Seminar in Computer Music Composition
“Creating Interactive Musical Instruments/Devices
with ChucK, Analog Electronics, and Arduino”
WINTER 2010
Prerequisite:
MUSIC 545
Class time:
Thursdays, 2-5 pm
Location:
Fine Arts Building, Room 2-7D
Instructor:
Dr. Scott Smallwood
Office: Fine Arts Building, Room 3-53
Email: [email protected]
Phone: 780-492-1510
Office hours:
by appointment
Course Description: This course is a graduate seminar focused on the construction of
interactive sound devices, instruments, critters, etc, using technology. In particular, we
will focus on shared learning of ChucK (an open-source sound programming language),
Processing (an open-source visual interactive programming language), circuit bending
and basic electronics, and microprocessor programming with Arduino. Throughout this
course, students will learn new tools, teach what they have discovered/learned to others,
and work towards a final project for an end of semester public concert.
Required Materials: This course has no required text; all resources will be provided
online, as well as books that will be available in the design lab.
What this course DOES require, however, is that you purchase an Arduino kit. The kit I
recommend is RB-Spa-242 ($65) from Roboshop, available here: website:
http://www.robotshop.ca/arduino-microcontroller-2.html.
You may want to purchase additional items from this shop – such as sensors, extra chips,
etc. But the basic kit will be necessary in order to begin to explore the world of
microprocessor programming.
Evaluation:
Attendance/Participation (20%):
Students are expected to attend seminar, and to come prepared for each with something to
contribute (some more explicitly than others). The idea here is that we are all working on
projects, and as we do that, we learn things along the way. This seminar is designed to
allow for sharing of these discoveries.
Assignments (30%):
There will be three assignments, which if cleverly planned, may be stages in working
toward the final project. Each of the three projects will feature a specific set of skills,
and will be presented in detail to the seminar.
Final Project (50%):
Each student will be expected to complete a final project culminating in a public
performance/presentation at the end of the term. The final project may incorporate
elements from previous assignments, and should feature a combination of skills learned
during the seminar. The final project will be a musical instrument, device, installation, or
paradigm to be used in a musical context. The final project will be evaluated not only on
its technical merits, but also on its musical value.
Final Project Due Date: FRIDAY, APRIL 16
The University of Alberta is committed to the highest standards of academic
integrity and honesty. Students are expected to be familiar with these standards
regarding academic honesty and to uphold the policies of the University in this
respect. Students are particularly urged to familiarize themselves with the
provisions of the Code of Student Behaviour (online at
www.ualberta.ca/secretariat/appeals.htm) and avoid any behaviour which could
potentially result in suspicions of cheating, plagiarism, misrepresentation of facts
and/or participation in an offence. Academic dishonesty is a serious offence and can
result in suspension or expulsion from the University.
Course Outline & Schedule
(Subject to change!)
Policy about course outlines can be found in Section 23.4(2) of the University
Calendar
I.
Building Software Instruments for Laptop with ChucK
Class 1:
Class 2:
Class 3:
Class 4:
Class 5:
Class 6:
II.
Basics – Variables, Time, Synthesis, Loops, Unit Generators
Shreds (Concurrency), Objects, Classes, Modulation, Control
Interaction: HID, MIDI, mapping
Networking: OSC, cross-app messaging, computer-computer
ChucK with Processing / ChucK with Max/MSP
Assignment 1 Share
Analog: Circuit Bending, Analog Electronics, and Interfacing
Class 7: Basic Electronics, Circuit Bending, Prototyping, Oscillators, Amps,
Speakers, Soldering
Class 8: Pots, Piezos, Solar, etc.
Class 9: Assignment 2 Share
III.
Arduino: Programming Microprocessors and Human Computer Interaction
Class 10:
Class 11:
Class 12:
Class 13:
Arduino intro, Processing, coding, basic sensor input and mapping
More sensors, accel/tilt, prox, etc.
Putting it all together
Assignment 3 Share