|
Output Frame RateI was wondering if there was a way to output the frame rate of a composition, such as to another computer or device via OSC. When I pull up the fps patch, there are only inputs and no outs. Is there a way to get the fps number into some sort of output? |
You could implement your own equivalent of the
FPS
patch by, for example, feedingPatch Time
into a JavaScript patch, and examining the delta between the current Patch Time and the previous frame's Patch Time. (And then optionally perform smoothing, so you get an average framerate, rather than instantaneous framerate, if you want less jitter.)I have a related question; what's more accurate, the FPS patch, or the FPS counter on the Viewer? I've always taken it that the FPS counter on the Viewer is more accurate, but I've had people express opposing opinion on that. It seems that the FPS patch has to be delivering old(ish) info, and that if it's having to compute/evaluate, it must not be giving as accurate info as the FPS on the viewer. The main utility of it seems to be when one is viewing the composition loaded by something other than QC, yay or nay?
Accuracy is in the eye of the beholder. Each of those FPS meters you mention measures something different. (I've not personally reverse-engineered them to figure out what they're measuring, though.) Both affect the result they're trying to measure (cf. Heisenberg).
First precisely define what you want to measure. Then develop a way to measure it.
Interesting take... things of opinion are in the eye of the beholder, and I'm not sure whether something is accurate of not is one of them. This is akin to the definition of "stable".
What I want to measure is frames rendered per second (I didn't think this needed to be defined, it seems evident from my question). I don't think I need to develop a way to measure this, there are two existing currently. I'll go ahead and take the time to wade through the machine code some time soon. I was asking because I thought you may have taken a look already. It seems likely from that the FPS patch is relying on some "hacks" to get data, and results are likely to be confounded by the poor Editor.
Great, so it sounds like there is a way to do it.
I am not the best at implementing JavaScript in Quartz yet, is there an example or perhaps another way to do it via visual patches?
The reason for this whole question being posed is so I can monitor FPS on the computer while using a touch interface away from the screen
Great, so it sounds like there is a way to do it.
I am not the best at implementing JavaScript in Quartz yet, is there an example or perhaps another way to do it via visual patches?
The reason for this whole question being posed is so I can monitor FPS on the computer while using a touch interface away from the screen
Here is a composition that does it by working out the difference in time between when the current frame rendered and the last frame rendered. As this will vary it adds this value into a queue and takes the average of the last x frames.
I actually did it two ways, one storing the time the frame rendered in the queue and one storing the time between frames in the queue which doesn't work - for some reason every second value in the queue is 0, does anyone know why?
Mine's same as jrs's except I smoothed the output. Tried to do it with patches once and got a roadblock so settled for JS which maybe adds a few ms to the frame-rate. I guess it's up to you to decide if max/min interval over what period is more what you want which requires slightly different calculations.
You guys are awesome!!
It works great, I'll be testing it tonight over OSC to an iPad to keep tabs on the FPS.
Thank you all very much!
Is there any reason why these might be crashing now? I've used them for a while and a new build won't run them very well. Something with the JS side of things, deprecation?