PEV05 – Ben Gill on Performance Enhancing Visual Effects


Update: Ben has published a new tutorial that I added at the bottom of his interview.

This interview is part of the larger series about Performance Enhancing Visual Effects. Ben Gill is a filmmaker and designer, author of the split screen tutorial which I attached to the end of the first post about PEVs. Since he represents “the new blood” that comes to the craft of editing, I thought I would ask him a few questions as well. Enjoy.

see more

Creating Thumbnails Has Never Been Easier

One of the byproducts of my work on THAT Studio Panel extension for Premiere Pro and After Effects has been an After Effects script that would generate a massive amount of thumbnails for video files. The initial idea to use it to prepare Panel assets did get scrubbed along the way, and we never got to using it in our automated workflow, but I believe it was too valuable to go to waste. Therefore here it is – name any way that you want to generate frames from your After Effects compositions or video files, and Master Thumbnailer will do that for you.

see more

Adobe Premiere Pro and After Effects Plug-in Development Course on


I’m happy to announce, that this term I’m teaching plug-in development for Adobe Premiere Pro and Adobe After Effects on fxphd. I’ll be covering the basics of C/C++ and Adobe After Effects SDK in a bit more detail, as well as GPU acceleration for Premiere. All these will be illustrated with a simple vignette effect that we are going to create during the course with the students. Believe it or not, any similarities to the very first effect that I wrote are coincidental. see more

Layer Stripper – It’s Not What You Think It Is

CI Layer Stripper

As I’m getting ready for this year’s NAB, I think it’s great time to release a new nifty tool for After Effects – CI Layer Stripper. This script deftly removes all unused layers from your project – the ones that are not visible, and not referenced by other layers as parents, track mattes, or even simple expressions. This will allow you to trim and collect these items in your project which are actually being used.

see more

Finally a Viable After Effects Archive Solution

Trim N Collect

While developing Conform Studio I stumbled upon an application of the CS Extract script which I considered interesting, but did not have enough time to code and test properly. It was only a matter of time when other people attempted to use the Studio in this manner, therefore I even included a note in the manual about it. see more

Simplicity Overdone


I was hoping to bring you something more than my ramblings about the user interface overhaul in the latest Adobe release, but unfortunately it looks like the interview with the User Experience (UX) team will not be forthcoming, despite initial positive reactions. My impatience has caught up with me, and therefore I present you with the reasons for my vocal criticism of the new UI. see more

Move That Anchor!


Being a casual After Effects user I find myself sometimes creating an animation path only to find out that I need to later reposition the anchor point of the layer to add rotation or scale. To my surprise, even with the abundance of AE Scripts on the market, I could not find a simple tool to remedy this problem. So I wrote one myself. see more

Nuke Studio For After Effects


When I first saw the demonstration of Nuke Studio shown on NAB, with each new feature I was thinking: yes, this is exactly as it should be done. This is precisely how Dynamic Link should work from the get go in Adobe applications. Congratulations to The Foundry for making it happen. I wish I could afford your tool :) see more

The Strange Maths of After Effects Timecode

For past few weeks I’ve been developing for That Studio a number of scripts for After Effects which are supposed to make one’s life easier, when dealing with an edit in Premiere that requires handling of more than a couple of VFX shots.

One thing that surprised me is that you can’t access layer’s timecode directly using scripting, even though you can do this using expressions. At first I thought that I can use the Time Remap effect to do this, since its values are supposedly shown as a timecode. But a brief experimentation shows that it’s not the case. Time Remap values are given in seconds from the start of the layer regardless of its timecode. Ouch.

Therefore one has to resort to a brutish hack to obtain the layer’s starting timecode: create a text layer, add an expression that reads the layer.sourceTime value and assigns it to the text, and then read the source text in the script. That’s hardly an elegant solution, and it would be so much better, if the layer.sourceTime was supported not only for expressions.

Perhaps I could live with it, but on top of it there is a nasty bug hidden in AE, and it can bite you rather hard, if you’re not careful.

You might be familiar with the fact that when you precompose a single footage layer, and choose to leave the effects in the main composition, the precomp will have the length of the whole footage file, and will inherit the exact timecode… more or less so.

You might not be aware, that if you are using 23.976 fps frame rate, the timecode might be off by a frame or even two when you attempt to render this layer – which you will notice only if you open the file, because even the render queue will show the correct timecode value. You can mitigate this by manually entering the starting timecode in the composition settings window.

The real problem begins when you are trying to set this timecode via scripting. Let’s say you want the composition to start at 20:20:51:22, which at 23.976 fps translates to 73325.2419085752. When you assign it to the desired composition, the internal AE procedure will truncate it to 73325.2421875, which will result in the timecode which is not frame accurate, and even though it is displayed correctly in the composition, it is incorrectly rendered and written to file. You can check it yourself by running the following script on a selected composition (make sure to first enter 20:20:51:22 into the Start Timecode of the Composition Settings dialog):

c = app.project.activeItem;
a = c.displayStartTime;
c.displayStartTime = a;

Note, that the value changes by the sheer fact of assigning the code to the composition start time. My supposition is that the internal workings of AE convert the double value into a float, thereby reducing the precision at higher values. That’s definitely not nice. Depending on how critical the timecode is for your application, it might rule out automation of certain tasks, and make it more troublesome to render – you have to always manually enter the starting timecode, even if you precompose. I have not found a way to reliably code around this bug.

The conclusion so far is: forget about accurate timecode renders from AE, especially if you are using 23.976. 29.97 or higher fps and do not start from a full second. Lower integer frame rates seem not to be affected so much, as are easy dividers (12 for 24 fps, etc.). Unfortunately, even if this is fixed in the future releases, it still means that you can’t use scripts that rely on this feature for earlier versions of AE.