-
Belfegor
hi,
i'm trying record the Gem window but i don't know how continue. i've searched in the forum and in the lists but i haven't found revelant information. I've several gemheads rendering and i record all of them with pix_writer, but i would like record the final mix (the Gem window) too.
is there any way without external programs to PD?I need to preview it in the GUI and to send over CITP/MSEx (one lighting ethernet protocol) to show the preview in remote controllers.
Regards.
-
Belfegor
Hello,
i have uploaded the first version of one external i'm developing. ola2pd reads one DMX512 universe from OLA and outputs them in Pure Data/MaX like a list of 512 values. The universe can be configured before opennig the connection sending one message <universe n> where n is the number of the universe in OLA. After, you can send one message <open> to stablish the connection. You can send one message <close> to exit, and reconfigure the universe if you need it. The bang method shows the number of the universe it's currently selected.
It's based on flext headers from Thomas Grill, so it should compile in Windows, Linux and Mac, and for Pure Data and Max/MSP. You must have the flext and the Open Lighting Arquitecture headers installed in order to compile it. I've only tested in Debian Wheezy with Pure Data, it's the only binary in the download.
See readme.txt for install and use (sorry, only in spanish at the moment, but it's very simple...) and ola2pd_help.pd
Download:
http://code.google.com/p/puremediaserver/downloads/detail?name=ola2pd_0.0.1.tar.gz
SVN:
http://code.google.com/p/puremediaserver/externals/ola2pd
Flext headers:
http://puredata.info/Members/thomas/flext
Open Lighting Arquitecture:
http://code.google.com/p/linux-lighting/
Know issues:
The Release mode of the binary crash Pure Data at object creation. If the binary is compiled in debug mode works fine. This option can be changed in the file package.txt with the option
BUILDMODE=debug (or release)Credits:
All the credit to Simon Newton for OLA and ola_dmxmonitor, this is a modification of that code.
-
Belfegor
Launching PD with command line options? you can set a large of options in this way...
pd --help in a terminal show all the options
-
Belfegor
[gemwin x] will render at x fps, in this case 1 fps or 2 fps. If not argument is supplied Gem will render at 20 fps.
You can not create 2 Gem windows in the same PD instance, although it will be in in differents patches. You can do it with two PD instances and intercommunicates it with netsend/netreceive.
In the same PD instances you must first destroy the window in a patch, set the new values for the new window and create it again. Perhaps a delay to the bang wich creates the new window would be fine. Note that this is not 2 Gem windows, only destroys and creates one Gem window.
If you don't send new values before creating the new window will be equal to the old window.Also you can use two gemheads chains in the same patch and both will render in the same Gem window.
Attach a example patch to show us better what are you trying..
-
Belfegor
Check the path to cyclone library in PD preferences
or copy the counter binary to your pd-externals folder or to your patch folder
-
Belfegor
New version with some code cleaning and some bugs fixed.
http://puremediaserver.googlecode.com/files/ola2pd_0.02.tar.gz
-
Belfegor
Thanks for the patch, is a simple solution, but still slows the render and worse, alternates between 20 and 0 all the time when i overload the cpu.
So, higher than 100% Gem will loose render frames? i'm thinking about warning the user when Gem is going slow. I'm preparing a huge patch and it's very probable these happens.
-
Belfegor
Hi,
i've do an external (pix2rgb) that outputs the data values of an image in a list in the second outlet. It's the first version working, i think to do something usable i would need one outlet more with the x and y information to regenerate the image, but if you know the size of the image it doesn't needed. The list is the raw data, so you need convert the image to RGB space before pix2rgb.
I've included the latest git version of Gem compiled. Compiled and working in Ubuntu Precise 12.04.
With the Gem version of Ubuntu repository gives an undefined symbol error and not loads.Send me a message if you are trying it, please... In the next weeks i will improve it and upload the sources to some place.
This is fine to me. If not to you there is a function in Gem/image.h called GetRGB, that reads the RGB values of a pixel given x and y coordinates. Perhaps is more suitable to your needs, with pix2rgb you can track individual pixels manipulating the list with list split and unpack.
http://puremediaserver.googlecode.com/files/pix2rgb.tar.gz
I can't upload it here, perhaps it's too large for the forum engine
-
Belfegor
...or with netreceive object and send the parameters to PD via TCP socket.
...or send parameters via OSC
-
Belfegor
i'm searching for this too. You can save to tiff or jpg with pix_write, but i would like have the RGB plain in PD to send over TCP or UDP. An external that outputs a list with the bitmap plain instead a file would be awesone. I think the read/write is too slow and have too much acces disk for my patch.
i will look at the pix_write code, and i would like know where i can find information about the gemlist format, if anybody knows...
Regards.
-
Belfegor
and attached is an advanced payer for pix_film: Plays in auto mode (loop or one shot), forward, backwards and ping-pong, with speed control, entry and exit points, in loop or one shot mode, and with Pause/Continue/Resume. We need 4 channel between 0 and 255 to control it, plus the inlet with the filename to play.
These are complex examples from mine, i don't said they are the best, but are working for me. You can see how works pix_film...
Also you can look for the mandril boxes, they are very useful working with videos, and have a lot of stuff ready to use.
y adjunto un reproductor avanzado para pix_film: reproduce in modo auto (loop o un disparo), hacia delante, atrás y en ping-pong, con control de velocidad, puntos de entrada y salida, en loop o en un disparo, y con funciones Pause/Continue/Resume. Necesitamos 4 canales entre 0 y 255 para controlarlo, además del inlet con el nombre del fichero para reproducir.
Estos son ejemplos complicados hechos por mí, no digo que sean lo mejores, pero funcionan para mí. Puedes ver cómo trabaja pix_film...
También puedes echarle un vistazo a las mandril boxes, son muy útiles trabajando con video y tienen mucho material listo para usar.
-
Belfegor
Hi,
How it plays the file? yo have to send a message [auto 1) to the left inlet of pix_film or send to the
right inlet the number of the frame to play and increment it with a metro. Look at the help patch for pix_film.I've attached one advanced file selector patch. The selector choose one file in path given with 255 directories and 255 files for folder. The file and folder selection is alfabetically, so you doesn't must change the filename to 1.a vi or similar, can be 000-fire.mpg, 001.water.mpg,etc... You must have installed the hcs/folderlist external.
Hola,
¿cómo reproduce el fichero? tienes que mandar un mensaje [auto 1) al inlet izquierdo de pix_film, o ir refrescando el inlet derecho con un contador que vaya incrementando el numero de frames. Mira el fichero de ayuda de pix_film.
He adjuntado un pacth de un selector avanzado. Escoge un fichero dentro de un path dado con 255 carpetas y cada una con 255 archivos. La selección de fichero y archivo es alfabetica, por lo que no tienes que renombrar los ficheros a 1.mpg o similar, pueden ser 000-fuego.mpg, 001-agua.mpg,... y las carpetas lo mismo. Tienes que tener isntalado el external hcs/folderlist.
-
Belfegor
hi,
i think libpd it's you are looking for.
https://github.com/libpd/libpd/wiki It turns PD into an embedable library. It has manyl API's: C, Objetive-C, C++, Java, Processing (very similar to Java). You can use the best you know. You can use it in Linux, Mac Os, Win, Android, iOs
And is Pure Data, you can use and edit the patchs normally, but you can use libpd like a DSP function for any C/C++/Java program. The program sends to libpd one audio array, libpd process it and returns the audio array procesed.
The license is the same than PD.
There is an active libpd comunity in: