Hola,

Paso el código en SuperCollider para mapear la función Coseno. Hay notas
que se repiten por redondear los valores con "floor", y hay otras que se
saltan por lo que el resultado es una pseudo-escala o pseudo-arpegio.

Al manipular algunos de estos parámetros se pueden lograr resultados mas
creativos pero esto puede ser una base.

 
/*****************************************************************************
*
*  coseno.sc
*
******************************************************************************
*/


s = Server.default.boot;


//
//  Definición de un sinte con sinusoidal básico 
//  ============================================

(
SynthDef("sinep", 
        {arg freq=440, dur=0.5, gate=1.0, done=0;
                var env;
                env = EnvGen.kr(Env.asr(0.05, 0.25, 0.1),gate);
                Out.ar(0, SinOsc.ar(freq, 0, env))
        }).load(s);
)

//
//  Una rutina para probar los valores de la función de mapeo
//  =========================================================

(
var twopi = 2*pi, 
angincr=pi/128;

Routine ({
        var playNote=0.0, fi=0.0;
        {
                playNote = floor((127*cos(fi))/2 + 63.5);
                fi = (fi + angincr);
                if (fi == twopi, {
                        fi = 0.0;
                });
                playNote.post;
                " ".post;
                1.0.wait;
        }.loop 
}).play
)

//
// Una rutina para que suene una pseudo escala cromática de 4 octavas
// =====================================================================

(
var twopi = 2*pi, 
soni;
Routine ({
        var frequ, midint=0.0, fi=0.0, angincr=pi/64;
        soni =  Synth("sinep");
        {
                midint = floor((24*cos(fi)) + 60);
                fi = (fi + angincr);
                if (fi == twopi, {
                        fi = 0.0;
                });
                frequ = midint.midicps;
                soni.set("freq", frequ);
                soni.set("gate", 1.0);
                0.25.wait;
                soni.set("gate", 0);
                0.15.wait;
        }.loop 
}).play
)


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

> Hay que aclarar que las formulas de Coseno que menciono generan escalas
> cromáticas para arriba y para abajo (no necesariamente arpeggios). La
> formula exacta es:
> 
>   M = 127*COS(tFi)/2 + 63.5
> 
> Hay que añadir el offset 63.5 o 64 para que los valores estén dentro del
> rango de notas MIDI.
> 


_______________________________________________

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