iMovie and Final Cut Pro X 10.1 part 4

Monday, 25 November 2013

In this series I've written about features in the new version of iMovie that would be interesting to have in the the next version of Final Cut Pro X.

I then summarised evidence that iMovie is primarily a unreleased version of Final Cut Pro X with a user interface that implements the features of iMovie 9. Although the version of Final Cut that iMovie (2013) seems to be based on seems to be newer than the release version, the built-in copy of Motion hasn't been updated, but there's evidence that iMovie themes were created using an internal template development tool codenamed Mica.

The new workflows supported in future versions of iMovie and Final Cut Pro are hinted at in the new version of Final Cut Pro X XML which is defined within iMovie and is referred to inside the new version of Blackmagic Design's DaVinci Resolve application.

More elements hidden inside the new version of iMovie that hint about developments in Final Cut Pro X 10.1.X.

iOS

isiOSClip
isiOSDevice
_iOSPercentageDonePath
_iOSMetadata
scanForiOSDevices

Subtitles

_OBJC_IVAR_$_FFImageBrowserCell._subtitleLayer

Despite having been recently written, Final Cut Pro X 10.0.X hasn't had much support for subtitle importing, desiplay, in-app editing and export. OS X subtitle expert Andreas Kiel told me that that he was asked to join Apple's Pro Apps development team in California. Although he decided not to accept, their offer is a good sign for the future of subtitles and time-based metadata.

Metadata

consolidateGPSMetadata

update_GPSMetadata

This is probably related to supporting and displaying location information in the same way as in Aperture.

XML

In a previous part of this series I listed features in the unreleased version of the Final Cut Pro X XML format. The file that describes what Final Cut elements can be encoded in XML exports and imports is stored in

iMovie.app/Contents/Frameworks/Flexo.framework/Versions/A/Resources/FCPXMLv1_3.dtd

A few days after Apple announced the new version of iMovie, RED updated REDCINE-X, their footage processing app, to version 20.2.0 for OS X and Windows. One of the changes listed in this new build is 

Updated: FCPX XML now compatible with version 1.3.

As well as what can be found in the XML DTD, there is more text within 

iMovie.app/Contents/Frameworks/Flexo.framework/Versions/A/Flexo

...that reveals more about what can be exported and imported as Final Cut Pro X XML.

[FFXMLExporter addOrientationElementForMediaComponent:element:]
[FFXMLImporter setOrientation:toObject:]

Looks like Final Cut Pro will be able to handle the orientation of a clip explicitly. There were 12 mentions of 'orientation' in 10.0.9 (mostly to do with handling standard metadata fields for common video and stills formats), 33 mentions in 10.?.?.

Accessibility

As OS X and iOS evolve, Apple add more and more features for users who use software and hardware tools to operate applications. As well as being good news for those who cannot use their fingers, keyboards, mice and trackpads to control their Apple devices, the same features can be used by those who can use traditional control methods, but would like to control apps using other devices or workflow tools.

[There's an introduction to Accessibility for OS X developers on the Apple site]

In Final Cut Pro X 10.0.9, NSAccessibility attributes include:

_NSAccessibilityActionDescription
_NSAccessibilityButtonRole
_NSAccessibilityCheckBoxRole
_NSAccessibilityColumnRole
_NSAccessibilityShowMenuAction
_NSAccessibilityEnabledAttribute
_NSAccessibilityTopLevelUIElementAttribute
_NSAccessibilityWindowAttribute

They show how accessibility switch or other assistive device can simulate button, checkbox, menu and window clicks. New accessibility attributes hidden in the Final Cut Pro part of iMovie include:

_NSAccessibilityCancelAction
_NSAccessibilityDecrementAction
_NSAccessibilityHorizontalOrientationValue
_NSAccessibilityMaxValueAttribute
_NSAccessibilityMinValueAttribute
_NSAccessibilityOrientationAttribute
_NSAccessibilityProgressIndicatorRole
_NSAccessibilitySliderRole 

['Role' here are related to the OS X accessibility framework, not Final Cut Roles]

The nature of these object methods gives accessibility devices (and possibility workflow and scripting tools) more control over Final Cut plus the ability to get useful values from Final Cut which can be displayed in assistive devices and used by workflow software logic.

_NSAccessibilityCreatedNotification
_NSAccessibilityValueChangedNotification
_NSAccessibilityUIElementDestroyedNotification

These new elements allow Final Cut to 'notify' accessibility apps that user interface objects have been created, that values associated with them have changed and that the UI element is no longer relevant. 'Notification' is used 176 times in 10.0.9, 331 times in 10.?.?

If these attributes do appear in Final Cut Pro X 10.1, external applications such as a remote control app running on an iPad might be able to update their displays to reflect changes in Events, Projects and Libraries.

Word counts

Some words appear  more often in Final Cut Pro 10.X.X than 10.0.9:

  10.0.9 10.X.X
Proxy 276 357
OSC (On-screen controls) 1364 1959
Node 2132 3336
Gamma 65 194
Music 20 567
AudioDuck 2 118

The differences in counts may be to do with the Final Cut Pro X base implementing iMovie(2013)-only features such as automatic ducking (reducing in volume) of some tracks based on the volume of others.

In 10.0.X but not visible

Remember that although I've found all this Final Cut Pro-related content in iMovie, these elements might not appear in Final Cut Pro X 10.1.X.

For example, the code and text associated with flexible window layouts has been in Final Cut since 2011, hasn't appeared in the user interface and remains in 10.?.?:

"Different window layouts can be saved to suit different working environments or styles."
"Name your current layout:"
"Layout already exists. Do you want to replace it?"

"The name '' is an invalid name. Please use a different name"
"Revert to Original Layout" "Cancel" "Tear Off Tab"

"No Layouts Available"

"Save Window Layout"

"Couldn't Save Layout"
"Edit Window Layout"
"Untitled Layout"

[from iMovie.app/Contents/Frameworks/LunaKit.framework/Versions/A/ModuleKit.strings]