Juan esto todavia esta un poco complejo para mis conocimientos actuales de Supercollider pero en el devido momento sera con toda seguridad tema de mis clases con Luque.

Espero que los deas que ya pueden te respondan y lo utilizen para algo.

Gracias!

--------------------------------------------------
From: "Juan I Reyes" <[email protected]>
Sent: Tuesday, December 14, 2010 5:00 PM
To: "expyezp-slow" <[email protected]>
Subject: [Expyezp] Algoritmos caoticos


Hola,

Siguiendo el consejo de Jose Manuel y como lo prometido es deuda,


También hablas de algoritmos caóticos y de matemáticas en tus
mensajes; de azar y probabilidad. La Teoría del Caos  -y la
Matemática, aún más- es demasiado amplia como para considerarla en su
totalidad en un contexto de creación o investigación. No se puede
emplear toda de golpe. Conviene escoger un algoritmo y ver qué ocurre
en un contexto dado. Por ejemplo, el proceso de Verhulst, uno de los
más simples de toda la Teoría del Caos, puede generar sorprendentes
series de notas cuando  lambda se acerca a 4

x(i+1) = x(i) · (1-x(i)) · lambda



Paso a ustedes el código de SuperCollider para el proceso de Verhulst
que realmente es simple de implementar. Debería funcionar así no mas,
copiando y pegando. Lo adicional a este código es que como sonido,
instrumento o, sintetizador, escogí el modelo de cuerda pulsada de
Karplus-Strong porque con éste es fácil de notar cambios.

El proceso de Verhulst en este caso esta mapeado a valores de notas
MIDI. Esto se realiza en el "Task t", de este código de SuperCollider.
Las duraciones (o ritmo), se escogen de valores aleatorios entre 1 y 7.5
décimas de segundo.

Quizá lo mas dificil de entender es la ecuación donde se obtiene el
valor de "midinote". Esto simplemente es un proceso de normalización con
máximos y mínimos.

Ojalá lo puedan probar y se esperan comentarios. Ensayen con diferentes
lambdas.

 Suerte,

 --* Juan


/*
***********************************************************************************
*        SimVerhulst.sc
*
*        (c) 2010 Juan Reyes / juanig_at_CCRMA
*        Codigo para demostrar el proceso de Verhulst.
*        Por sugerencia de Jose Manuel Berenguer en expyeZp:
*
*        "puede generar sorprendentes series de notas cuando lambda *
lambda se acerca a 4"
*
*
*        Ecuacion:
*           x(i) = x(i-1) (1 - x(i-1)) lambda
*
*
************************************************************************************/



s = Server.default.boot;

//SynthDef (Cuerda pulsada de Karplus Strong)
//--------------------------------------

(
SynthDef("kspluck",
{
// Definir argumentos y variables
arg  amp=0.5, freq=440, fcoeff=0.5,
decayt=1.0;
var signal;
// Senal
signal = Pluck.ar(
WhiteNoise.ar(0.1),   // Señal de Excitacion
Impulse.kr(0),        // Disparar
freq.reciprocal,      // Max retardo
freq.reciprocal,      // Duración retardo
decayt,               // Duración decay
fcoeff,               // Coeficientes filtros
amp );            // Mul
Out.ar([0,1], signal);
}).load(s)
)

SynthDescLib.global.read;

// Para probar nuestro instrumento de cuerda pulsada:
//-------------------

~plucked =  Synth("kspluck", [\freq, 440, \fcoeff, 0.5]);
~plucked =  Synth("kspluck", [\freq, 600, \fcoeff, 0.45]);
~plucked =  Synth("kspluck", [\freq, 500, \fcoeff, 0.45, \decayt, 7]);

//
// Ahora el task con el proceso de Verhulst Task::
//------------------------------------------------------------------------
//

// Escoger primero a "~lambda": condiciones iniciales:

~lambda = 3.97; // Melodia Caotica (a la Cowell)
~lambda = 3.65; // Melodia Cuasi periodica
~lambda = 3.05; // Melodía algo periodica (minimalista)

// Para correr el Task con la sucesion de notas
// ----------------------------

(
t = Task({
var x =0.75, lambda = ~lambda;
var frq = 600,  newx, midinote;
{Synth("kspluck",
[
\freq, frq,
\fcoeff, 0.475,
\decayt, 1.25
]
);
newx =((1-x)*x)*lambda;     // **-Ecuacion Verhulst-**
x = newx;
midinote = ((x + 0.45)/2.0 * 127.0 + 0.5).floor;
frq = midinote.midicps;
(0.1+0.75).rand.wait;
}.loop;
}).play(SystemClock)
)



/*
***********************************************************************************
************************************************************************************/

_______________________________________________

Expyezp mailing list
[email protected]
http://lists.slow.tk/listinfo.cgi/expyezp-slow.tk

Archivo de mensajes:
http://lists.slow.tk/pipermail/expyezp-slow.tk/

_______________________________________________

Expyezp mailing list
[email protected]
http://lists.slow.tk/listinfo.cgi/expyezp-slow.tk

Archivo de mensajes:
http://lists.slow.tk/pipermail/expyezp-slow.tk/

Responder a