I just recently started working with Pd/Gem. I'm applying for a grant to combine it with my main art form (choreography). I need to send a DVD of my experiments. Is there a way to have Gem (or some accessory) save a Gem patch's output in some video file format? This would be preferable to outputting it from the computer to external video (which I also don't know how to do) because at the moment the only external video I can output to anyway is VHS.
If there's no such thing in Gem/Pd, is there a way to do it in OSX 10.4? (I also only just started working with a Mac, so I have a lot to learn there, too.)
Thanks.
Dudley Brooks wrote:
yes, hard to figure out, offers some sources where you could run into problems (memory space, finding good resolution settings/a balance of available space and image quality, so that you can use it for your dvd), it also crashed in the past. but that should not keep you from trying, just don't give up if it does not work in the first time. it is still easier than using pix_write. marius.
pix_record was crashing constantly in osx 10.4.11 gem 0.91-cvs and pd-0.40-1powerbook ppc.there was a thread about it not that long ago. Maybe in gem-dev. best,
J
On Feb 13, 2008 1:57 AM, marius schebella marius.schebella@gmail.com wrote:
Le Wed, 13 Feb 2008 02:17:01 -0800, "Jaime Oliver" jaime.oliver2@gmail.com a écrit :
yes, there was a thread because the object pix_record from the CVS was broken (diditn record anything) but IOhannes fixed it (thanks IOhannes! you saved my ass!)
There is still one bug, which is, the object crashes on the second recording. The workaround I found is to add a demux in the gemchain and duplicate as many pix_record objects as needed. Can send the path if someone needs it.
This is it, as seen from the Linux side. Looks like it works great in PD-Extended 0.39-3.
The last time I tried to pix_record on OSX (on a Dual G5 running Panther, 2Go RAM) , I switched to Gem2pdp + pdp_rec because the Mac couldnt handle it in realtime for a 640x480 window and PDP made it (might be related to PDP multithread capability).
Bye
O.
Olivier Heinry wrote:
The last time I tried to pix_record on OSX (on a Dual G5 running Panther, 2Go RAM) , I switched to Gem2pdp + pdp_rec because the Mac couldnt handle it in realtime for a 640x480 window and PDP made it (might be related to PDP multithread capability).
I'm sorry, what is pdp_rec? It won't create, and I don't find it listed. The only thing I find that seems to be able to write to a file is pdp_rawout.
Dudley Brooks wrote:
I found it as soon as I added the missing tilde at the end: pdp_rec~.
So I now have pdp_rec~. But when I try to play the output file in QuickTime, I get the error message "The movie could not be opened. An invalid public movie atom was found in the movie." The same thing happens if I try to import into Final Cut or iMovie.
Google reveals that it's because when QT 7.3 came out, they changed the value of a "null byte" from 0 to -1 -- thereby invalidating many .mov files and infuriating many people. The only suggested solution I've found mentioned is reverting to QT 7.2 (someone recommends 7.1.6), which apparently involves wiping the HD and re-installing the OS -- *if* you can find QT 7.2 or 7.1.6.
I searched for the error message on the pd-list archive and didn't find anything. Does anyone have experience with this and know a solution? Olivier, when you use gem2pdp and pdp_rec~ as mentioned in your post, what do you do with the resulting file?
Thanks.
-- Dudley
Le Thu, 14 Feb 2008 08:09:40 -0800, Dudley Brooks dbrooks@runforyourlife.org a écrit :
Dudley Brooks wrote:
I edited it w/ FCP, version prior to HD. I remember having this QT issue though, which was solved by heavy googling to get the url where to download QT from.
I get this error too when using pdp_rec and then trying to open the files on a mac
---- Olivier Heinry olivier@heinry.fr wrote:
Le Thu, 14 Feb 2008 08:09:40 -0800,
Dudley Brooks dbrooks@runforyourlife.org a �crit :
Dudley Brooks wrote:
I edited it w/ FCP, version prior to HD. I remember having this QT issue though, which was solved by heavy googling to get the url where to download QT from.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Patrick Pagano Sound and Light Technologist School of Theatre and Dance University of Florida
without having any expertise in this field, i suggest to edit your mov files with an hexeditor and change the value in the header of the mov-file accordingly, so that it can be read by Quicktime.
the option of having to completely reinstall the operating system because of some wrongly set bit in a few files seems really crazy :-(
roman
On Thu, 2008-02-14 at 08:09 -0800, Dudley Brooks wrote:
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
Roman Haefeli wrote:
Thanks. Could you point me to good online info on file formats, so that I know what to change?
the option of having to completely reinstall the operating system because of some wrongly set bit in a few files seems really crazy :-(
I agree 100%. It's the sort of hitting-a-fly-with-sledgehammer approach that Windows tech support was always recommending. I was disappointed to find it recommended by Mac users (or possibly Mac support, I'm not sure which).
-- Dudley
A recent QT upgrade (7.4.1) now lets QT read the file created by pdp_rec~. However, the video portion comes out blank.
The first time I tried reading the file I got a message something like "QT needs a new component in order to read this file." Of course, it didn't say *which* new component, and the Apple website it directed me to was no help.
Subsequently, plays the file without giving the message -- but still with the video blank.
Does anyone know which new component is needed?
Thanks.
-- Dudley
Dudley Brooks wrote:
I tired of waiting and have successfully opened movies created with pdp_rec~ on a mac using FFMPEGX
on linux i export to AVI with VLC wizard
your welcome
pp
---- Dudley Brooks dbrooks@runforyourlife.org wrote:
-- Patrick Pagano Sound and Light Technologist School of Theatre and Dance University of Florida
Jaime Oliver wrote:
pix_record was crashing constantly in osx 10.4.11 gem 0.91-cvs and pd-0.40-1 powerbook ppc.
That's been my experience so far too.
there was a thread about it not that long ago. Maybe in gem-dev. best,
Thanks. I'll look for it.
Meanwhile, what recommendations does anyone have for other methods of making a DVD of Gem output, *not* necessarily involving having Gem itself create a file?
Thanks.
Dudley Brooks wrote:
Meanwhile, what recommendations does anyone have for other methods of making a DVD of Gem output,
I record my actions during performance, then later play them back into my patch with pix_write and writesf~ activated. Pd uses 1000% CPU load, and stutters during rendering, but audio and video remain in sync.
I have the [gemwin] at 720x576 25fps, for PAL DVD rendering.
Then simply encode the TIFF files with your video software - I have a longwinded process that works with the following free tools:
for video:
convert manypngtoppm [1] ppmtoy4m y4mscaler (because ppmtoy4m is crap at chroma subsampling) mpeg2enc
for audio:
audacity (to trim to exact length, normalize volume, etc) twolame
then:
mplex
and finally:
dvdauthor mkisofs growisofs
*not* necessarily involving having Gem itself create a file?
maybe recordmydesktop - but I seem to recall it supports only Ogg codecs...
BTW, I'm on Linux, but the above tools might work on OS X too.
Claude
[1] converts multiple pngs into one ppm stream
https://devel.goto10.org/filedetails.php?repname=maximus&path=%2Fmanypng...
Haven't folowed this entire thread but also want to mention Yukon on Linux works for recording Gem output. Site seems to be down at the moment http://www.neopsis.com/projects/yukon/ . Also a good list of screen capture tools for Linux here. I've also used Istanbul. http://linuxmafia.com/faq/Apps/desktop-video-capture.html Jim
marius schebella a écrit :
another way to record your performances is to mirror your display and feed the output with a dv camera or some other device.
this will limit the quality.
recording your actions is brilliant but a lot of effort during patching.
in fact, not so much effort. specially if you use this abstractions. you just have to insert a [rec_play_any data_name] on every connections you need to record. then the [master_rec_play] allow you to record everything in a qlist, and play it latter in order to record sound/images.
this is known to gives good result.
the single magic line i use to create a movie is :
mencoder -oac mp3lame -lameopts cbr:br=256:aq=0 -audiofile rec_.wav -fps 50 -ss 0 -ovc xvid -xvidencopts bitrate=5000 -vop scale=640:480 mf://*.jpg -o out.avi
cyrille
On Wed, Feb 13, 2008 at 09:39:40PM +0100, cyrille henry wrote:
[plug]
The s-abstractions collection also contains a couple of friendly GOP helper abstractions (called 'total recall') for doing this:
http://mccormick.cx/viewcvs/*checkout*/s-abstractions/s-totalrecall-help.pd?root=svn http://mccormick.cx/viewcvs/*checkout*/s-abstractions/s-totalrecall.pd?root=svn http://mccormick.cx/viewcvs/*checkout*/s-abstractions/s-tr-node.pd?root=svn
My mencoder script for converting jpg + mp3 to video is attached [and works in Debian Etch]. This will render a perfectly synchronised video for you at the exact framerate of Gem - usually 20fps I think.
I made this video with that: http://archive.org/details/Ergates/
[/plug]
Best,
Chris.
hi there
im using on mac program called "snapz pro x" and it is a screen capture program, witch can grab opengl window of gem as movie. this process needs a lot of cpu power so u need a powerfull machine. it is quite easy to use it. hope it helps nikola
Meanwhile, what recommendations does anyone have for other methods of making a DVD of Gem output, *not* necessarily involving having Gem itself create a file?
Dudley Brooks wrote:
jeremaja niko wrote:
It did indeed! Thanks! It was the only thing that finally let me get my DVD made -- with just an hour and a half to spare! The other three methods (pix_record, pdp_rec~, and pix_write) had the various problems mentioned in this thread. Synchronizing the sound with the video was hard also. (The nature of the sound made it hard to find clear landmarks for sliding the sound into alignment, and yet it was still obvious when watching that they weren't in synch. But with Snapz they were in synch to begin with.)
I also found that pix_record not only gets the colors wrong, but seems to rotate the picture 90 degrees and reverse it as well. (The abstract nature of the piece is why that wasn't obvious immediately.) But how can it be that pix_record does this, and especially that people haven't noticed and complained? Or fixed, those who know how? (Not me, I'm afraid.) Incompatibility between how the various video cards label screen directions and RGB colors?
-- Dudley
On Fri, Mar 7, 2008 at 3:27 AM, Dudley Brooks dbrooks@runforyourlife.org wrote:
This has been fixed in the code for at least 9 months.
IOhannes m zmölnig wrote:
Sorry, I was writing long after midnight, after a frustrating day of trying to get a good recording in time for a deadline. It's 0.39-extended.
rotating the picture by 90° is _very_ unusual. did you mean 180°?
No, I *thought* it was rotated 90 degrees, because motion towards upper right became towards lower right. There was too much symmetry otherwise to tell if this was a rotation or a flip. When I made a patch today explicitly to test it, it did just turn out to be flipped top-to-bottom, which certainly makes sense in terms of what different systems do with y. Even my midnight-befuddled brain was didn't really believe that it could swap x and y.
-- Dudley
fmgadsr IOhannes
a crashlog would help a lot.
On Feb 13, 2008 4:17 AM, Jaime Oliver jaime.oliver2@gmail.com wrote:
Still a newbie after several weeks! :^(
I didn't specify one part of my original question -- which I still can't figure out:
I can get [pix_record] to work in a patch like this:
[gemhead] | | <input a movie, etc.> |/ [pix_draw] | | <open a save file; "record" and "auto" messages; etc.> |/ [pix_record]
But how do I do something like this:
[gemhead] |
<various manipulations> | [cube] | <???????> | [pix_record]
What do I have put in <???????> to feed geos, lights, etc., to [pix_record]? I tried connecting them directly to [pix_record], which didn't work, and I tried connecting them to [pix_draw], which connects to [pix_record]. Is it that geos don't produce pixes?
Thanks.
pix_snap you have to set a size (the size of your gemwin for example and send a snap message for every frame you want to snap. (use [t b a])
In theory this works, in practice not, because pix_record gives me wrong colors (something like red and green swapped). Do your colors look correct???
marius.
Dudley Brooks wrote:
[Marius -- Thanks for this and also your offline help. I'm putting it back in the public discussion.]
When there are several gemlists, due to several geos, each one seems to trigger snap. So what should be a single frame gets extended into as many frames as there are geos, and during the course of this "extended frame" each geo appears sequentially as it is rendered. Then this starts all over again at the beginning of the next "extended frame". The result is that when I play back the QT movie, it is slowed down and geos flicker in and out of existence.
Is there an object which I can connect all the geo outputs to which will accumulate them until they have all been rendered and only then output them and send a bang to snap? Or is there some other way to synchrnize snap so that it will only capture the "completed" rendering?
In short: How do you use snap/pix_snap/pix_record (or maybe something else and pix_snap?) to capture the output of a *complicated* patch?
Thanks (everyone).
-- Dudley
marius schebella wrote:
On Fri, Feb 29, 2008 at 12:56 PM, Dudley Brooks dbrooks@runforyourlife.org wrote:
In short: How do you use snap/pix_snap/pix_record (or maybe something else and pix_snap?) to capture the output of a *complicated* patch?
[gemhead 99] | | [pix_snap]
chris clepper wrote:
Of course! Ingenious!
However ... I tried it, and, even though the frame count output of pix_record churned out frame numbers, the resulting file was only one frame long and that frame only showed one of the geos. I even made the priorities of the various geos' gemheads explicitly lower and it still didn't work.
I can't figure out why that particular geo registered -- none of the geo's were connected to pix_snap. That's the intention, right? I also tried connecting several of the geos to pix_snap and the results were still the same: the movie had only one frame, which contained only one geo -- even when that particular geo was the only one which was *not* connected to pix_snap. So the connections were irrelevant.
I assume it has something to do with rendering/buffering, but I don't know enough about those.
-- Dudley
On Fri, 2008-02-29 at 12:30 -0800, Dudley Brooks wrote:
actually they don't need to be connected. you can have all the geo stuff attached to a different [gemhead]. important is only the order of execution. first all geos need to be rendered and _after_ that you make a snapshot of the current buffer. that is why chris clepper is suggesting to use a [gemhead 99] (the higher the number, the later the according [gemhead] is drawing).
you have to send a 'snap' message to [pix_snap] for each frame you want to capture. usually this is done with something like:
[gemhead 99] | [t a b] | / | [snap( |/ [pix_snap] |
(actually i am not sure anymore about the order: whether 'snap' or the gemlist message should be received first)
exactly, they _are_ irrelevant. geos are drawn to the framebuffer and [pix_snap] captures a snapshot of the buffer, which means there is no connection needed.
I assume it has something to do with rendering/buffering, but I don't know enough about those.
i hope it rather helps than it confuses, but for me it was important to understand, that Gem doesn't really reflect the dataflow paradigm: unlike in pd's audio connection, not the data itself is 'flowing' through the connections. rather Gem's object classes are used to compose instructions for the graphic card. those instructions are passed through all objects (actually only a pointer is passed around) and then the instructions are sent to card, where all the geos, textures and stuff are drawn into the buffer. when all the calculations are finished, the content of the buffer is displayed in the gemwin. (@devs: please correct me, if i am saying bullshit...) yo...having said, it might be easy now to understand a few cool tricks in Gem. for example, you don't necessarily need several geo objects (e.g. [cube]) in order to draw several of them. you could draw as many cubes with only one [cube] by passing more than one gemlist message per tick to it (a.k.a multiplying the number of instructions):
[gemhead] | [t a a a a] | / / / [rotateXYZ 2 4 6] | [translateXYZ 0.2 0.1 0.3] | [cube]
i hope that sheds some light on your questions.
roman
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
Roman Haefeli wrote:
Thanks. That's what I suspected. Thanks for substantiating.
My error. I had thought that you meant that the signals from [gemhead 99] would *take the place of snap*. Your solution solves *half* the problem -- the movie now has the correct number of frames, but they're all identical to the first frame. However --->
(actually i am not sure anymore about the order: whether 'snap' or the gemlist message should be received first)
[t b a] turns out to be the one that works. Possibly that makes consistent sense? You'd want the gemlist to be "available" (whatever that means in this context -- the buffer?) first, before sending the message to snap it, right? I dunno. But it works!
Again, thanks for confirming my suspicion.
Thanks for the info. I guess a certain abstract data is still flowing (the "data" being "do this calculation") but I appreciate the help on understanding the time structure of the process.
Thanks. That answers a question I hadn't yet submitted to the ng. I *could* ask for more details -- like how to give the multiple instances different characteristics, how to create a random (or at least not hardwired) number of instances, etc. But that would be a brand new thread, and I'll experiment with it first before asking for help.
i hope that sheds some light on your questions.
Absolutely! Thanks Roman, Chris, and Marius, for the help! And it's still in time to make my DVD and send it in by the deadline tonight!
-- Dudley
Dudley Brooks wrote:
Absolutely! Thanks Roman, Chris, and Marius, for the help! And it's still in time to make my DVD and send it in by the deadline tonight!
just curious, where are you applying? and do you know a method to convert the file from whatever color format to a useful one, maybe only the correct color information needs to be written into the header... marius.
marius schebella wrote:
It's the West Wave Dance Festival in San Francisco. I'm already applying once as a choreographer (of regular dances, which is to say live human beings). But another part of the festival is a Digital Dance Film Festival. So I'm entering a film of algorithmically controlled virtual dancers. The geos that I mentioned are the various body parts of the "dancers". Since the dancers are colorless (all white) and the only colors are generated by lighting effects, it doesn't matter that the colors aren't correct, since it's supposed to be very abstract anyway.
However, now that you mention it, I see that red comes out as its opposite, cyan; green as its opposite, magenta; but blue strangely remains blue. And it *does* have an effect on the film, since it pulls it too much to the blue end, and therefore it isn't as colorful as it should be. And no, I don't know how to convert it.
I'll start a new thread.
-- Dudley
Look at pix_snap and pix_record to make a Quicktime movie or pix_write to make an image sequence that can be made into a movie using Quicktime Pro.
On Feb 12, 2008 8:14 PM, Dudley Brooks dbrooks@runforyourlife.org wrote: