> Te escribo para pedirte el favor de que me (nos, a los de las listas)
> enseñes a usar SuperCollider desde Emacs, con resaltado de sintaxis y
> todo :).
>
Para utilizar SuperCollider con la linea de comandos o con Emacs es
imperativo crear un par de directorios de trabajo, especial para
archivos de SC. Si estos directorios no están, SC simplemente no
arranca. Por lo tanto se pueden seguir los siguientes pasos:
cd ~
mkdir supercollider
cd supercollider
mkdir synthdefs
mkdir sounds
En este caso creamos un directorio base llamado supercollider en
cualquier lugar del sistema de archivos. Lo importante es que dentro de
este directorio deben estar los directorios synthdefs y sounds. Para
arrancar SuperCollider hay que estar dentro de este directorio base.
Una forma muy útil de manejar SuperCollider es a través de Emacs. El
paquete de planetCCRMA y algunos otros paquetes como el de Fink en OS-X
contienen otro paquete (librería) para Emacs que se llama 'sclang' y
facilita la interacción con Emacs. Hay que asegurarse que este paquete
esté instalado.
La ventaja de Emacs es que es programable y adaptable a un nivel casi al
que uno puede denominar propio y egoísta. Por lo tanto para adaptar
Emacs a SuperCollider tienen que buscar en el 'home directory' un
archivo que se llama '.emacs' y añadir la siguiente linea:
(require 'sclang)
Luego para arrancar Emacs (y SuperCollider) escriben el siguiente
comando:
<myhost> emacs -sclang
Al abrir Emacs debe aparecer un menu con comandos para SuperCollider que
también tiene los shortcuts. Por ejemplo para evaluar un grupo de código
entre Emacs y SC se selecciona la región del código y se utiliza la
cadena de comandos Ctrl-c Ctrl-c. Es decir:
Si la primera linea de código del archivo es: "s = Server.local.boot;"
Se selecciona la región "s = Server.local.boot;" y luego Ctrl-c Ctrl-c
esto arranca el servidor de SC desde Emacs. Después de esto se evalúa la
región de SynthDef y luego la del Task en la misma forma.
Suerte,
--* Juan
PS: Lo interesante sería tratar de abrir y ensayar la descripción
anterior con un archivo de SuperCollider en Emacs, como el siguiente
ejemplo tomado de un tutorial de Dave Philips en los días de Agnula
(recuerden arrancar Emacs con 'emacs -sclang' dentro del directorio
supercollider):
//==================================================================================
s = Server.local.boot;
// statements enclosed in ( ) on separate lines should be executed
// together, either by double clicking on the first parenthesis and
// evaluating the region, or by pressing C-M-x inside the expression.
(
// create a new SynthDef and send it to the server
SynthDef("tutorial-sine", { arg out=0, amp=1.0, freq=440, i_dur=1.0;
var env, sine;
// i_* arguments are fixed at instantiation time and cannot be modulated
// doneAction 2 means free the synth node when the envelope has finished
env = Line.kr(1, 0, i_dur, doneAction: 2, mul: amp);
// the mul ugen input is usually more efficient than *
sine = SinOsc.ar(freq, mul: env);
// output two channels on bus 0
Out.ar(0, [sine, sine]);
}).send(s);
)
(
// node object style
Task({
var freq, dur;
freq = 440;
dur = 1.0;
4.do { arg i;
// use Synth.grain rather than Synth.new because the
// Synth deallocates itself, so we don't need a node id
Synth.grain(
// see C-c C-h Synth
"tutorial-sine",
["amp", 0.2, "freq", freq, "i_dur", dur],
s
);
dur.wait;
}
}).play
)
//=============================================================================
_______________________________________________
____ _ _ ___ _ _ ____ ___ ___
|___ \/ |__] \_/ |___ / |__]
|___ _/\_ | | |___ /__ |
expyezp mailing list
[email protected]
http://lists.slow.tk/listinfo.cgi/expyezp-slow.tk