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: |
Comments
Xafardejaré una mica i com trobi alguna frikada més per l'estil, em faré lector habitual!!
papituvadecul [arroba] gmail [punt] com
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!!
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.
Cutre-reactable for ever! Tremoleu djs!
Ah! per cert amb una cutre webcam connectada via USB també funciona!!!
(Webcam Creative NX Pro-PD1130)
La teva webcam deu soportar 640x480 suposo...la meva no, segurament és per això...
http://sonshabituals.blogspot.com/
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.
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.
ln -s /usr/lib/libmp3lame.so.0.0.0 /usr/lib/libmp3lame.so.0
i tryed 0.38, 0.39, 0.40 and all return "spigot~ couldn't create"
have u a update of the file?
http://at.or.at/hans/pd/installers.html
- 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
Pd version 0.39-3extended-rc5
Ara, muntar-ho mola!
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
:-)
aket si
juampa.blotoledo@gmail .com
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
http://sourceforge.net/projects/reactivision/files/TUIO%201.0/TUIO-Clients%201.4/TUIO_PureData-1.4.zip/download
Good luck!
RSS feed for comments to this post.