La colaboración en Pantone 802 (proyecto de ferranElOtro Studio para Espai Cultural de Caja Madrid) consiste en realizar una "traducción" de cuatro piezas sonoras en intermitencia de luces. La primera, corresponde a la pieza "los Trabajos y las Noches", de Fito Conesa. La secuencia lumínica esta programada con un arduino conectado a 5 relés, que a su vez controlan 5 reflectores. Estos están ubicados en las ventanas de la fachada del edificio, de tal modo que la intermitencia es visible en un horario determinado desde el exterior. La programación esta basada en un patrón de 16 pasos, a los cuales se les asigna un número del 0 al 31. Cada valor lleva implícito una orden (on-off) de forma simultánea para las 5 luces, mediante una equivalencia a binario.

Esquema general

Detalle del dispositivo de control (arduino + temporizador)

Pieza completa

Gráfico de proceso y equivanlencia

Equivalencia decimal-binario
--------------------------------------------------------------------------
int bpm, tempo;
int c1 = 8;
int c2 = 9;
int c3 = 10;
int c4 = 11;
int c5 = 12;
int ch1, ch2, ch3, ch4, ch5;
void setup() {
for (int thisPin = 8; thisPin < 13; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}
void loop() {
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 1
patron(960, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 ); // compas 2.0
patron(960, 16, 0, 0, 8, 0, 0, 4, 0, 0, 2, 0, 0, 1, 0, 0, 0 ); // compas 2.3
patron(480, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,31, 0, 0, 0 ); // compas 3
patron(960, 0, 0, 0, 0, 0,16, 0, 0, 1, 0, 0, 2, 0, 0, 4, 0 ); // compas 4.0
patron(960, 0, 8, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 4.3
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(960, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 5.0
patron(960, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, 0, 0 ); // compas 5.3
patron(960, 17, 0, 0,10, 0, 0, 4, 0, 0,10, 0, 0,17, 0, 0, 0 ); // compas 6.0
patron(960, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0 ); // compas 6.3
patron(480, 0, 0, 0, 0,17, 0, 0, 0, 0, 0,27, 0, 0, 0, 0, 0 ); // compas 7
patron(480, 31, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0, 0, 0, 0, 0 ); // compas 8
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 17, 0, 0, 0, 0, 0,27, 0, 0, 0, 0, 0,31, 0, 0, 0 ); // compas 9
patron(480, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ); // compas 10
patron(480, 0, 0, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0 ); // compas 11
patron(480, 24, 0, 0, 0, 0, 0, 0, 0,12, 0, 0, 0, 0, 0, 6, 0 ); // compas 12
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 ); // compas 13
patron(480, 0, 0, 0, 0,28, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 ); // compas 14
patron(480, 28, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0 ); // compas 15
patron(480, 28, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,28, 0, 0, 0 ); // compas 16
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 0, 0, 0, 0,10, 0, 0, 0, 0, 0, 0, 0,21, 0, 0, 0 ); // compas 17
patron(480, 0, 0,10, 0, 0, 0, 0, 0,21, 0, 0, 0, 0, 0, 0, 0 ); // compas 18
patron(480, 10, 0, 0, 0, 0, 0, 0, 0,21, 0, 0, 0, 0, 0,10, 0 ); // compas 19
patron(480, 0, 0, 0, 0,21, 0, 0, 0, 0, 0, 0, 0,24, 0, 0, 0 ); // compas 20
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 0, 0, 0, 0,28, 0, 0, 0, 0, 0,30, 0, 0, 0, 0, 0 ); // compas 21
patron(480, 31, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0 ); // compas 22
patron(480, 7, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,31, 0, 0, 0 ); // compas 23
patron(480, 0, 0, 0, 0,31, 0, 0, 0, 0, 0, 0, 0,31, 0, 0, 0 ); // compas 24
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 25
patron(480, 31, 0, 0, 0, 0, 0, 0, 0,31, 0, 0, 0, 0, 0, 0, 0 ); // compas 26
patron(480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,31, 0, 0, 0 ); // compas 27
patron(480, 0, 0, 0, 0,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 28
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(480, 0, 0, 0, 0, 0, 0, 0, 0,31, 0, 0, 0, 0, 0, 0, 0 ); // compas 29
patron(960, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,31, 0, 0 ); // compas 30.0
patron(960, 31, 0, 0,31, 0, 0,31, 0, 0,31, 0, 0,31, 0, 0, 0 ); // compas 30.3
patron(480, 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0,16, 0, 0, 0 ); // compas 31
patron(960, 0, 0, 0, 0, 0,16, 0, 0,16, 0, 0,16, 0, 0,16, 0 ); // compas 32.0
patron(960, 0,16, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 32.3
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(960, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 33.0
patron(960, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0 ); // compas 33.3
patron(960, 8, 0, 0, 8, 0, 0, 8, 0, 0, 8, 0, 0, 8, 0, 0, 0 ); // compas 34.0
patron(960, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0 ); // compas 34.3
patron(960, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0 ); // compas 35.0
patron(960, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 4, 0, 0, 4, 0 ); // compas 35.3
patron(960, 0, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 36.0
patron(960, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 36.3
// bpm, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16
patron(960, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ); // compas 37.0
patron(960, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0 ); // compas 37.3
patron(480, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ); // compas 38
patron(960, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0 ); // compas 39.0
patron(960, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 39.3
patron(960, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // compas 40.0
patron(960, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,31, 0, 0 ); // compas 40.3
patron(960, 31, 0, 0,31, 0, 0,31, 0, 0,31, 0, 0,31, 0, 0, 0 ); // compas 41.0
}
void patron(int bpm, int step1, int step2, int step3, int step4, int step5, int step6,
int step7, int step8, int step9, int step10, int step11, int step12, int step13, int step14,
int step15, int step16 )
{
int seq[16] = {step1, step2, step3, step4, step5, step6, step7, step8, step9, step10,
step11, step12, step13, step14, step15, step16};
for(int i=0 ; i<16 ; i++)
{
ch1 = seq[i] & 0x01;
ch2 = (seq[i]>>1) & 0x01;
ch3 = (seq[i]>>2) & 0x01;
ch4 = (seq[i]>>3) & 0x01;
ch5 = (seq[i]>>4) & 0x01;
digitalWrite(c1,ch1);
digitalWrite(c2,ch2);
digitalWrite(c3,ch3);
digitalWrite(c4,ch4);
digitalWrite(c5,ch5);
tempo = 60000/bpm;
delay(tempo);
}
}
--------------------------------------------------------------------------
Programación para arduino a partir de la pieza sonora de Fito Conesa
Ensayo 1 (reproducción automática)
|