On-the-fly Programming: Using Code as an Expressive Musical Instrument

Ge Wang, and Perry R. Cook

Proceedings of the International Conference on New Interfaces for Musical Expression

  • Year: 2004
  • Location: Hamamatsu, Japan
  • Pages: 138–143
  • Keywords: code as interface,compiler,concurrency,concurrent audio programming,on-the-fly programming,real-,synchronization,synthesis,time,timing,virtual machine
  • DOI: 10.5281/zenodo.1176683 (Link to paper)
  • PDF link

Abstract:

On-the-fly programming is a style of programming in which the programmer/performer/composer augments and modifies the program while it is running, without stopping or restarting, in order to assert expressive, programmable control at runtime. Because of the fundamental powers of programming languages, we believe the technical and aesthetic aspects of on-the-fly programming are worth exploring. In this paper, we present a formalized framework for on-the-fly programming, based on the ChucK synthesis language, which supports a truly concurrent audio programming model with sample-synchronous timing, and a highly on-the-fly style of programming. We first provide a well-defined notion of on-thefly programming. We then address four fundamental issues that confront the on-the-fly programmer: timing, modularity, conciseness, and flexibility. Using the features and properties of ChucK, we show how it solves many of these issues. In this new model, we show that (1) concurrency provides natural modularity for on-the-fly programming, (2) the timing mechanism in ChucK guarantees on-the-fly precision and consistency, (3) the Chuck syntax improves conciseness, and (4) the overall system is a useful framework for exploring on-the-fly programming. Finally, we discuss the aesthetics of on-the-fly performance.

Citation:

Ge Wang, and Perry R. Cook. 2004. On-the-fly Programming: Using Code as an Expressive Musical Instrument. Proceedings of the International Conference on New Interfaces for Musical Expression. DOI: 10.5281/zenodo.1176683

BibTeX Entry:

  @inproceedings{Wang2004,
 abstract = {On-the-fly programming is a style of programming in which the programmer/performer/composer augments and modifies the program while it is running, without stopping or restarting, in order to assert expressive, programmable control at runtime. Because of the fundamental powers of programming languages, we believe the technical and aesthetic aspects of on-the-fly programming are worth exploring. In this paper, we present a formalized framework for on-the-fly programming, based on the ChucK synthesis language, which supports a truly concurrent audio programming model with sample-synchronous timing, and a highly on-the-fly style of programming. We first provide a well-defined notion of on-thefly programming. We then address four fundamental issues that confront the on-the-fly programmer: timing, modularity, conciseness, and flexibility. Using the features and properties of ChucK, we show how it solves many of these issues. In this new model, we show that (1) concurrency provides natural modularity for on-the-fly programming, (2) the timing mechanism in ChucK guarantees on-the-fly precision and consistency, (3) the Chuck syntax improves conciseness, and (4) the overall system is a useful framework for exploring on-the-fly programming. Finally, we discuss the aesthetics of on-the-fly performance. },
 address = {Hamamatsu, Japan},
 author = {Wang, Ge and Cook, Perry R.},
 booktitle = {Proceedings of the International Conference on New Interfaces for Musical Expression},
 doi = {10.5281/zenodo.1176683},
 issn = {2220-4806},
 keywords = {code as interface,compiler,concurrency,concurrent audio programming,on-the-fly programming,real-,synchronization,synthesis,time,timing,virtual machine},
 pages = {138--143},
 title = {On-the-fly Programming: Using Code as an Expressive Musical Instrument},
 url = {http://www.nime.org/proceedings/2004/nime2004_138.pdf},
 year = {2004}
}