Tag: projeto

fabr1ca iluminad0

6
Filed under pesquisas

…. a Fábrica do Carnaval em Olinda virou canteiro de tecno-OBRA.

estrutura

Durante as manhãs desse verão, eu e parceiros do Ponto de Cultura Alafin Oyo estamos empenhados no desenvolvimento de um instrumento didático que conecta a ancestralidade dos ilús com as tecnologias faça-você-mesmo dos hardwares e softwares livre. O projeto ILUMINADO, aprovado nas Interações Estéticas da Funarte em 2009, é uma pesquisa para adaptar o instrumento ilú (instrumento de percusão de rituais de matriz africana) para reconhecer gestos e movimentos e transforma-los em novas sonoridades e timbres, funcionando como uma interface controladora. O projeto é baseado no trabalho do Jaime Oliver, que desenvolveu o projeto Silent Construtcion. Os trabalhos estão acontecendo dentro da fábrica de carnaval de Olinda, antigo galpão de depósito uma grande empresa.

Nas primeiras semanas, estudamos a estrutura do ilú e pesquisamos o material ideal para construir a estrutura do instrumento. Decidimos fazer a estrutura de ferro, o bojo com um material parecido com acrílico transparente para que a câmera capture os movimentos quando pressionada a pele de elástico. Também construimos um tripé metareciclado, aproveitando alguns materiais que estavam no lixo. Ainda não vimos qual o elástico ideal para a pele.

Paralelo à construção, montamos uma estação multimídia para começar a estudar hardware e software livre para desenvolver o programa que vai reconhecer toda interface. Instalamos o Ubuntu 9.04, configuramos toda parte dos source.list e botamos os pacotes multimídia clássicos. Neste projeto, vamos desenvolver toda estrutura lógica utilizando o pure-data extended e talvez alguma outra biblioteca externa. A câmera do PS3 será a responsável pela captura dos movimentos, enquanto um Arduino e um metaTeclado serão feitos de pedais e sensores para efeitos. Nesta semana, configuramos e testamos a câmera do PS3 seguindo este tutorial indicado pelo Jaime.

O calor ta grande mas os estudos estão apenas começando. A proposta é que depois que instrumento estiver mais afinado, aconteçam performances com ele e também sirva de material de estudos para quem quiser se aprofundar em música, tecnologia livre, arte. Vou documentando as atualizações por aqui e espero trazer mais novidades e avanços.

saúde;

emotionalKernelPanic(_01) hardcode

3
Filed under pesquisas

ekp_01

vou começar a dissecar o projeto emotional kernel panic aqui no blog.

pretendo apresentar todos os passos do projeto, desde as primeiras conversas até o patch do pure-data que foi desenvolvido e também a situação atual da pesquisa.

nessa sessão, vou falar dos primeiros dev/dsp e de tocadas hardcode.

_tocando sem parar

depois de algumas horas conversando sobre possibilidades de capturar emoções do sistema operacional, junto com os camaradas renato fabbri e machado, começamos a investigar algumas possibilidades de construção de som utilizando textos direto pra placa de som.

as primeiras composições foram tocando o xorg.conf e o clássico dmesg

o jeito de tocar é o mais brutal possível, ou seja, mandando todo conteúdo de um arquivo direto pro estômago da placa de som.

**** cuidado com os caixas de som, é melhor deixar mais baixo e ajustar aos poucos:

dmesg > /dev/dsp

tocando o buffer do kernel

cat /etc/X11/xorg.conf > /dev/dsp

tocando a conf da placa de vídeo

cat texto > /dev/dsp

tocando qualquer texto

cat /etc/X11/xorg.conf > /dev/dsp && dmesg > /dev/dsp

tocando duas frases juntas

daí já viu, horas, horas, horas, horas tocando arquivos de textos e mensagens de controle do sistema operacional.

tocar o kernel, vomitar as suas sensações enquanto escrevemos uma poesia, um algorítmo.

_investigando composições

depois de alguns dias tocando sem parar os hardcode, comecei a investigar possibilidades de construir composições desenhando direto num editor de texto do terminal. A partir dessa pesquisa, comecei a notar que todos os elementos do texto influenciavam no timbre, desde a letra usada até a sua forma dentro do texto.

$ vi impressoramatricial.txt

vou
comprar
uma impressora
matricial para
tocar um hardcore brutal

vou
comprar
uma impressora
matricial para
tocar um hardcore brutal

*************************************************************
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
££££££££££££££££££££££££££££££££££££££££££££
¬¬¬¬¬¬¬¬¬¬¬¬¬¬

:wq!

$ cat impressoramatricial.txt > /dev/dsp

_tocando em loop

o processo de pesquisa foi costurando outras idéias e surgiram necessidades de estudar mais o bashshell-script para melhorar as composições e ter mais autonomia nas tocadas.

o comando que abriu caminhos foi o while que deixou a tocada menos rígida, possibilitando novas harmonias e tempos.

loop infinito até você parar

while [ 1 ] ; do dmesg > /dev/dsp ; done

while [ 1 ] ; do cat /etc/X11/xorg.conf > /dev/dsp ; done

mistura tudo:

while [ 1 ] ; do cat /etc/X11/xorg.conf > /dev/dsp && dmesg > /dev/dsp ; done

também é possível tocar o arquivo de texto que produzimos:

while [ 1 ] ; do cat impressoramatricial.txt > /dev/dsp ; done

_hard-live-coding

o pulo pra fazer o live coding é simplesmente você abrir numa aba do terminal o while e na outra o editor de texto com o arquivo da composição. alterando o texto e salvando, o som mudará.

o projeto emotionalKernelPanic começou mais ou menos dessa forma.

depois disso, comecei a elaborar um patch no pure-data para abstrair a parte de código e possibilitar uma tocada mais conceitual utilizando qualquer ação do usuário, desde o mexer do mouse até edição de imagens.

nos próximos posts vou mostrar como funciona o patch e como utiliza-lo para fazer a orquestra do seu kernel, como uma conversa particular, você e sua máquina.

p.alfa#001

0
Filed under arte-tech, livre-imaginário, multimidia

Primeira etapa do projeto de construção de ferramentas artístico-interativas usando tecnologias/organismos livres..

Misturas lúdicas de bits, organismos, soldas, fios, voltz,…

Plataformas:

Arduino + Processing + PD + Protoboard + LDR + Potenciometros + peixe beta(alfa) + pdp_ctrack (rgb:15,15,0);

obra-fluxo… alfa001

obra-processo…

alfa002

obra-acontecimento..

alfa003

… universal sem totalidades..

alfa004

fluxos de bits:

arduino:

int redPin = 0;
int greenPin = 1;
int bluePin = 2;
int ldrPin = 3;

void setup()
{
Serial.begin(9600);
}

void loop()
{
Serial.print(”R”);
Serial.println(analogRead(redPin));
Serial.print(”G”);
Serial.println(analogRead(greenPin));
Serial.print(”B”);
Serial.println(analogRead(bluePin));
Serial.print(”L”);
Serial.println(analogRead(ldrPin));
delay(100);
}

processing: LedsAlfaRemixes

import processing.serial.*;
import oscP5.*;
import netP5.*;

String buff = “”;
int rval = 0, gval = 0, bval = 0, lval=0;
int NEWLINE = 10;

Serial port;

//PD
OscP5 conectarOSC;
NetAddress conectandoPD;
int captura = 0;
//PD

void setup()
{
size(500, 500);
noStroke();
smooth();

// Print a list in case COM1 doesn’t work out
println(”Available serial ports:”);
println(Serial.list());

//port = new Serial(this, “COM1″, 9600);
// Uses the first available port
port = new Serial(this, Serial.list()[0], 9600);
//PD
conectarOSC = new OscP5(this,12000);
conectandoPD = new NetAddress(”127.0.0.1″,12000);
//PD
}

void draw()
{
while (port.available() > 0) {
serialEvent(port.read());
}
//background(random(lval*2), random(lval), random(lval));
fill(captura);
ellipse(random(captura*2),captura, 50,50);
for(int i=0; i<height; i+=20) {
// println(”o valor de i eh “+i);
fill(rval,gval,bval);
rect(0,i,width,10);
fill(random(0,100));
rect(0,i,width,10);
fill(random(rval), random(gval), random(bval));
rect(i,0,10,height);

}

}

void serialEvent(int serial)
{
// If the variable “serial” is not equal to the value for
// a new line, add the value to the variable “buff”. If the
// value “serial” is equal to the value for a new line,
// save the value of the buffer into the variable “val”.
if(serial != NEWLINE) {
buff += char(serial);
}
else {
// The first character tells us which color this value is for
char c = buff.charAt(0);
// Remove it from the string
buff = buff.substring(1);
// Discard the carriage return at the end of the buffer
buff = buff.substring(0, buff.length()-1);
// Parse the String into an integer
if (c == ‘R’)
rval = Integer.parseInt(buff);
//println(”rval “+rval);
else if (c == ‘G’)
gval = Integer.parseInt(buff);
//println(”gval “+gval);
else if (c == ‘B’)
bval = Integer.parseInt(buff);
else if (c == ‘L’)
lval = Integer.parseInt(buff);
//println(”bval “+bval);
// Clear the value of “buff”
buff = “”;
}
}

void oscEvent(OscMessage theOscMessage) {
println(” saida do PD: “+theOscMessage.get(0).intValue());
captura = theOscMessage.get(0).intValue();
}

pdp..

img01.png