695:
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.
439:
1106:
1101:
216:; 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 complex
694:
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
251:, 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".
34:
564:...offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music.
1233:
1105:
339:
Unit analyzers (UAnae) - blocks that perform analysis functions on audio signals and/or metadata input, and produce metadata analysis results as output - ie FFT/IFFT,
208:. It is designed to favor readability and flexibility for the programmer over other considerations such as raw performance. It natively supports deterministic
1253:
649:
1283:
1268:
1397:
452:
1387:
1147:
1258:
977:
674:
427:
emulator. PLOrk organizers attribute some of the uniqueness of their performances to the live coding they can perform with ChucK.
861:
917:
842:
1362:
897:
444:
46:
1372:
727:
1304:
495:
1382:
306:
The ChucK Operator (=>) that can be used in several ways to "chuck" any ordered flow of data from left to right.
577:
1377:
552:
209:
880:. Tired of the same old music in the charts, we create our own music from a series of pseudo random numbers.
1367:
1152:
1142:
970:
87:
833:
1340:
1248:
416:
232:
154:
1132:
817:
1030:
1025:
852:
801:
785:
603:
769:
738:
1299:
963:
901:
in P. Romero, J. Good, E. Acosta
Chaparro & S. Bryant (Eds). Proc. PPIG 17, pp. 120–130
746:
286:
A language syntax that encourages left-to-right syntax and semantics within program statements.
277:
20:
1243:
905:
485:
1392:
189:
41:
624:
511:
8:
1314:
1273:
212:
and multiple, simultaneous, dynamic control rates. Another key feature is the ability to
1060:
1020:
682:
534:
The ChucK Audio
Programming Language: A Strongly-timed and On-the-fly Environ/mentality
320:
1005:
913:
723:
491:
333:
244:
201:
150:
793:
Proceedings of the
International Conference on New Interfaces for Musical Expression
549:"ChucK : Strongly-timed, Concurrent, and On-the-fly Music Programming Language"
1157:
650:"Interview: Smule's Ge Wang on iPhone Apps, Ocarinas, and Democratizing Music Tech"
137:
125:
818:"The Audicle: A context-sensitive, on-the-fly audio programming environ/mentality"
532:
259:
The ChucK programming language is a loosely C-like object-oriented language, with
1167:
1050:
293:
217:
53:
887:
33:
1162:
1127:
1090:
1075:
1070:
1055:
986:
892:
329:
260:
130:
1045:
1356:
1202:
1015:
756:
340:
228:
118:
490:. Oxford Handbooks in Music Series. Oxford University Press US. p. 57.
1333:
1085:
1065:
1000:
946:
882:
1309:
1207:
1172:
1040:
1035:
678:
300:
271:
248:
213:
113:
834:"On-the-fly programming: Using code as an expressive musical instrument"
362:
The following is a simple ChucK program that generates sound and music:
1010:
283:
A unified timing mechanism for multi-rate event and control processing.
395:
Std.mtof( 45 + Std.rand2(0,3) * 12 + hi ) => s.freq;
1228:
1192:
1187:
1177:
462:
192:
for real-time synthesis, composition, and performance, which runs on
770:"Combining analysis and synthesis in the ChucK programming language"
289:
Precision timing: a strongly timed sample-synchronous timing model.
1197:
457:
236:
197:
142:
1182:
1080:
955:
934:
548:
424:
347:
224:
58:
170:
1278:
1137:
1100:
786:"Yeah ChucK it! => Dynamic, controllable, interface mapping"
1263:
1238:
940:
825:
In
Proceedings of the International Computer Music Conference
420:
240:
193:
146:
853:"ChucK: A concurrent, on-the-fly audio programming language"
604:"ChucK: A concurrent, on-the-fly audio programming language"
1212:
802:"Designing and implementing the ChucK programming language"
314:
809:
777:
611:
717:
266:
ChucK is distinguished by the following characteristics:
205:
158:
393:// choose a note, shift registers, convert to frequency
231:. ChucK is distributed freely under the terms of the
368:
SinOsc s => JCRev r => dac; .2 => s.gain;
601:
434:
783:
719:Artful Design: Technology in Search of the Sublime
870:
739:"ChucK: A strongly-timed computer music language"
1354:
912:. Oxford University Press. pp. 27 and 580.
898:The Programming Language as a Musical Instrument
767:
841:Proceedings of the International Conference on
736:
784:Wang, G; Misra, A.; Kapur, A; Cook, P (2005).
971:
799:
220:programs, and real-time interactive control.
709:
1269:Center for New Music and Audio Technologies
415:ChucK has been used in performances by the
292:Programs are dynamically compiled to ChucK
978:
964:
904:
524:
479:
477:
453:Comparison of audio synthesis environments
223:ChucK was created and chiefly designed by
850:
831:
815:
737:Wang, G.; Cook, P.; Salazar, S. (2015).
715:
672:
374:// an array of pitch classes (semitones)
862:International Computer Music Conference
474:
1355:
768:Wang, G; Fiebrink, R; Cook, P (2007).
757:"The ChucK Audio Programming Language"
675:"Laptop Orchestra Makes (Sound) Waves"
188:is a concurrent, strongly timed audio
959:
910:The Oxford Handbook of Computer Music
843:New Interfaces for Musical Expression
800:Wang, G.; Cook, P.; Misra, A (2005).
487:The Oxford handbook of computer music
332:(UGens) - ie oscillators, envelopes,
754:
647:
530:
483:
445:Free and open-source software portal
299:A runtime environment that supports
254:
227:as a graduate student working with
13:
985:
703:
310:ChucK standard libraries provide:
14:
1409:
1398:Synchronous programming languages
1244:Computer Music Center at Columbia
928:
673:Petersen, Brittany (2008-06-11).
578:"ChucKian greetings and updates!"
1388:Audio software with JACK support
1104:
1099:
937:homepage at Princeton University
761:PhD Thesis, Princeton University
575:
437:
32:
555:from the original on 2003-11-18
357:
871:Seemingly independent coverage
666:
641:
617:
595:
569:
541:
537:(Ph.D.). Princeton University.
504:
423:applications, including their
1:
943:mirror at Stanford University
722:. Stanford University Press.
648:Kirn, Peter (July 22, 2009).
602:Wang, G. and P. Cook (2003).
468:
270:Direct support for real-time
346:Serial IO capabilities - ie
161:: Closed Source (Not Public)
93:1.5.2.4 / April 2024
7:
1363:Audio programming languages
851:Wang, G.; Cook, P. (2003).
832:Wang, G.; Cook, P. (2004).
816:Wang, G.; Cook, P. (2004).
430:
419:(PLOrk) and for developing
370:// dry/wet mix (for reverb)
95:; 5 months ago
70:; 21 years ago
10:
1414:
1341:Mortuos Plango, Vivos Voco
1249:Experimental Music Studios
878:Generate choons with Chuck
417:Princeton Laptop Orchestra
233:GNU General Public License
18:
16:Audio programming language
1373:Electronic music software
1325:
1292:
1221:
1133:Composers Desktop Project
1113:
1097:
993:
710:Literature by its authors
165:
136:
124:
112:
108:
86:
82:
64:
52:
40:
31:
1031:Gottfried Michael Koenig
876:Graham Morrison, (2009)
582:chuck-users mailing list
512:"github.com/ccrma/chuck"
1383:Cross-platform software
1305:Artificial intelligence
1300:Algorithmic composition
410:
366:// signal graph (patch)
747:Computer Music Journal
584:. Princeton University
301:on-the-fly programming
278:concurrent programming
276:A powerful and simple
21:Chuck (disambiguation)
1378:Software synthesizers
353:File IO capabilities.
654:Create Digital Music
484:Dean, R. T. (2009).
343:/Centroid, RMS, etc.
336:ugens, filters, etc.
261:strong static typing
190:programming language
19:For other uses, see
1368:Free audio software
1279:Oberlin TIMARA Labs
1274:Princeton Sound Lab
860:Proceedings of the
65:First appeared
28:
1061:Jean-Claude Risset
1021:Giuseppe di Giugno
895:and Nick Collins,
321:Open Sound Control
26:
1350:
1349:
1315:Digital synthesis
1006:Richard Boulanger
919:978-0-19-533161-5
755:Wang, G. (2008).
716:Wang, G. (2018).
531:Wang, Ge (2008).
372:.1 => r.mix;
334:synthesis toolkit
326:HID connectivity.
317:input and output.
255:Language features
245:Microsoft Windows
202:Microsoft Windows
183:
182:
114:Typing discipline
1405:
1158:Laptop orchestra
1108:
1103:
980:
973:
966:
957:
956:
923:
866:
857:
847:
838:
828:
822:
812:
806:
796:
790:
780:
774:
764:
751:
743:
733:
698:
697:
691:
690:
681:. Archived from
670:
664:
663:
661:
660:
645:
639:
638:
636:
635:
621:
615:
614:
608:
599:
593:
592:
590:
589:
573:
567:
566:
561:
560:
545:
539:
538:
528:
522:
521:
519:
518:
508:
502:
501:
481:
447:
442:
441:
440:
406:
402:
398:
394:
390:
386:
383:
379:
375:
371:
367:
179:
176:
174:
172:
155:GPL-2.0-or-later
103:
101:
96:
78:
76:
71:
54:Designed by
36:
29:
25:
1413:
1412:
1408:
1407:
1406:
1404:
1403:
1402:
1353:
1352:
1351:
1346:
1321:
1310:Sound synthesis
1288:
1217:
1168:MIDI controller
1115:
1109:
1095:
1051:Miller Puckette
989:
984:
953:
931:
926:
920:
873:
855:
836:
820:
804:
788:
772:
741:
730:
712:
706:
704:Further reading
701:
688:
686:
671:
667:
658:
656:
646:
642:
633:
631:
623:
622:
618:
606:
600:
596:
587:
585:
574:
570:
558:
556:
547:
546:
542:
529:
525:
516:
514:
510:
509:
505:
498:
482:
475:
471:
443:
438:
436:
433:
413:
408:
404:
400:
397:// advance time
396:
392:
388:
384:
381:
377:
373:
369:
365:
360:
330:Unit generators
294:virtual machine
272:audio synthesis
257:
249:iPhone and iPad
218:audio synthesis
169:
157:
104:
99:
97:
94:
74:
72:
69:
24:
17:
12:
11:
5:
1411:
1401:
1400:
1395:
1390:
1385:
1380:
1375:
1370:
1365:
1348:
1347:
1345:
1344:
1337:
1329:
1327:
1323:
1322:
1320:
1319:
1318:
1317:
1307:
1302:
1296:
1294:
1290:
1289:
1287:
1286:
1281:
1276:
1271:
1266:
1261:
1256:
1251:
1246:
1241:
1236:
1231:
1225:
1223:
1219:
1218:
1216:
1215:
1210:
1205:
1200:
1195:
1190:
1185:
1180:
1175:
1170:
1165:
1160:
1155:
1150:
1145:
1140:
1135:
1130:
1125:
1119:
1117:
1111:
1110:
1098:
1096:
1094:
1093:
1091:Iannis Xenakis
1088:
1083:
1078:
1073:
1071:Laurie Spiegel
1068:
1063:
1058:
1056:Roger Reynolds
1053:
1048:
1043:
1038:
1033:
1028:
1023:
1018:
1013:
1008:
1003:
997:
995:
991:
990:
987:Computer music
983:
982:
975:
968:
960:
951:
950:
944:
938:
930:
929:External links
927:
925:
924:
918:
908:, ed. (2009).
902:
893:Alan Blackwell
890:
872:
869:
868:
867:
848:
829:
813:
797:
781:
765:
752:
734:
729:978-1503600522
728:
711:
708:
707:
705:
702:
700:
699:
665:
640:
625:"FLOSS manual"
616:
594:
568:
540:
523:
503:
496:
472:
470:
467:
466:
465:
460:
455:
449:
448:
432:
429:
412:
409:
382:// do forever:
364:
359:
356:
355:
354:
351:
344:
337:
327:
324:
318:
308:
307:
304:
297:
290:
287:
284:
281:
274:
256:
253:
181:
180:
167:
163:
162:
140:
134:
133:
131:Cross-platform
128:
122:
121:
116:
110:
109:
106:
105:
92:
90:
88:Stable release
84:
83:
80:
79:
66:
62:
61:
56:
50:
49:
47:Multi-paradigm
44:
38:
37:
15:
9:
6:
4:
3:
2:
1410:
1399:
1396:
1394:
1391:
1389:
1386:
1384:
1381:
1379:
1376:
1374:
1371:
1369:
1366:
1364:
1361:
1360:
1358:
1343:
1342:
1338:
1336:
1335:
1331:
1330:
1328:
1324:
1316:
1313:
1312:
1311:
1308:
1306:
1303:
1301:
1298:
1297:
1295:
1291:
1285:
1282:
1280:
1277:
1275:
1272:
1270:
1267:
1265:
1262:
1260:
1257:
1255:
1252:
1250:
1247:
1245:
1242:
1240:
1237:
1235:
1232:
1230:
1227:
1226:
1224:
1220:
1214:
1211:
1209:
1206:
1204:
1203:SuperCollider
1201:
1199:
1196:
1194:
1191:
1189:
1186:
1184:
1181:
1179:
1176:
1174:
1171:
1169:
1166:
1164:
1161:
1159:
1156:
1154:
1151:
1149:
1146:
1144:
1141:
1139:
1136:
1134:
1131:
1129:
1126:
1124:
1121:
1120:
1118:
1112:
1107:
1102:
1092:
1089:
1087:
1084:
1082:
1079:
1077:
1074:
1072:
1069:
1067:
1064:
1062:
1059:
1057:
1054:
1052:
1049:
1047:
1044:
1042:
1039:
1037:
1034:
1032:
1029:
1027:
1026:Charles Dodge
1024:
1022:
1019:
1017:
1016:John Chowning
1014:
1012:
1009:
1007:
1004:
1002:
999:
998:
996:
992:
988:
981:
976:
974:
969:
967:
962:
961:
958:
954:
948:
945:
942:
939:
936:
933:
932:
921:
915:
911:
907:
903:
900:
899:
894:
891:
889:
885:
884:
879:
875:
874:
864:
863:
854:
849:
845:
844:
835:
830:
826:
819:
814:
810:
803:
798:
794:
787:
782:
778:
771:
766:
762:
758:
753:
749:
748:
740:
735:
731:
725:
721:
720:
714:
713:
696:
685:on 2017-07-11
684:
680:
676:
669:
655:
651:
644:
630:
626:
620:
612:
605:
598:
583:
579:
572:
565:
554:
550:
544:
536:
535:
527:
513:
507:
499:
497:0-19-533161-3
493:
489:
488:
480:
478:
473:
464:
461:
459:
456:
454:
451:
450:
446:
435:
428:
426:
422:
418:
363:
352:
349:
345:
342:
341:Spectral Flux
338:
335:
331:
328:
325:
322:
319:
316:
313:
312:
311:
305:
302:
298:
295:
291:
288:
285:
282:
279:
275:
273:
269:
268:
267:
264:
262:
252:
250:
246:
242:
238:
234:
230:
229:Perry R. Cook
226:
221:
219:
215:
211:
207:
203:
199:
195:
191:
187:
178:
168:
164:
160:
156:
152:
148:
144:
141:
139:
135:
132:
129:
127:
123:
120:
117:
115:
111:
107:
91:
89:
85:
81:
67:
63:
60:
57:
55:
51:
48:
45:
43:
39:
35:
30:
22:
1339:
1334:Illiac Suite
1332:
1326:Compositions
1122:
1114:Programs and
1086:Barry Vercoe
1066:Curtis Roads
1001:Marc Battier
952:
949:FLOSS manual
909:
896:
883:Linux Format
881:
877:
859:
840:
824:
808:
792:
776:
760:
745:
718:
693:
687:. Retrieved
683:the original
668:
657:. Retrieved
653:
643:
632:. Retrieved
629:Flossmanuals
628:
619:
610:
597:
586:. Retrieved
581:
571:
563:
557:. Retrieved
543:
533:
526:
515:. Retrieved
506:
486:
414:
361:
358:Code example
309:
265:
258:
222:
185:
184:
1393:Live coding
1208:TidalCycles
1173:Music Mouse
1116:instruments
1046:GĂ©rard Pape
1041:Max Mathews
1036:Paul Lansky
679:PC Magazine
210:concurrency
1357:Categories
1293:Techniques
1011:David Cope
906:R. T. Dean
689:2017-08-25
659:2011-05-24
634:2021-01-18
588:2011-05-24
576:Wang, Ge.
559:2013-09-06
517:2021-01-18
469:References
391:) {
175:.princeton
1229:Bell Labs
1193:Riffusion
1188:Radiodrum
1178:Pure Data
463:Pure Data
296:bytecode.
214:live code
1198:Sonic Pi
553:Archived
458:Sonic Pi
431:See also
323:support.
237:Mac OS X
198:Mac OS X
42:Paradigm
1183:MUSIC-N
1163:Max/MSP
1081:Trimpin
1076:The Hub
425:ocarina
376:@=>
348:Arduino
225:Ge Wang
166:Website
151:Windows
138:License
100:2024-04
98: (
73: (
59:Ge Wang
1239:CEMAMu
1222:Places
1138:Csound
994:People
916:
886:issue
726:
494:
403:=>
204:, and
119:Strong
1264:IRCAM
1234:CCRMA
1143:FAUST
1123:ChucK
947:ChucK
941:ChucK
935:ChucK
856:(PDF)
837:(PDF)
821:(PDF)
805:(PDF)
789:(PDF)
773:(PDF)
742:(PDF)
607:(PDF)
421:Smule
407:; }
399:120::
385:while
380:hi;
280:model
247:. On
241:Linux
194:Linux
186:ChucK
171:chuck
147:Linux
27:ChucK
1259:ICMA
1254:ICEM
1213:UPIC
1153:Kyma
1148:HMSL
1128:Cmix
914:ISBN
724:ISBN
492:ISBN
411:Uses
389:true
315:MIDI
243:and
177:.edu
75:2003
68:2003
1284:IEM
888:125
405:now
378:int
235:on
206:iOS
173:.cs
159:iOS
143:Mac
1359::
858:.
839:.
823:.
807:.
791:.
775:.
759:.
744:.
692:.
677:.
652:.
627:.
609:.
580:.
562:.
551:.
476:^
401:ms
387:(
263:.
239:,
200:,
196:,
153::
149:,
145:,
126:OS
979:e
972:t
965:v
922:.
865:.
846:.
827:.
811:.
795:.
779:.
763:.
750:.
732:.
662:.
637:.
613:.
591:.
520:.
500:.
350:.
303:.
102:)
77:)
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.