Centro Multimedia 2012 Sesin 1 1- Introduccin a SuperCollider: Historia rele!ancia "i#uras destacadas e$emplos de o%ras de distintos estilos y disciplinas& 2- Elementos estructurales de la aplicacin: I'E ser!idor y cliente& (- )ro#ramacin orientada a o%$etos: (&1- Sint*+is o%$etos m,todos ar#umentos-. rates audio rate &ar control rate &/r strings y s0m%olos& 1 - Introduccin a SuperCollider SuperCollider es un am%iente y len#ua$e de pro#ramacin para s0ntesis en tiempo real y composicin al#or0tmica& Est* pro!isto de un len#ua$e orientado a o%$etos 1ue es interpretado y "unciona como un cliente en red con un ser!idor de s0ntesis en tiempo real de alto ni!el de desempeo& Historia SuperCollider "ue creado por 2ames McCartney en 1334 la primer !ersin corr0a en )o5er Macintos6 y costa%a 270 dlares& )osteriormente "ue li%erada para con!ertirse en una aplicacin de uso li%re y de cdi#o a%ierto& 8ctualmente es un pro#rama multiplata"orma ya 1ue corre en Mac 9S: ;indo5s y <inu+& 9ri#inalmente SC consta%a de dos pro#ramas separados: Synt6-9-Matic -escrito en 1330 por McCartney- y por el o%$eto de M8: llamado )yrite el cual conten0a el len#ua$e int,rprete& 8 partir de la !ersin 2 SC se compone de los pro#ramas scsynt6 como ser!idor y sclan# como len#ua$e& 1 Relevancia SC es una de las principales 6erramientas usadas en el *m%ito de la m=sica electrnica el arte sonoro y la multimedia& Es utili>ado para la ensean>a en las aulas de muc6as uni!ersidades y centros acad,micos alrededor del mundo& ?am%i,n tiene un papel importante en la in!esti#acin cient0"ica en ramas como la ac=stica y la psicoac=stica& Figuras destacadas <a comunidad 1ue se 6a "ormado en torno a esta 6erramienta es %asta al#unas "i#uras destacadas son: @ic/ Collins Aredri/ 9lo"sson Cylo% 8ndrea Valle Ser#io <u1ue Ro%erto Morales 2uan Se%asti*n <ac6 'an Sto5ell 2ulian Ro6r6u%er 8l%erto de Campo y ?6or Ma#nusson& Ejemplos de obras de distintos estilos disciplinas - sc1B0 cdi#os de 1B0 caracteres 22 cdi#os en cola%oracin con la re!ista ;ire los cuales 6acen re"erencia a el n=mero de caract,res permitidos en un t5eet& - <i!eCodin# Hac/)act de Aredric/ 9lo"sson& - CVirtual electronic poemD de 8ndrea Valle una recreacin en SuperCollider de -C)oema electrnicoD de Ed#ar VarEse& ! - Elementos estructurales de la aplicacin I"E #Entorno de "esarrollo Integrado$ 8m%iente de desarrollo inte#rado o I'E 1 es una aplicacin 1ue nos permite in#resar comandos y pedir 1ue estos se e$ecuten tam%i,n nos muestra los resultados errores y a!isos del pro#rama& En Mac9S y en ;indo5s SC incluye su propia I'E& En <inu+ es necesario a%rir una I'E independiente de SC y pedirle 1ue entre en el modo de SuperCollider& <os I'E mas usados en <inu+ son: Fedit Emacs y Vim& Recientemente con el desarrollo de la I'E %asada en Gt todas la plata"ormas son !isuali>adas de manera i#ual& Cada I'E tiene sus ata$os o shortcuts para reali>ar las acciones esenciales de SuperCollider& 8 continuacin presentamos una lista de estas acciones y sus ata$os correspondientes& 8ntes prendemos y apa#amos SC con el si#uiente cdi#o: // prende supercollider s.boot; // apaga supercollider s.quit; 1 Inte#rated 'e!elopment En!ironment 2 Mac9S ;indo5s Fedit Emacs E!aluar seleccin Enter -no Return. CtrlHIntro CtrlHE CtrlHC H CtrlHC 'etener procesos cmdH& -cmdHpunto. 8ltH& -8ltHpunto. Esc CtrlHC H CtrlHS 8%rir arc6i!o de ayuda cmd H ' A1 CtrlHI CtrlHH SC muestra dos !entanas la Post Window 1ue es una !entana donde se imprime el resultado del proceso de lo 1ue reali>a el pro#rama as0 como los errores y una !entana donde escri%imos el cdi#o a manera de te+to& 8dem*s podemos !isuali>ar al#unas FIIs 1 como los ser!idores medidores y el estetiscopio& s.makeGui // crea una gui del servidor activo s.meter // crea una gui de los medidores de entrada/salida s.scope // crea una gui del estetiscopio Servidor En SC e+isten dos ser!idores: ser!idor interno y ser!idor e+terno& )ara producir sonido es necesario prender cual1uiera de estos& El ser!idor interno corre en el mismo proceso 1ue la aplicacin SuperCollider tam%i,n llamada Csclan#D& Este ser!idor es interno al pro#rama lo cual tiene ciertas !enta$as deri!adas de una mayor comunicacin con el sclan#& El ser!idor local corre en la misma m*1uina 1ue la aplicacin Supercollider aun1ue es un pro#rama di"erente llamado Cscsynt6D& <a !enta$a de usar este ser!idor es 1ue en caso de 1ue el ser!idor se cai#a la aplicacin se#uir* corriendo y !ice!ersa& Cliente SC "unciona %a$o el modelo de clienteJser!idor am%os tra%a$an dentro de una red es decir el usuario escri%e pro#ramas mediante los cuales el cliente solicita al ser!idor 1ue 6a#a al#o& % &rogramacin orientada a objetos Sinta'is <a sinta+is es la estructura en 1ue de%emos acomodar los elementos del len#ua$e de SC para 1ue este entienda nuestros cdi#os& <a sinta+is es dada por el pro#rama y tenemos 1ue 1 Graphic User Interface o Inter"a> #r*"ica de usuario& ( aprenderla para poder escri%ir cosas con sentido y comunicarnos con SC& Es di"0cil entender la sinta+is sin comen>ar con e$emplos 1ue in!olucren a la partes del len#ua$e a ordenar& 81u0 una lista de elementos %*sicos de la sinta+is del pro#rama& 'urante el desarrollo de las sesiones se ir* descri%iendo su uso dentro de un conte+to espec0"ico& // las dos %arras dia#onales de"inen un comentario& /* una dia#onal se#uida de un asterisco a%re una seccin de comentario& */ el asterisco se#uido de dia#onal cierra una seccin de comentario pre!iamente a%ierta& {} las lla!es de"inen una "uncin& [] los corc6etes de"inen un arre#lo& () los parentesis de"inen un ar#umento o un %lo1ue de cdi#o& los pipes de"inen ar#umentos& !lgo Ina pala%ra 1ue inicia con may=scula representa un o%$eto& .otra"osa In punto se#uido de una pala%ra 1ue inicia con min=scula representa un mensa$e o m,todo& ; el punto y coma indica una ruptura o break en el cdi#o& # la coma separa ar#umentos& $algo% cual1uier cosa escrita entre comillas es un String. &algo'as cual1uier pala%ra escrita despu,s de una dia#onal es un s0m%olo& ( la tilde indica una !aria%le #lo%al& Comentarios <os caracteres // o /* */ sir!en para decirle a SC 1ue !amos a escri%ir al#o 1ue no se interpretar* como cdi#o& Esto se llama comentar& SC 6ar* caso omiso de lo 1ue comentemos& Hay dos maneras de comentar: // )ste es un comentario breve /* )ste es un comentario largo * tiene que cerrarse */ (bjetos <os elementos %*sicos de SC son llamados o%$etos& Casi todo en SC es un o%$eto& <os o%$etos son capaces de reali>ar ciertas tareas y es la con$u#acin de !arios o%$etos lo 1ue nos permite reali>ar tareas comple$as& Cuando escri%imos un o%$eto siempre empie>a con may=scula& E+iste una clase especial de o%$eto: los +Gens , & Estos son los o%$etos 1ue #eneran sonido en SC y cuyas tareas son mane$adas por el ser!idor por e$emplo: -ulse o .in/sc& 1 Init Fenerators o Inidades Feneradoras B M)todos <os m,todos son tam%i,n llamados mensa$es y es a tra!,s de ellos 1ue podemos decirle a los o%$etos lo 1u, 1ueremos 1ue 6a#an y cmo 1ueremos 1ue lo 6a#an& 8l mismo o%$eto se le pueden en!iar distintos m,todos pero un o%$eto no aceptar* cual1uier m,todo sino solo un #rupo de m,todos 1ue est*n asociados a el& Cuando escri%imos un m,todo siempre !a despu,s de un punto y empie>a con min=scula& E$emplo: <os n=meros enteros en SC son o%$etos o instancias del o%$eto Inte#er& En!iemos al o%$eto 0 los mensa$es odd y plot& 0.odd // odd pregunta si es el ob1eto es un n2mero impar 0.plot /* plot 3ace una gr45ica en 67 del ob1eto. +n n2mero entero no puede arro1ar una gr45ica 67 por lo que al declarar esta l8nea obtenemos un error en la ventana -ost. */ .odd pero por e$emplo si ponemos .plot este nos arro$ar* un error ya 1ue es un mensa$e 1ue los n=meros no aceptan& ?am%i,n 6ay m,todos 1ue pueden escri%irse en di"erentes o%$etos& E$emplo: // el mensa1e .postln imprime in5ormaci9n en la post window $palabras%.postln *rgumentos <os ar#umentos son parte de un m,todo y nos ayudan a decirle al o%$eto espec0"icamente de 1ue "orma 1ueremos 1ue realice una tarea& <os ar#umentos se escri%en entre par,ntesis y !an separados por comas en caso de ser m*s de uno& E$emplo: // nos redondea el n2mero entero ,:.:;0<.round (,) // nos redondea a un decimal ,:.:;0<.round (:.,) /* =os argumentos se escriben entre par>ntesis * se separan por comas si son mas de uno. 7 )l mensa1e linlin nos convierte un n2mero dentro de un rango en su equivalente dentro de otro rango. ;? es# dentro del rango de : a ,::# igual a :.;? dentro del rango de : a ,.:. */ ;?.linlin(:# ,::# :#,.:) Rates En SuperCollider la in"ormacin de los +Gens es tratada de dos "ormas: como audio o como control& )ara esto est*n de"inidos dos mensa$es 1ue indican al o%$eto de 1ue "orma ser* tratado: &ar y .kr *udio rate .ar <os IFens 1ue reci%en el mensa$e .ar corren a !elocidad de audio: BB100 muestras por se#undo& Hay 1ue mandar el mensa$e .ar a estos +Gens cuando 1uieran ser tratados como seal -para 1ue se escuc6en.& Control rate .kr <os +Gens 1ue reci%en el mensa$e .kr corren a !elocidad de control: 4K3 muestras por se#undo& Es por esto 1ue los +Gens de control son m*s %aratos computacionalmente 6a%lando 1ue sus contrapartes a !elocidad de audio rate& @otar 1ue un +Gen con el mensa$e .kr no se escu6a& <os +Gens de control los usamos como moduladores esto es como seales 1ue le dan "orma a una seal de audio& En otras pala%ras los +Gens con .kr controlan los ar#umentos de los +Gens con .ar Strings <os strin#s son cual1uier cadena de caracteres -i&e& pala%ras n=meros. 1ue se escri%en entre comillas y no tienen nin#=n si#ni"icado para SC& E$emplo: $.uper"ollider no sabe que estamos 3ablando de >l%.postln S+mbolos <os s0m%olos son nom%res #aranti>ados como =nicos& @o 6ay dos cosas nom%radas con el mismo s0m%olo& Se escri%en con una dia#onal in!ertida antes de una cadena de caracteres& E$emplo: &un.imbolo 4 <os s0m%olos son usados normalmente para nom%rar estructuras de cdi#o prede"inidas como puede ser .*nt37e5s o @de5s por e$emplo: @de5(&nombre)# .*nt37e5(&name)& ,otacin <a tipo#ra"0a 8rial 11 se usa para el te+to del tutorial la tipo#ra"0a "ourier ,6 para el cdi#o& Re-erencias McCartney 2& -1334.& SuperCollider: a ne5 real time synt6esis lan#au#e& ICMC& @etri E& y Romero E& -200K.& Curso de SuperCollider )rincipiantes& Centro Multimedia: M,+ico& )olis6oo/ M& -200B.& Introductory ?utorial: Aor SuperCollider (& 8rc6i!o de ayuda de SuperCollider& Recursos 6ttp :JJ cmm &cenart &#o% &m+ Jtallerdeaudio 6ttp:JJsupercollider&source"or#e&net Esta o%ra est* su$eta a la licencia 8ttri%ution-@onCommercial-S6are8li/e (&0 Inported de Creati!e Commons& )ara !er una copia de esta licencia !isite 6ttp:JJcreati!ecommons&or#JlicensesJ%y-nc-saJ(&0J o en!ie una carta a Creati!e Commons BBB Castro Street Suite 300 Mountain Vie5 Cali"ornia 3B0B1 IS8& L