Kasta

Kasta
ChucK logo2.jpg
Paradigm Multiparadigm
Designad av Ge Wang
Dök först upp 2003 ; 20 år sedan ( 2003 )
Stabil frisättning
1.4.0.2 / 20 juli 2020 ; 2 år sedan ( 2020-07-20 )
Maskinskrivningsdisciplin Stark
OS Cross-plattform
Licens
Mac , Linux , Windows : GPL-2.0 eller senare iOS : Stängd källa (ej offentlig)
Hemsida chuck .cs .princeton .edu

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 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:

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

Till synes oberoende täckning

externa länkar