Kasta
Paradigm | Multiparadigm |
---|---|
Designad av | Ge Wang |
Dök först upp | 2003 |
Stabil frisättning | 1.4.0.2 / 20 juli 2020
|
Maskinskrivningsdisciplin | Stark |
OS | Cross-plattform |
Licens |
Mac , Linux , Windows : GPL-2.0 eller senare iOS : Stängd källa (ej offentlig) |
Hemsida |
ChucK är ett samtidigt, starkt tidsinställt ljudprogrammeringsspråk för realtidssyntes, komposition och prestanda, som körs på Linux , Mac OS X , Microsoft Windows och iOS . Den är utformad för att främja läsbarhet och flexibilitet för programmeraren framför andra överväganden såsom rå prestanda. Den stöder inbyggt deterministisk samtidighet och flera, samtidiga, dynamiska styrhastigheter. En annan nyckelfunktion är möjligheten att livekoda ; lägga till, ta bort och ändra kod i farten, medan programmet körs, utan att stoppa eller starta om. Den har en mycket exakt timing/samtidighetsmodell, vilket möjliggör godtyckligt fin granularitet. Det erbjuder kompositörer och forskare ett kraftfullt och flexibelt programmeringsverktyg för att bygga och experimentera med komplexa ljudsyntesprogram och interaktiv kontroll i realtid.
ChucK skapades och designades främst av Ge Wang som en doktorand som arbetade med Perry R. Cook . ChucK distribueras fritt under villkoren i GNU General Public License på Mac OS X, Linux och Microsoft Windows . På iPhone och iPad distribueras ChiP (ChucK för iPhone) under en begränsad licens med sluten källkod och är för närvarande inte licensierad till allmänheten. Kärnteamet har dock sagt att det skulle vilja utforska "sätt att öppna ChiP genom att skapa en fördelaktig miljö för alla".
Språkfunktioner
ChucK-programmeringsspråket är ett löst C-liknande objektorienterat språk, med stark statisk typning .
ChucK kännetecknas av följande egenskaper:
- ljudsyntes i realtid
- En kraftfull och enkel modell för samtidig programmering
- En enhetlig timingmekanism för multi-rate händelse- och kontrollbearbetning.
- En språksyntax som uppmuntrar vänster till höger-syntax och semantik i programsatser.
- Precisionstidning: en starkt tidsinställd modell för sampelsynkron timing.
- Program kompileras dynamiskt till ChucK virtuell maskinbytekod .
- En runtime-miljö som stöder on-the-fly programmering .
- ChucK-operatören (=>) som kan användas på flera sätt för att "chucka" alla ordnade dataflöden från vänster till höger.
ChucK standardbibliotek tillhandahåller:
- MIDI- ingång och -utgång.
- stöd för ljudkontroll .
- HID-anslutning.
- Enhetsgeneratorer (UGens) - dvs oscillatorer, kuvert, syntesverktygssatsugens , filter osv.
- Enhetsanalysatorer (UAnae) - block som utför analysfunktioner på ljudsignaler och/eller metadatainmatning, och producerar metadataanalysresultat som utdata - dvs FFT/IFFT, Spectral Flux /Centroid, RMS, etc.
- Seriella IO-möjligheter - dvs Arduino .
- Fil IO-kapacitet.
Kodexempel
Följande är ett enkelt ChucK-program som genererar ljud och musik:
// vår signalgraf (patch) SinOsc f => dac; // set gain .3 => f.gain; // en rad tonhöjdsklasser (i halva steg) [ 0, 2, 4, 6, 9, 10 ] @=> int hi[]; // infinite loop while ( true ) { // välj en ton, skift register, konvertera till frekvens Std.mtof( 65 + Std.rand2(0,1) * 43 + hi[Std.rand2(0,hi.cap( )-1)] ) => f.frekv; // förflyttningstid med 120 ms 120:: ms => nu ; }
Används
ChucK har använts i framträdanden av Princeton Laptop Orchestra (PLOrk) och för att utveckla Smule- applikationer, inklusive deras ocarina- emulator. PLOrks arrangörer tillskriver en del av det unika med deras framträdanden till livekodningen de kan utföra med ChucK.
Se även
Vidare läsning
Litteratur av dess författare
- Wang, G. (2018). Artful Design: Technology in Search of the Sublime . Stanford University Press. ISBN 978-1503600522 .
- Wang, G.; Cook, P.; Salazar, S. (2015). "ChucK: Ett starkt tidsinställt datormusikspråk" (PDF) . Computer Music Journal .
- Wang, G. (2008). "The Chuck Audio Programming Language" . Doktorsavhandling, Princeton University .
- Wang, G; Fiebrink, R; Cook, P (2007). "Kombinera analys och syntes i programmeringsspråket ChuckK" (PDF) . Proceedings of the International Computer Music Conference .
- Wang, G; Misra, A.; Kapur, A; Cook, P (2005). "Yeah ChucK it! => Dynamisk, kontrollerbar, gränssnittsmapping" (PDF) . Proceedings of the International Conference on New Interfaces for Musical Expression .
- Wang, G.; Cook, P.; Misra, A (2005). "Designa och implementera ChuckK-programmeringsspråket" (PDF) . Proceedings of the International Computer Music Conference .
- Wang, G.; Cook, P. (2004). "The Audicle: En kontextkänslig, on-the-fly ljudprogrammeringsmiljö/mentalitet" (PDF) . I Proceedings of the International Computer Music Conference .
- Wang, G.; Cook, P. (2004). "On-the-fly programmering: Använda kod som ett uttrycksfullt musikinstrument" (PDF) . Proceedings of the International Conference on New Interfaces for Musical Expression .
- Wang, G.; Cook, P. (2003). "ChucK: A concurrent, on-the-fly audio programmeringsspråk" (PDF) . Proceedings of the International Computer Music Conference .
Till synes oberoende täckning
- Graham Morrison, (2009) Generera choons med Chuck . Trötta på samma gamla musik i listorna skapar vi vår egen musik från en serie pseudoslumptal. Linux-format nummer 125
- Alan Blackwell och Nick Collins, The Programming Language as a Musical Instrument in P. Romero, J. Good, E. Acosta Chaparro & S. Bryant (Eds). Proc. PPIG 17, s. 120–130
- RT Dean , red. (2009). Oxford Handbook of Computer Music . Oxford University Press. s. 27 och 580. ISBN 978-0-19-533161-5 .
externa länkar