play movie at normal rate but with jump attribute (not "rate 1")

Sep 10, 2011 at 2:17pm

play movie at normal rate but with jump attribute (not "rate 1")

Hi all.
stupid issue with frame rate of qt.movie:

I would like to use the jump message to make a stop-motion effect, but I would like the movie to be played at the “as if I pushed rate 1 button” rate…

Is there a simple way to that, with x jump frames, I I have to feed my movie with y pulse per seconds…

I try with 3 jumped frames, the metro has to be set between 116 and 117, but still not really in rate 1. And it has to be precise, because I play some sfplay~file in sync with movies…

thank you.

#58804
Sep 10, 2011 at 3:44pm

Hello Ad,
is it absolutelly necessary to use the “jump” message? When you read the file with [jit.qt.movie] and send the message play, it starts playing the movie with rate 1. The [metro] used to feed the bangs to the [jit.qt.movie] does not affect the rate of the movie. So if you know the fps of the file you are playing, you could calculate the time that passes between 2-3..or any frames you like. So you can set that [metro] or [qmetro] to that time for the bangs period, to achieve the desired effect without changing the rate.
for example if you have a 25fps movie, the frame period id 1/25 witch is 40ms. if you change that to 120..(40*3) you get one frame for every three! with 160ms one for every four etc etc..
Nikolas

#211377
Sep 10, 2011 at 7:10pm

thx for your response !
Using jump gives me the possibilty to modify the speed of the movie without any drops. (When I use rate, it’s really less efficient…
The idea would be to stay with autostart 0, and to control the rate of the movie qith frame $1 or jump $1
I don’t know if I’m very clear…

ad

#211378
Sep 11, 2011 at 1:51pm

please help… still don’t understand…
it’s become quite an emergency… :)

thank you in advance.

For 30 seconds of video (Pro res 422 HQ), the movie is more than one second late. loadram doesn’t change anything.
Here’s my little simple patch:

– Pasted Max Patch, click to expand. –
#211379
Sep 12, 2011 at 3:51pm

nobody ?

– Pasted Max Patch, click to expand. –
#211380
Sep 12, 2011 at 6:04pm

Calculate the ratio of the movie’s framerate to your desired (stopframe) framerate. Use that value to calculate the metro interval. Then move ahead the desired number of frames with each bang of the metro. In order to avoid any errors caused by using int instead of float, I’d suggest calculating and storing the current frame number as a float (outside of the jit.qt.movie object) and then using a ‘frame’ message to jit.qt.movie, rather than relying on the ‘jump’ message, which can only jump in whole-frame increments.

– Pasted Max Patch, click to expand. –
#211381
Sep 12, 2011 at 8:09pm

Thx you for your response ! but still the same issue of timing…the movie is not played in its real rate…(rate 1)… maybe it’s a qt.movie limit………

still working on it
`thx,
ad

#211382
Sep 14, 2011 at 10:06pm

Sounds like what you are looking for is a way to occasionally sync the jit.qt.movie to the sfplay~ object. You can use the optional file-position outputs to find what the current frame should be and adjust accordingly. You could also just drive this constantly if you want really tight sync.

– Pasted Max Patch, click to expand. –
#211383
Oct 1, 2012 at 2:31pm

Hey Ad,
This was my idea for a stop motion effect. Plug this into the jit.qt.record object and see what happens

{
“boxes” : [ {
"box" : {
"maxclass" : "message",
"text" : "100",
"outlettype" : [ "" ],
“fontsize” : 12.0,
“numinlets” : 2,
“patching_rect” : [ 280.0, 43.0, 32.5, 18.0 ],
“numoutlets” : 1,
“id” : “obj-6″,
“fontname” : “Arial”
}

}
, {
“box” : {
“maxclass” : “newobj”,
“text” : “+ 10″,
“outlettype” : [ "int" ],
“fontsize” : 12.0,
“numinlets” : 2,
“patching_rect” : [ 236.0, 177.0, 34.0, 20.0 ],
“numoutlets” : 1,
“id” : “obj-3″,
“fontname” : “Arial”
}

}
, {
“box” : {
“maxclass” : “newobj”,
“text” : “f”,
“outlettype” : [ "float" ],
“fontsize” : 12.0,
“numinlets” : 2,
“patching_rect” : [ 236.0, 144.0, 32.5, 20.0 ],
“numoutlets” : 1,
“id” : “obj-1″,
“fontname” : “Arial”
}

}
, {
“box” : {
“maxclass” : “message”,
“text” : “1921″,
“linecount” : 2,
“outlettype” : [ "" ],
“fontsize” : 12.0,
“numinlets” : 2,
“patching_rect” : [ 152.5, 171.0, 32.5, 32.0 ],
“numoutlets” : 1,
“id” : “obj-24″,
“fontname” : “Arial”
}

}
, {
“box” : {
“maxclass” : “number”,
“outlettype” : [ "int", "bang" ],
“fontsize” : 12.0,
“numinlets” : 1,
“patching_rect” : [ 152.5, 211.0, 50.0, 20.0 ],
“numoutlets” : 2,
“id” : “obj-22″,
“fontname” : “Arial”,
“parameter_enable” : 0
}

}
, {
“box” : {
“maxclass” : “number”,
“outlettype” : [ "int", "bang" ],
“fontsize” : 12.0,
“numinlets” : 1,
“patching_rect” : [ 176.0, 83.0, 50.0, 20.0 ],
“numoutlets” : 2,
“id” : “obj-20″,
“fontname” : “Arial”,
“parameter_enable” : 0
}

}
, {
“box” : {
“maxclass” : “toggle”,
“outlettype” : [ "int" ],
“numinlets” : 1,
“patching_rect” : [ 130.0, 64.0, 20.0, 20.0 ],
“numoutlets” : 1,
“id” : “obj-18″,
“parameter_enable” : 0
}

}
, {
“box” : {
“maxclass” : “button”,
“outlettype” : [ "bang" ],
“numinlets” : 1,
“patching_rect” : [ 152.5, 144.0, 20.0, 20.0 ],
“numoutlets” : 1,
“id” : “obj-7″
}

}
, {
“box” : {
“maxclass” : “newobj”,
“text” : “metro 400″,
“outlettype” : [ "bang" ],
“fontsize” : 12.0,
“numinlets” : 2,
“patching_rect” : [ 130.0, 112.0, 65.0, 20.0 ],
“numoutlets” : 1,
“id” : “obj-5″,
“fontname” : “Arial”
}

}
, {
“box” : {
“maxclass” : “message”,
“text” : “frame $1, bang”,
“outlettype” : [ "" ],
“fontsize” : 13.0,
“numinlets” : 2,
“patching_rect” : [ 152.5, 243.0, 101.0, 19.0 ],
“numoutlets” : 1,
“id” : “obj-27″,
“fontname” : “Arial”
}

}
],
“lines” : [ {
"patchline" : {
"source" : [ "obj-7", 0 ],
“destination” : [ "obj-24", 0 ],
“hidden” : 0,
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-6", 0 ],
“destination” : [ "obj-20", 0 ],
“hidden” : 0,
“midpoints” : [ 289.5, 83.0, 237.0, 83.0, 237.0, 48.0, 185.5, 48.0 ],
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-5", 0 ],
“destination” : [ "obj-7", 0 ],
“hidden” : 0,
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-3", 0 ],
“destination” : [ "obj-24", 1 ],
“hidden” : 0,
“midpoints” : [ 245.5, 198.0, 194.0, 198.0, 194.0, 148.0, 175.5, 148.0 ],
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-24", 0 ],
“destination” : [ "obj-22", 0 ],
“hidden” : 0,
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-24", 0 ],
“destination” : [ "obj-1", 0 ],
“hidden” : 0,
“midpoints” : [ 162.0, 203.0, 195.0, 203.0, 195.0, 141.0, 245.5, 141.0 ],
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-22", 0 ],
“destination” : [ "obj-27", 0 ],
“hidden” : 0,
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-20", 0 ],
“destination” : [ "obj-5", 1 ],
“hidden” : 0,
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-18", 0 ],
“destination” : [ "obj-5", 0 ],
“hidden” : 0,
“disabled” : 0
}

}
, {
“patchline” : {
“source” : [ "obj-1", 0 ],
“destination” : [ "obj-3", 0 ],
“hidden” : 0,
“disabled” : 0
}

}
],
“appversion” : {
“major” : 6,
“minor” : 0,
“revision” : 3
}

}

#211384

You must be logged in to reply to this topic.