SuperCollider

Soti nan Wikipedia, ansiklopedi gratis.
Ale nan navigasyon Ale nan rechèch
SuperCollider
langaj pwogramasyon
SuperCollider logo.svg
Otè James McCartney
Dat orijin 1996
Dènye vèsyon 3.10.0
Itilizasyon an tan reyèl sentèz odyo ak konpozisyon algorithmik
Paradigm Objè oryante
Sezisman Dinamik
Ekstansyon komen SCD
Enfliyanse pa Smalltalk , C [1]
Aplikasyon referans
Sistèm opere FreeBSD , [2] Linux , macOS , Windows
Lisans GNU General Public License
Sit wèb supercollider.sourceforge.net

SuperCollider se yon anviwònman devlopman ak langaj pwogramasyon ki te kreye an 1996 pa James McCartney pou an tan reyèl sentèz odyo ak konpozisyon algorithmik [3] [4] .

Depi lè sa a, li te evolye nan yon sistèm itilize ak imedyatman devlope pa tou de syantis yo ak atis k ap travay ak son. Li se yon langaj efikas ak ekspresif pwogram dinamik ki ofri yon fondasyon pou rechèch acoustic , mizik algorithmik ak pwogram entèaktif . [1]

Distribiye anba lisans lan GNU an 2002, SuperCollider se lojisyèl gratis . Vèsyon ki pi resan (3.10.0) te libere 25 novanm 2018. [5]

Achitekti

Kòmanse ak vèsyon 3, anviwònman devlopman SuperCollider te divize an de eleman: yon sèvè ( scsynth ) ak yon kliyan ( sclang ). Konpozan sa yo kominike via OSC ( Open Sound Control ). [1]

SC lang konbine estrikti a objè-oryante nan Smalltalk ak karakteristik yo ki nan pwogram fonksyonèl ak yon sentaks menm jan ak sa yo ki an C. [1]

Aplikasyon an sèvè SC sipòte yon API ki senp pou grefon nan C, ki fè li fasil yo ekri algoritm son efikas, ki ka konbine nan graf oswa kalkil. Depi se kontwòl ekstèn nan sèvè a fè via OSC, li ka itilize ak lòt lang oswa aplikasyon pou. [1]

Sèvè sentèz SuperCollider ( scsynth )

Se jenerasyon son SuperCollider a pake andedan yon liy ègzèkutabl dosye ègzèkutabl rele scsynth . Nan pifò ka yo kontwole li nan langaj pwogram SuperCollider, men li ka itilize poukont li. Sèvè odyo a gen karakteristik sa yo: [1]

  • aksè a Open Sound Control ;
  • senp API pou grefon nan C;
  • sipòte nenpòt ki kantite opinyon ak pwodiksyon chanèl, ki gen ladan anviwònman masiv multicanal [6] ;
  • ofri aksè a yon estrikti pyebwa òdone nan nœuds sentèz ki defini lòd ekzekisyon an;
  • sistèm otobis ki pèmèt dinamikman restriktire koule siyal la;
  • ekri ak li tanpon;
  • kalkil nan diferan pousantaj selon bezwen: pousantaj odyo, pousantaj kontwòl, pousantaj demann.

Supernova, yon aplikasyon endepandan nan achitekti sèvè a [7] , ajoute sipò milti-processeur ak gwoupman eksplisit paralèl nan nœuds sentèz.

Lang nan pwogram SuperCollider ( sclang )

SuperCollider se yon dinamik tape, fatra-kolekte , objè-oryante lang ak pòsyon tè miltip e li se yon lang fonksyonèl ki sanble ak Smalltalk , [4] ak sentaks ki sanble ak sa yo ki an Ruby oswa C. Achitekti li yo ofri yon konpwomi ant bezwen an pou tan reyèl kalkil ak fleksibilite a ak senplisite nan yon lang abstrè. Tankou anpil lang fonksyonèl, li aplike fonksyon kòm objè premye klas, ak kapasite pou konbine yo youn ak lòt. Fonksyon ak metòd ka gen valè default pou agiman ak lis agiman varyab-longè epi yo ka rele nan nenpòt ki lòd nan agiman kle. Fèmen yo se leksikal ak vizibilite se tou de leksikal ak dinamik. Pifò nan karakteristik yo ki tipik nan lang fonksyonèl yo sipòte, ki gen ladan kreyasyon nan fèmti pa aplikasyon eksplisit pasyèl , optimize nan keu apèl, konpreyansyon yo genyen sou lis ak koroutin . Espesifikasyon yo gen ladan enplis ekspansyon tupl ak sistèm nan modèl apatrid . Tan konstan li yo mesaj rechèch ak an tan reyèl koleksyon fatra pèmèt gwo sistèm yo dwe efikas ak fleksibilite jere pwosesis la siyal. [1]

Pa sipòte metodoloji nan refleksyon , pwogram entèaktif ak pwogram literal, SuperCollider fè li relativman senp yo devlope nouvo algoritm son [8] ak yo devlope lojisyèl koutim ak kad. Kòm pou konesans domèn-espesifik, li se tou de jenerik (pou egzanp, li pèmèt pwopriyete tankou tan ak anplasman yo dwe reprezante nan diferan nivo nan distraksyon) ak plen ak egzanp nan aplikasyon espesifik-bi. [1]

Entèfas

SuperCollider pèmèt itilizatè yo bati kwa-platfòm aplikasyon entèfas pou aplikasyon yo. Bibliyotèk la estanda ak eleman koòdone itilizatè yo ka pwolonje ak yon gwo kantite kad ki disponib. Pou pwogramasyon entèaktif, sistèm lan sipòte aksè pwogram nan dosye tèks rich (.rtc). Li kapab itilize algoritmikman jenere grafik vektè [9] .

Koòdone sistèm ak sipò

Kliyan

Depi se sèvè a jere atravè OSC, aplikasyon pou divès kalite ka itilize kontwole li. Anjeneral anviwònman devlopman pou lang SuperCollider yo itilize (gade anba a), men li posib tou pou itilize lòt sistèm OSC ki okouran tankou Done Pi . [1]

Gen kliyan "twazyèm pati" pou sèvè a SuperCollider, tankou rsc3, yon kliyan Scheme , hsc3, ki baze sou Haskell , ScalaCollider [10] , ki baze sou Scala ak Overtone, ki baze sou Clojure . [11] Sa yo diferan de anviwònman devlopman mansyone anba a paske yo pa bay yon koòdone nan lang lan SuperCollider, men kominike dirèkteman ak sèvè a odyo fasilite itilizatè a. [1]

Sistèm opere sipòte

SuperCollider ka kouri anba macOS , Linux , Windows ak FreeBSD . Sepandan, vèsyon fenèt la te rete dèyè lòt yo, menm jan pifò nan devlopman an te fèt sou Mac ak Linux. Pou chak nan sistèm opere sa yo, gen diferan lang-koreksyon ak anviwònman kliyan ki ka itilize ak SuperCollider. [1]

SuperCollider te montre yo kouri anba iOS [12] ak android . [13]

Editè

Ekran nan SuperCollider Vim sou puredyne Linux .

Se vèsyon an Mac nan SuperCollider anjeneral yo itilize ak koòdone a ( Cocoa ), espesifik pou Mac; sou Windows ak Linux, ou ka itilize editè divès kalite ak plizyè komen anviwònman devlopman entegre , tankou:

Pou chak nan anviwònman anvan yo, yon Plugin pèmèt ekzekisyon an tan reyèl nan kòd la SuperCollider ak entèraksyon ak sèvè a odyo.

Tantativ anvan yo pote SuperCollider nan Windows yo te lakòz Python ki baze sou anviwònman devlopman, ki rele PsyCollider , ak yon Eclipse Plugin, men yo pa te mete ajou dènyèman. Sepandan, gen toujou yon tantativ nouvo yo devlope yon IDE milti-platfòm ki baze sou fondasyon an Qt. [16]

Egzanp Kòd

 // ekri an lèt detache "Hello world!"
"Bonjou mond!" . postln ;
 // melanje yon vag sinis 800 Hz ak bri woz
{ SinOsc . ar ( 800 , 0 , 0.1 ) + PinkNoise . ar ( 0.01 ) }. jwe ;
 // modile yon frekans sinis ak anplitid bri a ak yon lòt vag sinis
// ki gen frekans depann sou pozisyon nan konsèy la sourit orizontal
{ 
	var x = SinOsc . ar ( MouseX . kr ( 1 , 100 ));
	SinOsc . ar (300 * x + 800, 0, 0.1) 
	+ PinkNoise . ar ( 0.1 * x + 0.1 ) 
}. jwe ;
 // miltipliye eleman ki nan yon lis pa endis yo
[ 1 , 2 , 5 , 10 , -3 ]. kolekte { | ELEM, ido | ELEM * ido};
 // fonksyon faktoryèl
f = { | x | si ( x == 0 ) { 1 } { f . ( x -1 ) * x } };

Live kodaj

Kòm yon langaj versatile pwogramasyon dinamik, SuperCollider ka itilize pou kodaj ap viv , pou egzanp pou pèfòmans ki enplike sèn nan pa koreksyon ak egzekite kòd sou-a-vole. [17] Kalite espesifik nan modèl prokurasyon yo ka itilize kòm espas ki wo nivo pou objè sentèz, ki ka chanje oswa modifye nan ègzekutabl. Anviwònman yo pèmèt pataje ak modifikasyon objè ak deklarasyon pwosesis nan rezo a. [18] Divès bibliyotèk sipòte diferan kalite distraksyon ak aksè nan objè son, pou egzanp dewdrop_lib [19] pèmèt kreyasyon viv ak modifikasyon nan pseudo-klas ak objè yo.

Remak

  1. ^ Yon b c d e f g h mwen j k Scott Wilson, David Cottle ak Nick Collins, Liv la SuperCollider , K MIT, 2011, ISBN 978-0-262-23269-2 . Retrieved 4 septanm, 2013 (achiv soti nan orijinal la sou, 1 me 2011) .
  2. ^ SourceForge.net: Dosye
  3. ^ J. McCartney, SuperCollider: Yon nouvo lang sentèz an tan reyèl , nan Proc. Konferans Entènasyonal Mizik Odinatè (ICMC'96), 1996, pp. 257-258.
  4. ^ Yon b J. McCartney, repenser lang nan mizik òdinatè: SuperCollider , Odinatè Klas Mizik Journal, 26 (2002), pp. 61-68.
  5. ^ SuperCollider Download Page
  6. ^ Zouti BEASTmulch pou multicanal odyo. Archived , Novanm 6 2009 nan Achiv yo nan entènèt .
  7. ^ T. Blechmann, supernova, yon sèvè sentèz multiprocessor-okouran pou SuperCollider , Pwosedi nan konferans lan Audio Linux, Utrecht 2010.
  8. ^ J. Rohrhuber, A. de Campo ak Renate Wieser. Algoritm Jodi a. Nòt sou Konsepsyon Lang pou Pwogramasyon Jis nan Tan Achiv yo , 28 jiyè 2011 nan Achiv Entènèt la .. Nan Pwosedi Konferans Entènasyonal Mizik Odinatè , Barcelone, 2005.
  9. ^ Se koòdone nan vektè grafik jere pa klas la Pen. Ou ka jwenn plizyè egzanp sou odyovizyèl ak SC , blog pa Fredrik Olofsson, 02.05.2009 (mete ajou 11.05.2012)
  10. ^ HH Rutz, Repanse Kliyan an SuperCollider ... , nan Pwosedi nan SuperCollider Senpozyòm , Bèlen, 2010, CiteSeerX : 10.1.1.186.9817 .
  11. ^ Plis egzanp sou wiki SuperCollider la
  12. ^ Ti Mizik Sistèm - Cylob Blog, 04.11.2009
  13. ^ SuperCollider android pwojè sou GitHub
  14. ^ SuperCollider ak emacs: chwazi
  15. ^ Pwojè Scate
  16. ^ Cyberpipe @ Slovenia & the future SuperCollider development Archived 25 Mas 2015 nan Achiv Entènèt la . - anons sou lis itilizatè SuperCollider yo, 22.02.2012
  17. ^ Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), Live Coding Techniques for Laptop Performance , Organized Sound 8 (3): pp 321-30. DOI : 10.1017 / S135577180300030X
  18. ^ J. Rohrhuber ak A. de Campo. Ap tann ak ensèten nan rezo mizik konpitè .. Achiv 14 Mas 2006 nan Achiv Entènèt .. Nan Pwosedi Konferans Entènasyonal Mizik Odinatè , Miami, 2004.
  19. ^ Youn nan plizyè itilizatè-te fè bibliyotèk, ke yo rekonèt kòm "Quarks" ak pibliye sou depo a Quark SuperCollider .

Atik ki gen rapò

Lòt pwojè

Lyen ekstèn

Enfòmatik IT Portal : aksè antre Wikipedia ki gen rapò ak IT