blogInProcess

a random blog by Marcos Bernabé

Paseo aleatorio por la ciudad

IMG_3606

Foto de Helena Coll

El título de este post está tomado del random walk, formalización matemática de la trayectoria que resulta de hacer sucesivos pasos aleatorios. Aunque puede tener cierta relación, mi objetivo en este caso es realizar un paseo aleatorio por la ciudad, con la intención de grabar algunos ambientes sonoros.

No confundir con la deriva situacionista, ambos paseos se realizan sin un objetivo específico, pero los situacionistas proponian dejarse llevar por las emociones, mientras que en este caso el camino vendrá determinado por un proceso pseudoaletorio. Me decidí a utilizar la aleatoriedad (que el situacionista Guy Debord rechaza por considerarla reaccionaria, opinión que no entiendo)  porqué me encanta su resultado creativo y para obligarme a pasar por calles por las que, de otro modo, jamás se me ocurriría pasar.

Para decidir que camino tomar al final de cada calle ejecuto la siguiente sentencia en supercollider:

20.do{
    ['derecha', 'recto', 'izquierda'].choose.postln;
}

Esto me da los siguientes resultados:

recto, izquierda, recto, recto, recto, izquierda, recto, derecha, derecha, 
izquierda, recto, recto, derecha, izquierda, izquierda, derecha, derecha, 
izquierda, izquierda, recto

El problema es que a veces no es posible continuar recto o girar hacia uno de los lados indicados. En esos casos debí pasé a la siguiente indicación.

Estoy contento con el resultado y creo que repetiré la experiencia en el futuro, aunque espero que no haga tanto frío ;).

 

Tecnonucleo’s homebrew beer

 

Los martes experimentales

Martes 13 de Noviembre 2012: 20.30 – 23.50

Muestra de catálogo de tecnonucleo en Los Martes Experimetales.

Esta edición se llevará a cabo en iam Gallery Madrid y cuenta con el apoyo del MediaMap Madrid Festival, siguiendo la tradición de los martes, ofrecen al público una importante oferta de actividades de creación sonora experimental en un entorno inolvidable con la participación de artistas de renombre dentro de la escena del arte sonoro actual.

PROGRAMACIÓN:

Pablo Sanz : PRESENCE.
Una exploración del silencio audible y la arquitectura resonante de espacios vacíos.
+
Manuel Calurano
Audio sesión de música experimental basada en grabaciones de campo.
+
Listening Space: TecnoNucleo
Muestra de catálogo de obras de arte sonoro y música experimental.

ENTRADA: 5 EUROS CON CERVEZA

DIRECCIÓN: iam Gallery Madrid.
Calle San Blas, 4 Madrid.

WWW.PIOVRA.ORG
WWW.IAMGALLERYMADRID.COM
WWW.MEDIAMAPFESTIVAL.COM

 

valle de ordesa

valle de ordesa by scmute

 

scmute live at galeria/taller Homâ Barcelona



 

Cirtuit Bending

circuit


download crct_01.wav
download crct_02.wav
download crct_03.wav

 

Sample Granulation

I want to granulate from a sound file, to do it we need to load a sound file into a buffer:

m = Buffer.read(s, "sounds/a11wlk01.wav");

We’re going to set a synth definition:

SynthDef("grain", {arg pan=0.0, rate=1, startPos=0.0, amp=1, dur=0.05; 
 
	var env = EnvGen.kr(Env.sine(dur, 1), 1.0, doneAction: 2);
	var synth = PlayBuf.ar(1,buffer, rate, 1, startPos, 0)*env;
 
	Out.ar(0,Pan2.ar(synth*amp, pan))
}).send(s);

This synth is based on SC3 PlayBuf UGen. PLayBuf plays a sample from a buffer. Pay  attention to startPos parameter: it defines the sample frame to start playback.

We can test our synth evaluating the next sencency:

Synth("grain");

Now we are going to make a loop that plays sample segments. We use random numbers to set the composition parameters.

Task({
    var rate, time, dur, startPos;
 
    loop{
        dur = rrand(0.1, 0.3);
        rate = rrand(0.7, 1.1);
        time = exprand(0.1, 2.0);
 
        startPos = rrand(0, m.numFrames);
 
        Synth("grain", [\dur, dur, \rate, rate, \startPos, startPos, \amp, 1]);
        time.wait;
    };
}).play;
 

Random Music

I want to open my blog showing a brief introduction to random techniques in music (or simply sound) composition. The example algorithms are going to be implemented in SC3 sound programing environment.

Firstly we need to define a Synth:

SynthDef("grain", { arg dur, frq;
	var env = EnvGen.kr(Env.sine(dur, 1), 1.0, doneAction:2);
 	var synth = SinOsc.ar(frq)*env;
 
 	Out.ar(0, Pan2.ar(synth, 0))
}).send(s);

This synth makes a sine wave with a sine envelop. We only need two parameters to get sound with this synth: frequency and duration of the sound. We can test our synth named “grain” evaluating the next sentence in SC3:

Synth("grain", [\dur, 1, \frq, 400]);

After evaluate this sentence we get a sound of 400Hz with one second duration.

We are going to make a loop now! We can get a series of sine waves with the next piece of code:

Task({
	var dur = 1;
	var frq = 400;
	var time = 1;
 
	loop{
		Synth("grain", [\dur, dur, \frq, frq]);
		time.wait;
	};
}).play;

We can see that we have three new variables: dur, frq and time; the first two are the synth parameters and the third (time) is used to define the time between the start of a sound and the start of the next sound. We can think about these three variables as a parameters of the sound composition.

Now we are going to use a random number generator to get different values for our compositional parameters in each iteration:

Task({
	var frq;
	var time;
	var dur;
 
	loop{
		dur = rrand(0.1, 0.3);
		frq = rrand(300, 1000);
		time = rrand(0.3, 1.0);
 
		Synth("grain", [\dur, dur, \frq, frq]);
		time.wait;
	};
}).play;

The rrand(a, b) SC3 function is used to generate random numbers between the parameters a and b.

Just we have seen a simply way to generate some series of sine waves, what can we do now?

  • replace rrand() with other random number generators like exprand()
  • add to your SynthDef more parameters like amplitude or panning

Donwload Example Code