Forums > Jitter

jit.qt.record non-realtime issue

January 8, 2007 | 9:36 pm

Hi,

I’m trying to record a very time-sensitive project using jit.lcd as the main object going to jit.qt.record (I created a piece that is exactly 676400 ms, or app. 11 min. 18 sec. long). I would love to apply something similar to the framedump method explained in JitterTutorial 19, but that message applies to jit.qt.movie, not jit.lcd.

I’ve included the patch if you’d like to take a look as it currently stands. When I record using the method I’m currently using, it ends up being about a minute and 1/2 short in duration. Any ideas on how I might get a high quality recording without dropped frames?

Many thanks.


January 8, 2007 | 9:52 pm

I haven’t looked at your patch (yet), but let’s assume that you’re
creating a movie at 25 fps. 676400ms/40 = 16910 frames [1000ms/
25frames = 40ms/frame]. This means, when you send a "write 25.
" message to jit.qt.record, you need to send exactly
16910 frames from jit.lcd to jit.qt.record. How you do this is up to
you.

jb

Am 08.01.2007 um 22:36 schrieb nb23:

> Hi,
>
> I’m trying to record a very time-sensitive project using jit.lcd as
> the main object going to jit.qt.record (I created a piece that is
> exactly 676400 ms, or app. 11 min. 18 sec. long). I would love to
> apply something similar to the framedump method explained in
> JitterTutorial 19, but that message applies to jit.qt.movie, not
> jit.lcd.
>
> I’ve included the patch if you’d like to take a look as it
> currently stands. When I record using the method I’m currently
> using, it ends up being about a minute and 1/2 short in duration.
> Any ideas on how I might get a high quality recording without
> dropped frames?
>
> Many thanks.
>


January 8, 2007 | 10:02 pm

jb: Thanks for your quick response. I’m recording at 24 fps, with the metro at 41.67. You might want to take a look at the patch (which reminds me that I forgot to include the colls; see the new attachment). The jit.lcd object receives its qmetro bangs at a ramped increment, but then I’m gathering it at a constant rate from jit.matrix @thur 0. Maybe I’m doing something wrong with this setup though.

Thanks.


January 11, 2007 | 3:55 pm

Would it be best to redesign the patch entirely and get rid of my ramps, and clocker? I’m not such a fan of starting over from the ground up, but I can’t think of another way to do this. The processing starts to slow the frame rate coming through the jit.matrix once the qmetro ramps to 10.

Any suggestions?


January 11, 2007 | 4:24 pm

Check out Randy Jones’ rendernode.

On 1/11/07 10:55 AM, "nb23" wrote:

>
> Would it be best to redesign the patch entirely and get rid of my ramps, and
> clocker? I’m not such a fan of starting over from the ground up, but I can’t
> think of another way to do this. The processing starts to slow the frame rate
> coming through the jit.matrix once the qmetro ramps to 10.
>
> Any suggestions?
>
>

Cheers
Gary Lee Nelson
Oberlin College
http://www.timara.oberlin.edu/GaryLeeNelson


January 11, 2007 | 5:30 pm

Thanks Gary. I’m looking it over, and it seems way over my head, but conceptually seems to make sense enough. It might take a while for me to figure out how to integrate my patch into this, but I’ll give it a good try!


January 11, 2007 | 8:30 pm

Let me see if I understand render_node. You pump your jitter stuff into a texture that is sent to a window, and that window is the source that is taken and recorded into a .mov file (and synced with audio if you want)? I’m not as familiar with js, so I’m a little lost in looking under the hood. It seems to me that rendering is a particularly important feature of this recording process.

What I’m wondering about is whether my jit.lcd-centric video is meant for this type of recording situation (rendering), or whether this is geared specifically toward dealing with recording OpenGL.

I might have a lot of fundamental misunderstandings about how this particular recording method works. Any explanation or guidance would be very helpful.


January 11, 2007 | 9:59 pm

I made Render_node mainly for recording OpenGL because there was no
easy way to do that. You could use it to record your jit.lcd patch
by sending jit.lcd’s output to a texture, or now that I think about
it, right to the window should work too.

Render_node takes care of the timing issue you are having in a very
general way by using the nonrealtime DSP driver to implement offline
recording. It should work with your patch.

Or if it’s too daunting, just use a non-realtime rendering loop
instead. replace your clocker by an accum or something, and advance
your time on your own after each frame. It looks like you just have
a couple of line objects, so you can replace these with exprs or
something to calculate the value you want your ramp to have at time t.

best,
Randy

On Jan 11, 2007, at 12:30 PM, nb23 wrote:

>
> Let me see if I understand render_node. You pump your jitter stuff
> into a texture that is sent to a window, and that window is the
> source that is taken and recorded into a .mov file (and synced with
> audio if you want)? I’m not as familiar with js, so I’m a little
> lost in looking under the hood. It seems to me that rendering is a
> particularly important feature of this recording process.
>
> What I’m wondering about is whether my jit.lcd-centric video is
> meant for this type of recording situation (rendering), or whether
> this is geared specifically toward dealing with recording OpenGL.
>
> I might have a lot of fundamental misunderstandings about how this
> particular recording method works. Any explanation or guidance
> would be very helpful.
>


January 11, 2007 | 10:14 pm

Randy,

Thanks for your reply. I was literally just seconds away from sending you an email asking you the questions you just answered. I appreciate the response. I’ll look into replacing the lines with expr and the clocker with accum. Those were my main hangups.

If I were to plug my pacth into the rn window, would it be best to drop that into the test_pattern patch or into the render_node patch? I guess it doesn’t matter, as long as it goes to the right place.

Thanks again. I’ll post what method ended up working best.


January 11, 2007 | 11:28 pm

You want to open your own patch instead of test_pattern. Then change
your patch to draw to the rn window. That should do it. If you also
change your master clocker guy to use the grn_worldtime variable, you
should be able to do cool stuff like scrub around in your patch using
render_node’s GUI.

best,
Randy

On Jan 11, 2007, at 2:14 PM, nb23 wrote:

>
> Randy,
>
> Thanks for your reply. I was literally just seconds away from
> sending you an email asking you the questions you just answered. I
> appreciate the response. I’ll look into replacing the lines with
> expr and the clocker with accum. Those were my main hangups.
>
> If I were to plug my pacth into the rn window, would it be best to
> drop that into the test_pattern patch or into the render_node
> patch? I guess it doesn’t matter, as long as it goes to the right
> place.
>
> Thanks again. I’ll post what method ended up working best.
>
>
>


January 18, 2007 | 7:25 pm

For the meantime, I ended up using Evan Raskob’s recording loop and replacing clocker with a counter, then replacing line objects with scale objects. It’s probably a little convoluted (and I’m sure there’s a simpler way), but it did give me the results I hoped for. Randy, I’ll also try render_node soon and let you know how it goes.

Here’s the patch, and it works like a charm (the colls are attached earlier in the thread. Also, do people prefer to have the patch pasted in the text or attached?):

#P button 475 41 35 0;
#P window setfont "Sans Serif" 10.;
#P window linecount 1;
#P comment 456 405 68 196618 evan.raskob;
#P comment 456 424 129 196618 http://lowfrequency.org;
#P window setfont "Sans Serif" 9.;
#P newex 174 387 106 196617 bgcolor 200 200 200;
#N vpatcher 452 141 1199 830;
#P window setfont "Sans Serif" 9.;
#P number 566 406 103 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 535 196 14 196617 1;
#P message 434 218 14 196617 0;
#P number 203 568 103 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 516 196 14 196617 0;
#P outlet 516 218 15 0;
#P number 408 511 86 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 193 511 86 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 338 196 14 196617 2;
#P newex 17 629 111 196617 jit.lcd 4 char 720 480;
#B color 15;
#P message 153 602 33 196617 clear;
#P message 27 602 123 196617 clear , brgb 255 255 255;
#N vpatcher 700 193 1247 722;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 335 326 23 196617 abs;
#P newex 227 326 23 196617 abs;
#P newex 119 326 23 196617 abs;
#P newex 12 329 23 196617 abs;
#P toggle 143 38 15 0;
#P window linecount 0;
#P newex 143 61 52 196617 metro 10;
#P window linecount 1;
#P newex 432 380 23 196617 abs;
#P button 124 61 15 0;
#P newex 432 359 27 196617 -;
#P newex 398 135 27 196617 + 1;
#P newex 298 135 27 196617 + 1;
#P newex 198 135 27 196617 + 1;
#P newex 105 135 27 196617 + 1;
#P message 47 113 29 196617 clear;
#P inlet 443 288 35 0;
#P outlet 12 470 28 0;
#P inlet 105 61 15 0;
#P newex 119 303 99 196617 scale 0 1220 0 720;
#P newex 335 303 99 196617 scale 0 1220 0 480;
#P newex 227 303 99 196617 scale 0 1220 0 480;
#P newex 318 277 27 196617 +;
#P newex 119 252 72 196617 switch 4;
#P newex 335 252 67 196617 switch 4;
#P newex 227 252 67 196617 switch 4;
#P newex 434 206 93 196617 scale 0 610 610 0;
#P message 447 113 33 196617 clear;
#P newex 398 113 40 196617 urn 26;
#N coll fibnumbers4;
#P newobj 398 163 85 196617 coll fibnumbers4;
#P newex 334 206 93 196617 scale 0 610 610 0;
#P message 347 113 33 196617 clear;
#P newex 298 113 40 196617 urn 26;
#N coll fibnumbers3;
#P newobj 298 163 85 196617 coll fibnumbers3;
#P newex 234 206 93 196617 scale 0 610 610 0;
#P message 247 113 33 196617 clear;
#P newex 198 113 40 196617 urn 26;
#N coll fibnumbers2;
#P newobj 198 162 85 196617 coll fibnumbers2;
#N coll fibnumbers1;
#P newobj 105 162 85 196617 coll fibnumbers1;
#P newex 105 113 40 196617 urn 26;
#P message 150 113 33 196617 clear;
#P newex 133 206 93 196617 scale 0 610 610 0;
#P newex 12 252 67 196617 switch 4;
#P newex 12 113 34 196617 urn 3;
#P newex 12 135 27 196617 + 1;
#P newex 105 84 76 196617 t b b b b b;
#P newex 102 279 27 196617 +;
#P newex 12 303 99 196617 scale 0 1220 0 720;
#P newex 12 420 431 196617 pack 0 0 0 0 0 0;
#P message 12 444 216 196617 frameroundrect $1 $2 $3 $4 $6 $6 $5 $5 $5;
#B color 13;
#P window linecount 0;
#P newex 432 401 34 196617 / 10.;
#P connect 35 0 7 0;
#P fasten 5 4 7 0 174 104 17 104;
#P connect 7 0 6 0;
#P connect 6 0 8 0;
#P connect 8 0 3 0;
#P connect 3 0 45 0;
#P connect 45 0 2 0;
#P connect 2 0 1 0;
#P connect 1 0 33 0;
#P connect 12 0 8 1;
#P lcolor 7;
#P connect 9 0 8 2;
#P connect 7 1 35 0;
#P connect 13 0 8 3;
#P lcolor 7;
#P connect 16 0 8 4;
#P connect 47 0 2 1;
#P fasten 8 0 4 0 17 274 107 274;
#P connect 32 0 5 0;
#P fasten 41 0 5 0 129 81 110 81;
#P fasten 43 0 5 0 148 81 110 81;
#P connect 10 0 11 0;
#P fasten 5 0 11 0 110 110 110 110;
#P connect 11 0 36 0;
#P connect 36 0 12 0;
#P fasten 6 0 27 0 17 239 124 239;
#P connect 27 0 4 1;
#P fasten 4 0 31 0 107 299 124 299;
#P connect 31 0 46 0;
#P connect 12 0 9 0;
#P lcolor 7;
#P connect 16 0 27 1;
#P connect 44 0 43 0;
#P connect 12 0 27 2;
#P lcolor 7;
#P connect 11 1 10 0;
#P connect 9 0 27 3;
#P connect 13 0 27 4;
#P lcolor 7;
#P connect 46 0 2 2;
#P connect 15 0 14 0;
#P fasten 5 1 14 0 126 110 203 110;
#P connect 14 0 37 0;
#P connect 37 0 13 0;
#P fasten 6 0 25 0 17 239 232 239;
#P connect 25 0 29 0;
#P connect 29 0 47 0;
#P connect 13 0 16 0;
#P lcolor 7;
#P connect 17 0 25 1;
#P lcolor 7;
#P connect 14 1 15 0;
#P connect 20 0 25 2;
#P connect 48 0 2 3;
#P connect 21 0 25 3;
#P lcolor 7;
#P connect 24 0 25 4;
#P connect 19 0 18 0;
#P fasten 5 2 18 0 142 110 303 110;
#P connect 18 0 38 0;
#P connect 38 0 17 0;
#P fasten 25 0 28 0 232 273 323 273;
#P connect 17 0 20 0;
#P lcolor 7;
#P fasten 6 0 26 0 17 239 340 239;
#P connect 26 0 28 1;
#P fasten 28 0 30 0 323 299 340 299;
#P connect 30 0 48 0;
#P connect 18 1 19 0;
#P connect 34 0 2 4;
#P connect 24 0 26 1;
#P connect 17 0 26 2;
#P lcolor 7;
#P connect 20 0 26 3;
#P connect 21 0 26 4;
#P lcolor 7;
#P connect 23 0 22 0;
#P fasten 5 3 22 0 158 110 403 110;
#P connect 22 0 39 0;
#P connect 39 0 21 0;
#P connect 29 0 40 0;
#P lcolor 10;
#P connect 40 0 42 0;
#P connect 42 0 0 0;
#P connect 0 0 2 5;
#P connect 21 0 24 0;
#P lcolor 7;
#P connect 22 1 23 0;
#P connect 3 0 40 1;
#P lcolor 10;
#P pop;
#P newobj 32 560 158 196617 p fibrect;
#P outlet 17 654 15 0;
#P number 318 511 86 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 318 486 64 196617 random 254;
#P newex 318 464 29 196617 gate;
#P message 322 196 14 196617 1;
#P number 566 366 103 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 408 486 129 196617 scale 11303 14903 0 255;
#P newex 193 486 117 196617 scale 0 10034 250 100;
#P inlet 75 51 15 0;
#P inlet 17 51 15 0;
#P newex 516 174 96 196617 split 16175 16176;
#P newex 322 174 96 196617 split 10034 10035;
#P newex 112 305 47 196617 gate 2 2;
#P newex 243 276 40 196617 change;
#P newex 243 254 21 196617 t 1;
#P newex 149 370 32 196617 sel 1;
#P newex 149 347 40 196617 change;
#P message 94 194 14 196617 1;
#P number 43 448 59 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter;
#X flags 0 0;
#P newobj 43 424 66 196617 counter;
#P message 75 194 14 196617 0;
#P newex 47 370 32 196617 sel 0;
#N counter;
#X flags 0 0;
#P newobj 47 347 66 196617 counter;
#P newex 112 399 40 196617 t b b b;
#P newex 193 188 40 196617 change;
#P number 208 326 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 161 305 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 177 262 14 196617 0;
#P newex 193 232 60 196617 split 559 0;
#P newex 149 326 54 196617 >=;
#N counter;
#X flags 0 0;
#P newobj 149 282 66 196617 counter;
#P number 206 210 107 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 193 166 105 196617 scale 0 10034 559 0;
#N counter 16175;
#X flags 0 0;
#P newobj 193 100 77 196617 counter 16175;
#P number 249 122 107 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 414 144 72 196617 split 0 10034;
#P button 75 149 38 0;
#P comment 83 115 36 196617 reset;
#P message 112 194 14 196617 2;
#P newex 408 196 96 196617 split 11303 14903;
#P newex 17 73 41 196617 t b b b b;
#P newex 95 51 46 196617 metro 2;
#P toggle 95 28 15 0;
#P newex 575 330 82 196617 / 41.666668;
#P number 565 288 103 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 193 122 27 196617 t i i;
#P newex 180 537 53 196617 switch 3;
#P message 417 218 14 196617 3;
#P message 148 516 26 196617 250;
#P connect 39 0 8 0;
#P fasten 7 0 8 0 100 70 22 70;
#P connect 8 0 52 0;
#P fasten 51 0 52 0 158 621 22 621;
#P fasten 50 0 52 0 32 621 22 621;
#P fasten 49 0 52 0 37 590 22 590;
#P connect 52 0 48 0;
#P connect 12 0 50 0;
#P lcolor 1;
#P fasten 25 0 49 0 117 554 37 554;
#P connect 25 0 29 0;
#P connect 29 0 30 0;
#P connect 8 3 26 0;
#P connect 26 0 27 0;
#P connect 31 0 29 2;
#P lcolor 1;
#P fasten 40 0 12 0 80 68;
#P connect 12 0 28 0;
#P connect 28 0 26 2;
#P lcolor 1;
#P connect 12 0 31 0;
#P connect 6 0 7 0;
#P connect 12 0 10 0;
#P fasten 35 0 36 0 248 301 117 301;
#P connect 10 0 36 0;
#P lcolor 1;
#P fasten 27 0 25 0 52 393 117 393;
#P connect 33 0 25 0;
#P connect 36 0 25 0;
#P connect 12 0 0 0;
#P lcolor 1;
#P fasten 8 1 18 0 32 99 154 99;
#P connect 18 0 36 1;
#P connect 36 1 19 0;
#P connect 19 0 32 0;
#P connect 32 0 33 0;
#P connect 18 0 22 0;
#P connect 28 0 21 0;
#P lcolor 1;
#P fasten 25 2 21 0 147 420 219 420 219 259 182 259;
#P connect 21 0 18 2;
#P connect 1 0 2 0;
#P lcolor 6;
#P connect 53 0 2 0;
#P lcolor 6;
#P connect 31 0 2 0;
#P lcolor 6;
#P connect 60 0 2 0;
#P connect 2 0 49 1;
#P connect 0 0 49 1;
#P fasten 8 2 15 0 42 95 198 95;
#P connect 15 0 3 0;
#P fasten 3 1 16 0 215 144 198 144;
#P connect 16 0 24 0;
#P connect 24 0 20 0;
#P connect 20 0 19 1;
#P connect 13 0 41 0;
#P connect 41 0 54 0;
#P connect 41 0 2 1;
#P connect 2 0 58 0;
#P connect 24 0 17 0;
#P connect 20 0 23 0;
#P connect 46 0 2 2;
#P connect 42 0 2 3;
#P connect 28 0 15 2;
#P lcolor 1;
#P connect 20 1 34 0;
#P connect 28 0 35 0;
#P lcolor 1;
#P connect 34 0 35 0;
#P fasten 15 0 14 0 198 119 254 119;
#P connect 28 0 45 0;
#P lcolor 1;
#P fasten 44 0 45 0 327 460 323 460;
#P lcolor 10;
#P connect 59 0 45 0;
#P connect 45 0 46 0;
#P connect 46 0 47 0;
#P fasten 13 1 37 0 481 167 327 167;
#P connect 37 0 44 0;
#P fasten 25 1 45 1 132 440 342 440;
#P connect 37 0 53 0;
#P connect 37 1 9 0;
#P connect 9 0 42 0;
#P connect 42 0 55 0;
#P fasten 3 0 13 0 198 141 419 141;
#P connect 9 0 1 0;
#P connect 9 0 59 0;
#P fasten 13 1 38 0 481 167 521 167;
#P connect 38 0 57 0;
#P connect 57 0 56 0;
#P connect 38 0 60 0;
#P connect 5 0 43 0;
#P connect 4 0 5 0;
#P pop;
#P newobj 377 82 108 196617 p some-jitter-stuff;
#P newex 377 46 87 196617 r recording-clock;
#P newex 270 211 72 196617 r resumeBang;
#P newex 214 212 50 196617 loadbang;
#P flonum 194 152 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 192 211 15 0;
#P newex 132 176 108 196617 qmetro 41.666668;
#P newex 132 213 50 196617 onebang;
#P user jit.fpsgui 235 263 60 196617 0;
#P newex 132 263 87 196617 s recording-clock;
#P toggle 132 120 36 0;
#P newex 377 167 20 196617 t b;
#P newex 377 143 166 196617 jit.qt.record 720 480 @realtime 0;
#P newex 377 111 177 196617 jit.matrix something 4 char 720 480;
#P window setfont "Sans Serif" 10.;
#P window linecount 3;
#P comment 98 36 233 196618 using a gate to guarantee events happening before frame is finished being rendered and recorded;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 475 22 63 196617 reset button;
#P message 246 109 72 196617 write 24 jpeg;
#P connect 9 0 7 0;
#P fasten 9 0 8 0 137 248 240 248;
#P connect 20 0 16 1;
#P connect 4 0 5 0;
#P connect 0 0 4 0;
#P connect 3 0 4 0;
#P connect 16 0 3 0;
#P connect 15 0 16 0;
#P connect 12 0 10 1;
#P fasten 14 0 9 1 275 233 186 233 186 204 177 204;
#P fasten 13 0 9 1 219 233 186 233 186 204 177 204;
#P fasten 11 0 9 1 197 233 186 233 186 203 177 203;
#P fasten 5 0 9 1 382 203 177 203;
#P connect 10 0 9 0;
#P connect 6 0 10 0;
#P fasten 16 1 6 0 480 104 137 104;
#P window clipboard copycount 21;


Viewing 11 posts - 1 through 11 (of 11 total)