ChucK

音频编程语言

ChucK 是一个并发和强调时间的音频编程语言,主要用于实时声音合成、作曲和表演,[3] 可运行于OS XLinuxMicrosoft WindowsiOS。相比性能等其他因素的考虑,它的设计更注重程序的可读性与编程灵活性。它原生支持确定性并发和同时多重动态控制率。另外一个关键的功能其对现场编程英语Live coding的支持, 可以在程序不停止或重启的情况下,现场增加、删除和修改程序。它有着非常精确的定时/并发模型,允许任意准确的控制。它为作曲家与研究人员而开发的编程工具兼具强大性能与灵活性,包括对复杂声音合成进行开发和调试,以及实时的交互控制。[4]

ChucK
the ChucK Operator
编程范型多重编程范式
設計者王戈
发行时间2003年,​21年前​(2003[1]
型態系統强类型
操作系统跨平台- OS X, Linux, Windows
許可證GNU通用公共许可证
iOS: 闭源软件
網站http://chuck.cs.princeton.edu/

代码例子 编辑

下面是生成声音和音乐一个简单的ChucK程序:

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

参考资料 编辑

  1. ^ Dean, R. T. The Oxford handbook of computer music. Oxford Handbooks in Music Series. Oxford University Press US. 2009: 57 [2021-02-22]. ISBN 0-19-533161-3. (原始内容存档于2020-07-29). 
  2. ^ github.com/ccrma/chuck. [2021-01-18]. (原始内容存档于2022-04-10). 
  3. ^ Ge Wang. A history of programming and music. Collins, Nicholas; Rincón, Julio d'Escrivan (编). The Cambridge companion to electronic music. Cambridge University Press. 2007: 69 [2013-11-22]. ISBN 0-521-86861-0. (原始内容存档于2014-01-03). 
  4. ^ ChucK : Strongly-timed, Concurrent, and On-the-fly Music Programming Language. [2013-09-06]. (原始内容存档于2011-04-10). ...offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music. 

外部链接 编辑