Simplicity Overdone

simplicity-feature

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 Used 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!

move-anchor-feature

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

SpeedGrade Is Like Photoshop

SpeedGrade Is Photoshop

Quite often I hear from new users that SpeedGrade is not intuitive, difficult, and completely different from any other Adobe application. Curious but unaware people are quickly discouraged by its seemingly complicated and impenetrable interface. In some sense this is true, there are complex and dark places in SpeedGrade frequented only by those few who dare, but with each release, the software is becoming more and more similar to this company’s most famous application – the ubiquitous Photoshop. see more

Long Journey To Subtlety

Metaphors have never been my strong suit. In high school I took two terms of classes dedicated to general film knowledge, which culminated with the analysis of Volker Schlondoff’s “The Voyager“, based on Max Frisch’s novel “Homo Faber”, and then Peter Weir’s “Witness“. I did a decent job at it, but more nuanced aspects eluded me. I still remember my surprise when I learnt that the black sunglasses in “The Voyager” were a very clear analogy of Oedipus’ ripped out eyes.
see more

Nuke Studio For After Effects

conform-studio

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;
alert(a);
c.displayStartTime = a;
alert(c.displayStartTime);

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.

How To Fix Hiero XML Export For Premiere… Sort Of

hiero-fix

Some time ago, if you ever tried to export XML from Hiero to Premiere, you got a generic importer error message and that was it. This issue – audio related – was thankfully fixed in later versions of Hiero. However, another hydra reared its ugly head, and this time attempted XML interchange resulted in something along these lines: see more