Knowledge

ChucK

Source đź“ť

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:
Proceedings of the International Computer Music Conference
777:
Proceedings of the International Computer Music Conference
611:
Proceedings of the International Computer Music Conference
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:.

Index

Chuck (disambiguation)
Chuck-2023
Paradigm
Multi-paradigm
Designed by
Ge Wang
Stable release
Typing discipline
Strong
OS
Cross-platform
License
Mac
Linux
Windows
GPL-2.0-or-later
iOS
chuck.cs.princeton.edu
programming language
Linux
Mac OS X
Microsoft Windows
iOS
concurrency
live code
audio synthesis
Ge Wang
Perry R. Cook
GNU General Public License
Mac OS X

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑