ChucK 是一个并发和强调时间的音频编程语言,主要用于实时声音合成、作曲和表演, 可运行于OS X、Linux、Microsoft Windows和 iOS。相比性能等其他因素的考虑,它的设计更注重程序的可读性与编程灵活性。它原生支持确定性并发和同时多重动态控制率。另外一个关键的功能其对的支持, 可以在程序不停止或重启的情况下,现场增加、删除和修改程序。它有着非常精确的定时/并发模型,允许任意准确的控制。它为作曲家与研究人员而开发的编程工具兼具强大性能与灵活性,包括对复杂声音合成进行开发和调试,以及实时的交互控制。
代码例子
下面是生成声音和音乐一个简单的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;
}
参考资料
外部链接
- [http://chuck.cs.princeton.edu/ ChucK] 官方主页
- [https://web.archive.org/web/20131023215931/http://www.dtic.upf.edu/~gcoleman/chuck/ Graham Coleman 有关ChucK的页面]
- [https://www.youtube.com/watch?v=2rpk461T6l4 Ge Wang 在斯坦福教授ChucK相关的课程]
评论 (0)