ChucK

ChucK
ChucK
the ChucK Operator
Paradigm(s) Multi-paradigm
Appeared in 2003[1]
Designed by Ge Wang and Perry R. Cook[1]
Typing discipline strong
OS Cross-platform
License

Mac, Linux, Windows: GNU General Public License

iOS: Closed Source (Not Public)
Website http://chuck.cs.princeton.edu/

ChucK is a concurrent, strongly timed audio programming language for real-time synthesis, composition, and performance,[2] which runs on Mac OS X, Linux, Microsoft Windows, and iPhone/iPad. It is designed to favor readability and flexibility for the programmer over other considerations such as raw performance. It natively supports deterministic concurrency and multiple, simultaneous, dynamic control rates. Another key feature is the ability to add, remove, and modify code on the fly, while the program is running, without stopping or restarting. It has a highly precise timing/concurrency model, allowing for arbitrarily fine granularity. It offers composers and researchers a powerful and flexible programming tool for building and experimenting with complex audio synthesis programs, and real-time interactive control.[citation needed]

ChucK is distributed freely under the terms of the GNU General Public License on Mac OS X, Linux and Microsoft Windows. On iPhone/iPad, ChiP (ChucK for iPhone) is distributed under a limited, closed source license, and is not currently licensed to the public. However, "the core team would like to explores (sic) ways to open ChiP by creating a beneficial environment for everyone".[3]

Contents

Language features

The ChucK programming language is a loosely C-like object-oriented language, with strong static typing.

ChucK is distinguished by the following characteristics:[4]

  • Direct support for real-time audio synthesis
  • A powerful and simple concurrent programming model
  • A unified timing mechanism for multi-rate event and control processing.
  • A language syntax that encourages left-to-right syntax and semantics within program statements.
  • Precision timing: a strongly-timed sample-synchronous timing model.
  • Programs are dynamically compiled to ChucK virtual machine bytecode.
  • A runtime environment that supports on-the-fly programming.

ChucK standard libraries provide:

Code example

The following is a simple ChucK program that generates sound and music:

 // our signal graph (patch)
 SinOsc s => JCRev r => dac;
 // set gain
 .2 => s.gain;
 // set dry/wet mix
 .1 => r.mix;
 
 // an array of pitch classes (in half steps)
 [ 0, 2, 4, 7, 9, 11 ] @=> int hi[];
 
 // infinite time loop
 while( true )
 {
     // choose a note, shift registers, convert to frequency
     Std.mtof( 45 + Std.rand2(0,3) * 12 +
         hi[Std.rand2(0,hi.cap()-1)] ) => s.freq;
 
     // advance time by 120 ms
     120::ms => now;
 }

Uses

ChucK has been used in performances by the Princeton Laptop Orchestra (PLOrk) and for developing Smule applications, including their ocarina emulator.[5] PLOrk organizers attribute some the uniqueness of their performances to the live coding they can perform with ChucK.[6]

See also

References

  1. ^ a b Dean, R. T. (2009). The Oxford handbook of computer music. Oxford Handbooks in Music Series. Oxford University Press US. p. 57. ISBN 0195331613. http://books.google.com/books?id=96ymxXy3wjMC&pg=PA57. 
  2. ^ Ge Wang (2007). "A history of programming and music". In Collins, Nicholas; Rincón, Julio d'Escrivan. The Cambridge companion to electronic music. Cambridge University Press. p. 69. ISBN 0521868610. http://books.google.com/books?id=AJbdPZv1DjgC&pg=PA69. 
  3. ^ Wang, Ge. "ChucKian greetings and updates!". chuck-users mailing list. Princeton University. https://lists.cs.princeton.edu/pipermail/chuck-users/2008-December/003604.html. Retrieved 2011-05-24. 
  4. ^ Wang, G. and P. Cook (2003). "ChucK: A concurrent, on-the-fly audio programming language". Proceedings of the International Computer Music Conference. http://soundlab.cs.princeton.edu/publications/chuck_icmc2003.pdf. 
  5. ^ "Interview: Smule’s Ge Wang on iPhone Apps, Ocarinas, and Democratizing Music Tech". Create Digital Music. July 22, 2009. http://createdigitalmusic.com/2009/07/interview-smules-ge-wang-on-iphone-apps-ocarinas-and-democratizing-music-tech/. Retrieved 2011-05-24. 
  6. ^ "Laptop Orchestra Makes (Sound) Waves". PC Magazine. http://www.pcmag.com/article2/0,2817,2319579,00.asp. "The other thing that set PLOrk apart from the beginning was its use of a text-based program called ChucK, developed by a Princeton graduate student. ChucK allows the user to code quickly—similar to live coding—and "on the fly" for a performance, allowing for the spontaneity and real-time interaction that is important in live music performance. "ChucK is the only language that I know of that was designed from the outset to facilitate that," Trueman says. The program is also "concurrent," meaning that it can handle many different processes going on at once. Its "innate sense of time" allows performers to communicate during live rehearsals and performances, he says, adding that many other laptop musicians probably use a program like Max/MSP (which PLOrk uses in addition to ChucK) or another widely available commercial program. Today some other laptop orchestras—including the Stanford Laptop Orchestra (SLOrk), which was directly inspired by PLOrk—also employ ChucK." 

Further reading

Literature by its authors

Seemingly independent coverage

  • Graham Morrison, (2009) Generate choons with Chuck. Tired of the same old music in the charts, we create our own music from a series of pseudo random numbers. Linux Format issue 125
  • Alan Blackwell and Nick Collins, The Programming Language as a Musical Instrument in P. Romero, J. Good, E. Acosta Chaparro & S. Bryant (Eds). Proc. PPIG 17, pp. 120-130
  • R. T. Dean, ed (2009). The Oxford Handbook of Computer Music. Oxford University Press. pp. 27 and 580. ISBN 9780195331615. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую
Synonyms:
(under the chin), (under the chin) / , , , , , , , , ,


Look at other dictionaries:

  • Chuck D — and Flavor Flav performing at the Bilbao Urban Musikaldia, Vista Alegre bullring on October 8, 2006. Background information Birth name Carlton Do …   Wikipedia

  • Chuck — may refer to: Contents 1 Engineering 2 People 3 Entertainment …   Wikipedia

  • Chuck — Студийный альбом Sum 41 Дата выпуска …   Википедия

  • Chuck D. — (Auftritt in Bilbao, 2006) Chuck D (links) mit Flavor Flav (Auftritt in Bilbao, 2006) Chuck D (bürgerlicher Name Carlton Ridenhour; * …   Deutsch Wikipedia

  • Chuck D — Datos generales Nombre real Carlton Ridenhour Nacimiento …   Wikipedia Español

  • Chuck D — (à gauche) Carlton Douglas Ridenhour plus connu sous le nom de scène de Chuck D est un rappeur, parolier et producteur de musique américain, né le 1er août 1960 à Roosevelt …   Wikipédia en Français

  • chuck — chuck; chuck·ing·ly; chuck·le·head·ed; chuck·ler; chuck·ling·ly; chuck·wal·la; chuck·er; chuck·ie; chuck·le; wood·chuck; …   English syllables

  • Chuck — bezeichnet: ein Maschinenteil, siehe Chuck (Maschinenteil) eine beliebte aber falsche Bezeichnung für Beastie, den BSD Daemon eine Fernsehserie, siehe Chuck (Fernsehserie) ein Studioalbum der Punk Rock Band Sum 41, siehe Chuck (Album) eine… …   Deutsch Wikipedia

  • Chuck D — (Auftritt in Bilbao, 2006) …   Deutsch Wikipedia

  • chuck — Ⅰ. chuck [1] ► VERB informal 1) throw (something) carelessly or casually. 2) give up. 3) (chuck up) vomit. ● chuck it down Cf. ↑chuck it down …   English terms dictionary

  • Chuck — Chuck, n. 1. A slight blow or pat under the chin. [1913 Webster] 2. A short throw; a toss. [1913 Webster] 3. (Mach.) A contrivance or machine fixed to the mandrel of a lathe, for holding a tool or the material to be operated upon. [1913 Webster]… …   The Collaborative International Dictionary of English

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”