[chuck-dev] chuck-dev Digest, Vol 27, Issue 2

Perry R Cook prc at CS.Princeton.EDU
Mon Feb 12 19:05:16 EST 2007

This is a bigger problem in ChucK, where things are
supposed to "do the right thing on the fly" in real
time.  But as you point out, what's the right thing
for a given UG?  I suspect the answer is "it depends."
In fact I'm almost certain about it.

At any rate (no pun intended), Ge is busy this week
preparing for his "pre-FPO" talk/exam, which is a
cryptic Princeton term meaning pre Final Public Oral
(sort of a thesis proposal/defense).  This was instituted
after a series of tragic incidents wherein a PhD
student got all the way to their final thesis defense
and was torpedoed in some profound way.  So the rule is
that if you don't come to the preFPO then you can't
pipe up with any deep critiques at the FPO, which
takes place about 6 months after and has now become
mostly a formality.

Here's the happy announcement:

Ge Wang will present his preFPO on Friday February 16 at 2:00pm in
Room 402.

The members of his committee are: Perry Cook, advisor; Andrew Appel and 
Roger Dannenberg (Carnegie Mellon), readers; Paul Lansky and Brian 
Kernighan, non-readers.  Everyone is invited to attend his talk.  His 
abstract follows below.

ChucK + Audicle: Strongly-timed, On-the-fly Audio Programming Language
and Environment

The computer has long been considered an extremely attractive tool for 
creating, manipulating, and analyzing sound.  Its precision, possibilities 
for new timbres, and potential for fantastical automation make it a 
compelling platform for expression and experimentation - but only to the 
extent that we are able to express to the computer what to do, and how to 
do it.  To this end, the programming language has served, perhaps, as the 
most general, and yet most precise and intimate interface between humans 
and computers.  Furthermore, "domain-specific" languages can bring 
additional expressiveness, conciseness, and perhaps even different ways of 
thinking to the domain (e.g. sound synthesis).

This thesis argues for the philosophy, design, and development of ChucK, a 
domain-specific programming language designed for computer music.  The 
goal is to create a language that is "expressive" and "easy to write and 
read" with respect to time and parallelism, and to provide a platform for 
precise synthesis/analysis and rapid experimentation in computer audio. In 
particular, ChucK provides a syntax for representing information flow, a 
new time-based concurrent programming model that allows programmers to 
easily (and flexibly) control the flow of time (we call this 
"strongly-timed"), and facilities to develop programs "on-the-fly" - as 
they run.  A ChucKian approach to "live coding" as a new musical 
performance paradigm is also described - and ultimately motivates the 
Audicle, a specialized graphical environment designed to facilitate 
on-the-fly programming, to visualize and monitor ChucK programs in 
real-time, and to provide a platform for building highly customizable user 
interfaces.  Additionally, this presentation shall include a brief history 
of computer music and programming, and offer contrast between ChucK and 
other languages and environments.

The various aspects of the ChucK language (with and without Audicle) are 
evaluated in the context of computer music research, performance, and 
pedagogy. As part of an extensive case study, the presentation discusses 
ChucK as a primary teaching and development tool in the Princeton Laptop 
Orchestra (PLOrk), which continues to be a wonderfully useful (and fun) 
platform to observe the effectiveness of ChucK for teaching topics ranging 
from programming to sound synthesis, and for crafting new instruments, 
compositions, and performances for a laptop ensemble.  We also present 
additional applications, including classrooms, live coding "arenas", 
compositions and performances, user studies, and integrations of ChucK 
into other software systems, such as the sound design environment 

More information about the chuck-dev mailing list