Record from jit.gl.render

freddyc's icon

Hi,

Max Patch
Copy patch and select New From Clipboard in Max.

For a while I have been trying to find a way to record a a quicktime movie of from this patch. I tried different HD screen grabbers but they all came out with really low resolution. I've looked around and I didn't find a way to record straight from a jit.window. Any ideas on how I can achieve this ? Patch below.

Christopher Dobrian's icon

You can set jit.gl.render to render to a jit.matrix, then record that matrix with jit.vcr or jit.qt.record. You can change the rendering destination using the 'drawto' attribute of jit.gl.render. See Jitter Tutorial 31: Rendering Destinations.

freddyc's icon

Hi Christopher,

Max Patch
Copy patch and select New From Clipboard in Max.

Thanks for your answer. I did connect the jit.gl.render to a jit.matrix but as you can see on the patch underneath it only gives a pixelated shape that doesn't respond to jit.gl.handle and to jit.gl.texture. It was working absolutely fine with the jit.window but when I connect it to jit.matrix it seems to go completely wrong. Patch below.

Rob Ramirez's icon

the recommended way of recording your gl output is with the jit.gl.asyncread object.

freddyc's icon

I did try the jit.gl.asyncread object quite a few times but I was faced with two problems.

First it slows down the patch quite dramatically.

Second in order to record from jit.gl.asyncread you have to set fsaa to 0 which lowers the quality of the video.

Rob Ramirez's icon
freddyc's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I tried using the jit.gl.syphonserver a few times but it kept on crashing on Max 6.1 ... I've just tried it on Max 6 and it didn't crash but I still can't get jit.gl.node to communicate with the syphon server / client. Latest patch attached

freddyc's icon

Any thoughts on this ? I've been looking into this for months now with no luck and I can't proceed with my project unless I get passed this obstacle ! It would be greatly appreciated.

thanks

Rob Ramirez's icon

you have to either connect the middle outlet of the gl.node to the gl objects you want to capture, or give the gl.node a name attribute and set the first argument of the gl objects to that name.

syphonserver works fine for me in 6.1 32 bit.

freddyc's icon

I have done this and it didn't work again. I'm a novice in and that's probably why I can't figure it out. After all these months I have to conclude that there isn't a way to capture an HD recording with either a screen grabber, any jitter object or externals like syphon.

freddyc's icon
Tzu-En Ngiao's icon

Hi Freddy, would you mind sharing your patch and your solution here? It would help heaps. Thanks! ^_^

innerrevolt's icon

Hi guys!

I'm not good at this Max Msp Jitter stuff. I've been trying to figure this out and I simply can't. I hope you wizards can help me.

I would like to record the final jit.gl.render output into a mov. file with sound through syphon record. How do I do this?! I need someone to kindly explain to me this task step by step, because I literally have half a brain.

I have several questions, so here we go:

I have syphon server/client/record ready to go. I've been successful at connecting the jit.gl.node 2nd outlet to a mesh in other examples and see it in the syphon record. But this time, I want to record the whole output out of jit.gl render. I am attaching a patch made by Sem Schreuder. I have attached the syphon object but is not connected because I've tried all the options my brain could think of.

My questions are:

1. How do I get a mov. file with sound?

2. Do I need a jit.gl.slab to flip the image? I do not know java and do not know how to code.

3. How do I record a mov. file from jit.gl.render. As far as I understand, jit.gl.node 2nd outlet only works with 3D objects. But what if the output I want to record from is not a 3D object. This patch is complex (for me) and if I connect the jit.gl.node 2nd outlet to the jit.gl.gridshape it skips the jit.gl.texture and I am sure it skips a few other objects.

This question is not for this patch but it happens with syphon

4. Sometimes, when I connect the jit.gl.node 2nd outlet to jit.gl.mesh I lose the output of jit.window, but I can see it in the syphon output. Why?

I'm sorry, I know these are a lot of questions but otherwise I won't learn.

Thank you very much!

OPENTHISFILE_MOV2.maxpat
Max Patch
Rob Ramirez's icon

easiest way to record a scene (or send to syphon) is to use jit.world.
to send to syphon, use @output_texture 1
to record in app with jit.record or jit.vcr use @output_matrix 1

if sending to syphon, you do have to insert a single jit.gl.slab to flip the image.

the following patch snippet is all you need to start. any gl object you add to this patch will be sent to the syphon output. if you want to display matrices, simply send the final matrix output into the first inlet of the jit.world, or send them to a jit.gl.videoplane object.

the important step when sending from jit.world to syphon is to specify a drawto attribute argument in the jit.world, and provide that as the first argument to the syphon server object ("ctx" in this patch).

to record audio with syphon recorder you have to use soundflower i think.

Max Patch
Copy patch and select New From Clipboard in Max.

innerrevolt's icon

Rob,

Thank you so much for your help! Apparently you are the Guru at this. Every single post you are in it! I truly appreciate it.

I am horrible at this and haven't figure it out. I got the image to jit.world without the patch chord by just naming it tex-ctx. I tried every outlet to jit.world and it didn't work. I do not know why. I also have followed your instructions and I still do not know what I m doing wrong.

Is it possible that you show me how to patch this specific jit.world to syphon on this patch ? The only thing I get to syphon is a gray image.

Also, once jit.world displays, I lose the image in the actual jit.pwindow...Do you know why?

I am so close. I feel like I am asking someone to do my homework, but honestly I've been battling with his and nothing happens.

I hope this is not too much to ask.

Thank you very much!

Max Patch
Copy patch and select New From Clipboard in Max.

Rob Ramirez's icon

you need to read up a bit on these objects so you know how to properly incorporate them.

jit.world is a replacement for jit.window/jit.gl.render, so you should remove those objects from your old patch. you can instead use jit.gl.mesh to do the geometry drawing (which is the recommended object for drawing matrices of geometry). you can enable @autonormals on the gl.mesh to get proper lighting / shading.

you want to send the contents of your scene to syphon, therefore the syphonserver needs to live "outside" the scene context. this is what the jit.world @drawto attribute allows. so the first arg to jit.world names the scene context that all other objects will draw to, and the drawto arg names the parent context that will capture that scene and send to syphon.

Max Patch
Copy patch and select New From Clipboard in Max.