Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

ChucK

From Wikipedia, the free encyclopedia
Audio programming language
For other uses, seeChuck (disambiguation).
ChucK
Chuck-2023
ParadigmMulti-paradigm
Designed byGe Wang
First appeared2003; 23 years ago (2003)[1]
Stable release
1.5.2.4 / April 2024; 1 year ago (2024-04)[2]
Typing disciplineStrong
OSCross-platform
LicenseMac,Linux,Windows:GPL-2.0-or-later
iOS: Closed Source (Not Public)
Websitechuck.cs.princeton.edu

ChucK is a concurrent, strongly timed audioprogramming language for real-time synthesis, composition, and performance,[3]which runs onLinux,Mac OS X,Microsoft Windows, andiOS. It is designed to favor readability and flexibility for the programmer over other considerations such as raw performance. It natively supports deterministicconcurrency and multiple, simultaneous, dynamic control rates. Another key feature is the ability tolive code; adding, removing, and modifying 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 complexaudio synthesis programs, and real-time interactive control.[4]

ChucK was created and chiefly designed byGe Wang as a graduate student working withPerry R. Cook.[1] ChucK is distributed freely under the terms of theGNU General Public License onMac OS X,Linux andMicrosoft Windows. OniPhone and 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 has stated that it would like to explore "ways to open ChiP by creating a beneficial environment for everyone".[5]

Language features

[edit]

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

ChucK is distinguished by the following characteristics:[6]

  • Direct support for real-timeaudio synthesis
  • A powerful and simpleconcurrent 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 ChucKvirtual machinebytecode.
  • Aruntime environment that supportson-the-fly programming.
  • The ChucK Operator (=>) that can be used in several ways to "chuck" any ordered flow of data from left to right.

ChucK standard libraries provide:

Code example

[edit]

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

// signal graph (patch) SinOsc s => JCRev r => dac; .2 => s.gain;// dry/wet mix (for reverb) .1 => r.mix;// an array of pitch classes (semitones) [ 0, 2, 4, 7, 9, 11 ] @=>int hi[];// do forever: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     120::ms =>now; }

Uses

[edit]

ChucK has been used in performances by thePrinceton Laptop Orchestra (PLOrk) and for developingSmule applications, including theirocarinaemulator.[8]

PLOrk organizers attribute some of the uniqueness of their performances to thelive coding they can perform with ChucK.[9]

See also

[edit]

References

[edit]
  1. ^abDean, R. T. (2009).The Oxford handbook of computer music. Oxford Handbooks in Music Series. Oxford University Press US. p. 57.ISBN 0-19-533161-3.
  2. ^"github.com/ccrma/chuck". Retrieved2021-01-18.
  3. ^Wang, Ge (2008).The ChucK Audio Programming Language: A Strongly-timed and On-the-fly Environ/mentality (Ph.D.). Princeton University.
  4. ^"ChucK : Strongly-timed, Concurrent, and On-the-fly Music Programming Language".Archived from the original on 2003-11-18. Retrieved2013-09-06....offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music.
  5. ^Wang, Ge."ChucKian greetings and updates!".chuck-users mailing list. Princeton University. Retrieved2011-05-24.
  6. ^Wang, G. and P. Cook (2003)."ChucK: A concurrent, on-the-fly audio programming language"(PDF).Proceedings of the International Computer Music Conference.
  7. ^"FLOSS manual".Flossmanuals. Retrieved2021-01-18.
  8. ^Kirn, Peter (July 22, 2009)."Interview: Smule's Ge Wang on iPhone Apps, Ocarinas, and Democratizing Music Tech".Create Digital Music. Retrieved2011-05-24.
  9. ^Petersen, Brittany (2008-06-11)."Laptop Orchestra Makes (Sound) Waves".PC Magazine. Archived fromthe original on 2017-07-11. Retrieved2017-08-25.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

[edit]

Literature by its authors

[edit]

Seemingly independent coverage

[edit]

External links

[edit]
  • ChucK homepage at Princeton University
  • ChucK mirror at Stanford University
  • ChucK FLOSS manual


People
CSIRAC.
Programs and
instruments
Places
Techniques
Compositions
Retrieved from "https://en.wikipedia.org/w/index.php?title=ChucK&oldid=1311040977"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp