Why is it so hard to convert FCP 7 XML to FCP X XML?

I was a little shocked to find people posting on Twitter and Facebook that they had tried to import Final Cut Pro 7 XML into Final Cut Pro X with the new “import XML”. That would be like opening a Word document and complaining that it didn’t translate from Spanish to English while opening the file.

By itself, XML tells you nothing. It is a generic term that tells you as much about the content as having a “Text” document tells you about the content. As I wrote four years ago for KenStone.net XML stands for eXtensible Markup Language.  You may be familiar with another markup language: HTML, or HyperText Markup Language.  In HTML only the WC3 consortium can add new tags because it is not extensible. On the other hand XML is “extensible”, meaning  anyone can extend it to mean whatever they want it to mean.

And that’s true for every type of XML.  In the case of XML for editing applications, the XML represents the underlying data structures from the application. So, we have:

  • Final Cut Pro 7 XML known as xmeml
  • Final Cut Pro X XML known as fcpxml
  • Motion Project XML files are ozxmlscene
  • Premiere Pro file is XML in the PremiereData format.

Each one is XML, and there is zero compatibility between them.  The design of data in an XML file is called a “schema” and every variation of XML is a different schema. More on schema at Wikipedia. The best way to think of the generic thing that is XML is that it is like an alphabet: one that can display French, English, German, Spanish and a whole bunch of other languages that use that alphabet.

So the first takeaway is that every format of XML is different and incompatible. So we need to stop thinking of “XML” as having any more meaning than saying “QuickTime” without specifying the codec(s): neither has any useful meaning without the further detail.

So that brings us to the specifics of translating xmeml to fcpxml (FCP 7 to X respectively) or going from fcpxml to xmeml.  Jon Chappell did a great job of explaining the differences in his blog post, but the important point is that the XML must relate to the data structures that it is trying to represent.

So when we come to going from Final Cut Pro X to FCP 7 we are immediately struck with the fact that FCP X has Events (media) and Projects (timelines), each with its own XML file, while FCP 7 puts them all together in one XML file. Because FCP X and FCP 7 are so different it will be impossible to ever do a truly perfect translation, just as all other inter-NLE transfers lack full fidelity. Import FCP 7 XML to Premiere Pro and say goodbye to most of you metadata (all Master Comments are lost, in fact all but scene, shot, take and description are lost). Also say goodbye to all your tiles and expect only imperfect mapping of filters and transitions.

And that is between applications that are fundamentally the same (having both come, originally, from the mind of Randy Ubillos). Final Cut Pro 7 and Final Cut Pro X  are fundamentally different in ways both visible and not.

FCP 7 counts all time measures in frames; FCP X counts time as rational seconds.

FCP 7 rounds frame rates to 3 decimal places; FCP X uses rational time so frame rates will be accurate, not approximate.

FCP 7 has tracks with time down the track as the only deliminator: FCP works with relationships between connected clips and story lines.

FCP 7 Title are a mix of FXscript and proprietary Boris Calligraphy formats (hidden in the metadata); FCP X titles are Motion 5 templates with rigs published to FCP X.

FCP 7 uses bins for media organization (and subclips); FCP X works with metadata (keywords) for media organization.

The way the media file information is stored in the XML is very different.

There is no common dictionary between the two versions of XML. There’s much more difference than say between English and Spanish, in the vocabulary.

The entire structure of the XML is much simpler and, at first blush fcpxml seems to miss a lot of necessary information, which isn’t really needed.

And so on. This is just a quick list of the differences off the top of my head. Translating is difficult!

We had a lot of difficulty translating fcpxml to xmeml – trust me, Project X₂7 was not created in the two days from FCP X 10.0.1’s release to the announcement Wednesday night.  And we’ve got the easy conversion. Going from FCP 7 to FCP X seems to be much more difficult. For example, all FCP X title text is visible in plain text, so we can insert that to an Outline Text Generator in FCP 7. Not so anything in FCP 7 that uses Title 3D, Vector, Crawl or Random. They are hidden in the xmeml XML as a “private data block” only Boris knows. So any of those titles cannot give you more than what Premiere Pro conversion does: there’s a title there but we have no idea what was in it.

Effect filters cannot be translated either way because the effect architectures are just so different. FCP 7 applies filters directly to clips; FCP X’s filters are applied in Motion templates and published to FCP X. There’s no way to reproduce that in a translation.

Another way of thinking about why translation might be difficult is when translating between two languages where the culture is very different. I recall, during the year I spent in Japan as an exchange student, trying to make a pun in Japanese. This fell completely flat because the pictographic basis to their language makes the concept of a pun impossible.*

Similarly, the very difference between the “culture” that is FCP 7 and the “culture” that is FCP X means that there are untranslatable bits.

Going from Final Cut Pro X to Final Cut Pro 7 has been a total pain and we’re still only at about a 65% fidelity, by which I mean we bring in the basic edit, including connected clips, markers, todos, etc. Going the other way should be even more problematic and I wish whoever’s working on it “good luck” because they’ll need it.

* I am told that a pun in Japanese is not impossible. Apparently my language skills never got good enough, or it was just a really bad pun!

19 thoughts on “Why is it so hard to convert FCP 7 XML to FCP X XML?”

  1. Since FCP is not, presumably, built for programmers and techies, this confusion goes on the shouldersnof the app designers, not the users.

    1. The app designers have made it abundantly clear that you cannot go between them with “perfect fidelity”. Read Richard Townhilll in Post magazine online this week.

  2. I would be happy to export the quicktime files created from the ‘log & capture’ from 7 to X. Come to think of it I guess we could just do that from 7’s Autosave folder? Has anybody tried that? The reason I asked our TV studio record to DVCAM or miniDV and need a way to export to X. Is this a way to do it? And after we edited in X, we could use this new tool to export back to 7 for a ‘print to tape’. Maybe I’m just dreaming.

    1. Importing files captured with FCP 7 log and capture into FCP X is trivial and yes Project X27 would let you go back to tape out of FCP X, but I think we gain that next year with broadcast video output direct from FCP X – when they release the next version.

    2. Huh?? Overthink things much?

      Why would you want to go to all that superfluous, pointless trouble if you can simply import DIRECTLY into X (hello? DV??) then simply master out the clip in the end and print THAT from the 7 timeline??

  3. 1) Excellent definition of the differences in XML
    2) Correct me if I’m wrong, but round-tripping between Motion and FCP was accomplished through XML, so there must be some translation possible. It was possible to edit motion template files in XMEML, so perhaps it’s possible in FCPXML?
    3) I’m happy to see UUID gone, unless I simply haven’t found it yet. There was a lot of code in XMEML that I found to be superfluous.
    4) Although I can understand why, from a code standpoint, application of filters does not translate, as a practical issue, this is a major problem for editors with legacy projects. Regardless of the technical reasons, Rich H. and Walter B. seem to have been right. For legacy projects alone, it seems Apple is forcing you to keep old computers and operating systems around if you need to update an old project.

  4. 2) Round tripping between FCP and Motion was achieved with a Motion QuickTime component that converted the Motion XML (project) format to a QT movie that FCP read. So xmeml was not involved directly. Motion XML is yet another format the specific detail I forget.

    3) UUID is very much used internally to the app. But yes FCPXML is a lot more sparse (a little too sparce as it currently doesn’t support audio levels!)

    4) I should point out that the Premiere Pro import that Rich and Walter are cheering on is also very sparce on effect support. Only a subset are supported. Effects in FCP X are just not possible. And right now even audio levels wouldn’t come across.

    As for legacy projects, Apple made sure FCS 3 would work on LIon, which takes it well into the future.

  5. 3) I’m sure the audio XML access must be coming “soon”. It’s simply a matter of them allowing access to the XML tag for audio levels, correct?
    4) So what’s the fuss about? I’m confused. Sounds like it sucks no matter the workflow.

  6. Agreed on the audio levels coming, but that will likely need to wait until the next official release early 2012.

    The “fuss” is about spinning something as negatively as you can so I take task with people (like Walter Biscardi) who criticizes Apple for pretty much what he praises Adobe for.

    And yes, moving from one NLE to another is always going to end up with more work than staying with the one.

    1. Your right about WB. I’ve just read his latest rant on Creative Cow. If he wants to be taken seriously, then he should stop talking out of his nether regions. Seriously, nobody should take this man seriously.

  7. Maybe I just have low standards but I would be more than happy w/a FCP 7 to 10 project conversion tool that would just get all my media in the right place on the timeline. Filters, text, transitions, even reframing of shots I wouldn’t expect to come over ‘cleanly’ and I’m okay with that. I’ll happily redo the ‘finishing touches’ if all my editorial decisions make it over in one piece.

  8. I totally agree – just a cuts-only import would be awesome! I just finished a project last week in FCP X and now have to go back to FCP 7 to finish one I started last summer. I’m surprised how much I’m wishing I was back in X! I’ve thought about recutting the whole project in X but it’s over 500 edits now so will slog it out in 7. But if I could have a cuts-only import into X I would gladly do it and add the titles and effects back in manually. 🙂

    1. You can go Cuts only FCP 7 to FCP X via CatDV’s current release. It’s kind of expensive if that’s all you need, but you get the bonus of a really good digital asset management tool thrown in. 🙂

  9. The thing is that Apple was in a perfect position to translate – of course there won’t be perfect fidelity, especially when you’re on the outside looking in. But Apple knows what the Boris data means, and if they were unsure, I believe they were in a perfect position to ask Boris.

    However, that’s beside the point. Most people used built in plugins and, once again, Apple was in a perfect position to translate the PURPOSE of the filter. For instance, Apple knew exactly what the numbers for the 3 Way color corrector mean and how to represent them in the new Color Board. This is just one example, but flip/flop, etc – some newer FxPlug plugins like Bad TV, etc, are directly translatable.

    I think what people are angered about is the mercenary attitude Apple displayed. It seemed they were saying – this will only piss off a small number of our past users, translation – even an imperfect one – is not worth our effort.

    1. Patrick, I respectfully disagree. I think Apple does care, but there is a point which the software has to reach before even a reasonably translation could be done. For example, if there was a translator right now, no filter settings would come through, no color settings, no audio levels, no transition setting – these are not supported in the current FCPXML so no amount of good will can make those things work until they’re supported in the XML. Like with FCP 7 and earlier, the XML grew and matured over time and I expect the same with FCP X XML.

  10. And yet, Apple had years while they were developing FCX to design and incorporate an adequate XML interface. Further, they did not even need to go the XML route – they are not a third party and have intimate knowledge of FCP’s project format.

    Whether it was because this was a new team charged with the future of Final Cut, and they had disdain for its past, who knows? Regardless, interfacing with the outside world – whether it was an FCP project, an EDL, a third party monitor card, tape control, XML, etc… they did not see any of these things as important. At least not important enough to launch with them. Some of them are so low on their list, they will likely never be addressed.

    And that to me charts the course of FCX’s future more surely than any proclamation by Apple.

Comments are closed.