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.