Forums > Jitter

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


Ad.
September 10, 2011 | 2:17 pm

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.


September 10, 2011 | 3:44 pm

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



Ad.
September 10, 2011 | 7:10 pm

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



Ad.
September 11, 2011 | 1:51 pm

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. –


Ad.
September 12, 2011 | 3:51 pm

nobody ?

– Pasted Max Patch, click to expand. –

September 12, 2011 | 6:04 pm

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. –


Ad.
September 12, 2011 | 8:09 pm

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


September 14, 2011 | 10:06 pm

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. –

October 1, 2012 | 2:31 pm

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
}

}


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