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