arrowHome arrow Tecnologia arrow PureData arrow CUTRE REACTABLE: REACTABLE CASOLÀ AMB REACTIVISON i PUREDATA
mainmenu
Home
Downloads
Search
Contacte
Fotos
del.icio.us
PureData
seccions
Tecnologia
personal
translate
Últims Posts
pd ring
Pd ring
CUTRE REACTABLE: REACTABLE CASOLÀ AMB REACTIVISON i PUREDATA PDF  | Print |
Written by musa   
Sunday, 21 October 2007
El reactable , el famós instrument de música electrònica de la upf , ens permet a través de reacTIVision crear-nos el nostre propi reactable sense gaires complicacions. ReacTIVision és el sensor de visió del projecte reactable. Es tracta d'una aplicació de software lliure, que envia missatges OpenSound Control via UDP pel port 3333 als clients connectats a l'aplicació. Implementa el protocol TUIO, dissenyat especialment per transmetre l'estat d'objectes tangibles. Resumint, reacTIVision, capta certs objectes, anomenats fiducials, amb una càmera IEEE 1394. I envia en els seus clients la posició i moviment d'aquests objectes. Hi ha TUIO clients implementats per a una gran varietat de plataformes de desenvolupament: c++, processing, max, flash,... però el que ens interessa a nosaltres és el TUIO client de  PureData.
 
Amb reacTIVision i puredata podem, doncs, construir el nostre popi reactable, tal i com expliquem a continuació:
 
 
 
·INSTAL·LACIÓ DE REACTIVISON:
 
Primer de tot descarreguem el software reacTIVision per a la plataforma amb la que vulguem treballar, en el nostre cas un Ubuntu, del que podem baixar directament el paquet .deb , i fent doble click l'instal·larem.
 
Seguidament, abans d'executar el programa, cal tenir una camera IEEE 1394, en el meu cas es tracta d'una unibrain , una webcam que va per firewire. (NOTA: vaig provar-ho amb una webcam USB i reacTIVision no funciona..).
 
Un cop connectada la camera, podem executar el programa i comprovar que ens funciona. Ens ha d'aperèixer la imatge captada per la càmera en blanc i negre, tal com es mostra a continuació: 
 

 
·FABRICACIÓ DELS FIDUCIALS: 
 
Com ja hem comentat, el reacTIVision detectarà unes formes concretes, anomenades fiducials. Per fer els nostres propis fiducials, és tant fàcil com baixar-nos el pdf de la web de reacTIVision, imprimir el document, i retallar els fiducials que necessitem:
 

 
·TUIO CLIENT PER A PUREDATA
 
En el nostre cas farem servir el client TUIO de puredata. Per tant, abans de tot, hem de tenir el puredata instal·lat. Descarreguem el client TUIO de puredata de la web de reacTIVison. Descomprimim el paquet,  anem dins la carpeta que ens crea i descomprimim el fitxer source.zip. Ens crearà la carpeta source, i dins aquesta executem make:
 
$ make
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o TuioClient.o TuioClient.cpp
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o OscClient.o OscClient.cpp
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o osc/OscTypes.o osc/OscTypes.cpp
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o osc/OscReceivedElements.o osc/OscReceivedElements.cpp
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o osc/OscPrintReceivedElements.o osc/OscPrintReceivedElements.cpp
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o ip/posix/NetworkingUtils.o ip/posix/NetworkingUtils.cpp
g++ -DOSC_HOST_LITTLE_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer  -fPIC  -I. -I../../src   -c -o ip/posix/UdpSocket.o ip/posix/UdpSocket.cpp
g++ -export_dynamic -shared -o TuioClient.pd_linux TuioClient.o OscClient.o ./osc/OscTypes.o ./osc/OscReceivedElements.o ./osc/OscPrintReceivedElements.o ./ip/posix/NetworkingUtils.o ./ip/posix/UdpSocket.o  -lc  -lm
 
 
Això ens crearà varis fitxers, entre ells hi ha el fitxer de l'objecte: TuioClient.pd_linux. Copiem aquest fitxer al directori de llibreries de puredata.
 
cp TuioClient.pd_linux /usr/local/lib/pd/extra/. 
 
Ara ja podem fer servir el client des de puredata, per provar-ho, primer hem de tenir reacTIVision en execució, i des de puredata obrir el patch TUIO_PureData.pd, que està dins el paquet que ens hem baixat:
 

A la imatge anterior veiem 3 finestres: la de puredata, el patch TUIO_PureData.pd i reacTIVision. Si observem, hem posat el fiducial nº 1 dins l'àrea de captació de reacTIVision, i en la finestra de puredata ens informa que s'ha detectat aquest fiducial, i des del patch veiem el moviment x, y i rotació.  
 
·CUTRE_REACTABLE v0.0
 
Un cop comprovat que el nostre client TUIO en puredata es connecta correctament amb el reacTIVision, podem fer el nostre propi patch per poder disposar del nostre propi reactable. En el meu cas, he generat un patch per als 4 primer fiducials (0, 1, 2 ,3). Evidentment, comparat amb el reactable de la upf, deixa molt de desitjar, però alhora és molt millorable! Una breu descripció de cada fiducial:
 
·Fiducial 0: amb la rotació es modifica la freqüència del so generat amb l'objecte osc, i amb l'eix X es modifica el volum.
·Fiducial 1: igual que el 0 però amb una freqüència d'inici més alta.
·Fiducial 2: controla la velocitat de reproducció d'un sampler (podem carregar el que vulguem) amb la rotació del objecte.
·Fiducial 3: intenta simular un scratch sobre un fitxer d'àudio ogg amb la rotació del objecte (utilitzant oggread).
 
El resultat: 
 
 
 
·Refs
 
 
wiki puredata (esp.). 
 
 

Comments  

 
# J 2007-10-21 10:23
La meva més sincera admiració :-O I també, enveja... perquè negar-ho :-P
Xafardejaré una mica i com trobi alguna frikada més per l'estil, em faré lector habitual!!
Reply | Reply with quote | Quote
 
 
# musa 2007-10-22 15:08
merci noi, però enveja?...NOO!! tot (o quasi tot) està fet amb software lliure, i he intentat explicar-ho com bonament he pogut.. Pots agafar, remanar, provar...fer el que vulguis!
Reply | Reply with quote | Quote
 
 
# Papitu 2007-10-30 00:41
Estic intentant muntar el reactable casolà i no hi ha manera de trobar el fitxer TuioClient.pd ni TuioClient.pd_linux al paquet del client TUIO. Faig quelcom malament o bé el fitxer no es diu així? Moltes gracies i felicitats pel projecte!
papituvadecul [arroba] gmail [punt] com
Reply | Reply with quote | Quote
 
 
# musa 2007-10-30 08:15
Hosti Papitu, gràcies a tu he vist que falta un tros important al manual quan pugui l'arreglo!!

T'explico:

Un cop baixat el paquet, descomprimim també la carpeta source.zip, i anem dins la carpeta source, allà fa falta executar un 'make', que ens generarà els fitxers que no trobes!
Merci per avisa i perdó per l'oblit!!
Reply | Reply with quote | Quote
 
 
# Papitu 2007-10-30 22:45
Descomprimeixo el paquet source executo el makefile així:
make -f /home/.../source/makefile

i em diu que li manca un fitxer

make: * No rule to make target `TuioClient.o', needed by `TuioClient.pd_linux'

Sabries dir-me que estic fent malament? Moltes gracies de nou.
Reply | Reply with quote | Quote
 
 
# musa 2007-10-31 07:07
si fas un make a seques dins la carpeta source? després el fitxer TuioClient.pd_linux genera el pots copiar al directori de pd. És tal com ho vaig fer jo..
Reply | Reply with quote | Quote
 
 
# Papitu 2007-10-31 18:41
Ja ho he aconseguit! Moltes gracies per l'ajuda prestada (m'acabava de reinstal·lar l'Ubuntu i em faltava el paquet g++, en fi, una mica gamarús).

Cutre-reactable for ever! Tremoleu djs!

Ah! per cert amb una cutre webcam connectada via USB també funciona!!!
(Webcam Creative NX Pro-PD1130)
Reply | Reply with quote | Quote
 
 
# musa 2007-10-31 19:32
ok, perfecte doncs!!

La teva webcam deu soportar 640x480 suposo...la meva no, segurament és per això...
Reply | Reply with quote | Quote
 
 
# JoanGorru 2007-10-31 23:23
Ara mateix ho modifico. Per cert, molt bo el trasto aquest, crec que me'n faré un!

http://sonshabituals.blogspot.com/
Reply | Reply with quote | Quote
 
 
# Papitu 2007-11-01 15:30
Espero no esgotar la teva paciència. Com t'havia dit tot rutlla però quan detecta el Fiducial 3 em diu que oggread: no file open (ignored)
en principi només he modificat la ruta del ogg breakbeat.ogg del Cutre_reactable _v0.0.pd original per un ogg meu. Alguna pista? Moltes gracies una vegada més.
Reply | Reply with quote | Quote
 
 
# Papitu 2007-11-01 15:39
Torno a ser jo. Problema solucionat just quan acabava d'enviar-te el missatge. Brrr. Disculpa.

Per cert, quan obro el PureData em dona un error que diu:

/usr/local/lib/pd/extra/pidip.pd_linux: libmp3lame.so.0: cannot open shared object file: No such file or directory

Et sona? Mil gracies, això és apassionant.
Reply | Reply with quote | Quote
 
 
# musa 2007-11-01 16:13
Mira si tens a /usr/lib el fitxer libmp3lame.so.0.0.0, (sino el tens instal·la liblame0). Cal fer un enllaç simbòlic de la següent manera (com a root):

ln -s /usr/lib/libmp3lame.so.0.0.0 /usr/lib/libmp3lame.so.0
Reply | Reply with quote | Quote
 
 
# Papitu 2007-11-03 09:22
Perfecte. Finalment he hagut d'instal·lar també la libjasper. Merci per tot.
Reply | Reply with quote | Quote
 
 
# Dirceu 2007-12-08 21:28
what the version of PD are u running?

i tryed 0.38, 0.39, 0.40 and all return "spigot~ couldn't create"

have u a update of the file?
Reply | Reply with quote | Quote
 
 
# musa 2007-12-09 10:25
I'm using pd_extended, that includes most of externals of pd. (version 0.39.3)
http://at.or.at/hans/pd/installers.html
Reply | Reply with quote | Quote
 
 
# blz 2008-01-29 23:01
Hi there, thanks for your work and infos, but unfortunately, I'm unable to get some sound out of pd with your patch and TUIO Simulator :
- I first open TUIO Simulator
- then I open pd, and test sounds, it's ok
- then opening cutre_reactable _v0.0.pd leads to this in pd :
using default port 3333
spigot~
... couldn't create
spigot~
... couldn't create
spigot~
... couldn't create
oggread~
... couldn't create
- Then, in the simulator, if I drag the blue square with number 0 into the circle, this leads to this in pd :
added: 0
error: inlet: expected '' but got 'float'
Any idea? Thanks in advance
Reply | Reply with quote | Quote
 
 
# musa 2008-02-06 15:19
Wich version of pd do you use?
Reply | Reply with quote | Quote
 
 
# blz 2008-02-14 23:57
Hi again, my pd version is :
Pd version 0.39-3extended-rc5
Reply | Reply with quote | Quote
 
 
# ada byron 2009-01-27 15:47
interesant pero un cop ho tens tot muntat és realment aburrit, lo interesant del reactable és la superpantalla tactil amb llumetes! o no?
Ara, muntar-ho mola!
Reply | Reply with quote | Quote
 
 
# musa 2009-01-27 18:20
Potser tens raó, però això em passa amb el 90 % de les coses qeuu faig, quan disfruto de veritat és quan ho monto.... És com el lego, lo que molo és montar-ho, un cop montat jugues 5 minuts i ja en vols un altre més difícil de montar...Tot i que amb el cutre_reactable m'hi vaig passar bastant més de 5 minuts jugant..
Reply | Reply with quote | Quote
 
 
# ada byron 2009-01-28 11:37
siii yo tmb de fet em vaig pasar tot un dia, weno de fet ho vaig fer al cole amb el max i una cam com u explikes aki! pero en comptes de so ho vaig fer per vidio! per lu ke encara es mes aburrit un cop u tens muntat! :-) estat miran i tmb vaig intenta fer un teremin! :P sembla mentira ke uriginals ke som ^^ i tmb em vaig entretenir a fer un guà musical, amb sensors de "flexivilitat" no se com anomenarlos, pero el resultat tmb es pesim, pk numes vaig ser capas de canvia el to, el volum i la velocitat de to.. mira, http://www.rmx.cz/monsters/ no se si sabras fer anal el prosesing suposu ke si!
Reply | Reply with quote | Quote
 
 
# ada byron 2009-01-28 11:41
jolin com m'enrollo...
pues aixo avera si t'animes i fas un monstre ke ja en som uns cuants! si no saps com pujarlo me l'envies i tel pujo yo!
:-)

uau i mira aixo ke wai:
http://www.toniface.es/nude-de-radiohead-con-un-spectrum-una-impresora-un-scanner-y-discos-duros/

i aixo tmb:
http://www.youtube.com/watch?v=X4SCSGRVAQE&feature=related

:-)
Reply | Reply with quote | Quote
 
 
# ada byron 2009-01-28 11:47
http://www.youtube.com/watch?v=X4SCSGRVAQE&feature=related

aket si
Reply | Reply with quote | Quote
 
 
# Juan Pablo Toledo 2009-07-31 19:44
Do you can control at least two variables at the same time? I´m stuck because i can control only one, in reactable they put ten objects and works fine. Please if you know a way to do it whitout making ten different patchs in puredata sendme a email.

juampa.blotoledo@gmail .com
Reply | Reply with quote | Quote
 
 
# santiago 2009-10-11 19:15
Hey ! Thanks for your mini tutorial but I got this error Compiling PD TUIO_Client

g++ -DOSC_HOST_LITTL E_ENDIAN -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC -I. -I../../src -c -o OscClient.o OscClient.cpp
OscClient.cpp: In member function ‘void OscClient::Proc essMessage(cons t osc::ReceivedMe ssage&, const IpEndpointName&)’:
OscClient.cpp:74: error: ‘strcmp’ no se declaró en este ámbito
OscClient.cpp:104: aviso: conversión obsoleta de una constante de cadena a ‘char*’
OscClient.cpp:105: aviso: conversión obsoleta de una constante de cadena a ‘char*’
OscClient.cpp:131: aviso: conversión
Reply | Reply with quote | Quote
 
 
# musa 2009-10-11 19:32
The version of the TUIO client used in this post is so old (2006), maybe that's the problem (I'm not sure). You can try with the version 1.4.
http://sourceforge.net/projects/reactivision/files/TUIO%201.0/TUIO-Clients%201.4/TUIO_PureData-1.4.zip/download

Good luck!
Reply | Reply with quote | Quote
 

Add comment


Security code
Refresh

< Prev   Next >
Search
Tags
PureData abstractions android audio boxes capgrossos castellers data directe effects ezstream ffmpeg flash flv freeframe frei0r gem gutsy icecast ip joomla linux live mandril mandril_boxes mataró midi network networking ogg opencv patching pcaplib pd pdp pdp_mgrid pdpcap pidip pure puredata quick radio santes santes24h sniffer streaming tcp tcpdump tecnologia theora theremin traffic ubuntu udp viatge video videolan vlc vorbis web
Syndicate
Archive
Random Image
esquemap.jpg
^top of page^

Creative Commons License