readXML

readXML is a very simple application I use for some internal stuff and testing with my work and the work of of costumers.

I got quite a lot of questions about Final Cut Pro XMLs during the last years and I saw a lot of people giving up on working with XML, and I did see the poll result of Larry Jordans May Newsletter, where XML turned out to be top of the bottom features of FCP. Thinking about that, I thought it could be a nice idea to release a little bit modified free version of readXML to the public - though not with all the features the internal app has.
Maybe it helps people to understand the power behind FCP's XML, or makes some co-worker's communication better. It also may be used as a simple movie player which does show timecode or allows simple transcriptions to be made.

readXML - as the name somehow says - does read FCP XMLs.
You can load any kind of XML from FCP, but only clips or sequences will be parsed dependent upon the user's choice what to process.
So importing a project will list all clips, sequences and bins and allows to select one of the clips (or sequences) at the root level or inside any bin.

The interface - as often with internal apps - not a really nice one and requires some phantasy, understanding and quite a big screen. And documentation is poor, as the below text is the only available.

You can take either a "Marker" or a "Clip" approach to parse the XML. In both cases the app works the same way, except that when using markers only those clips will be considered, which contains markers.
When parsing a FCP XML nearly all values of the XML could be brought into a data base, but to speed up things you can ignore filters and source file settings.
Using the filter and source file parsing can take a reasonable amount of time to parse the XML.
Filters will be compared and grouped during the import process; this can take a really long time, if motion filter settings are included.
The same thing is done with source files even though it's not that time consuming as with the filters, but source files maybe "hidden" in multi-clip settings and the parser has to "search back" in the XML file.

After the import process has finished the user gets quite a good overview for the sequence (including clips and markers) or clip with the markers, which has been imported.

The main interface shows four tables: Clips, Markers, Filters and Source Files.
Beside the main interface there are three additional windows: Find, Movie and Text.
Some preferences allow to set up the appearance of the table views and the columns which should be exported (from the marker table).

As said readXML is a very simple app, which doesn't do too much - here what is does or better what you can do with it.

• Get an Overview: the most simple usage.
You just want get an overview?
Selecting or changing rows in either the clip or marker tables will show the related records in the other one. Using "All Markers" and stepping thru the entries will show the related clip, using the clips table will show only related markers - so changing from markers to clips (clicking on the selected clip in the clip table will recalculate the content of the marker table).
Selecting one of the filters in the filter groups and subsets, will show the affected clip.
Since filters are grouped into several sub-groups, you got five popups here. The main one is the filter group you may see in FCP - some filters don't supply this group so they will be sorted into an "unknown group". The next child group is the name of the filter you see it in your project, the one below, the setting for this filter - same settings will put those filters into sub groups.
The two latter ones also allow to check for enabled or disabled ones.
With any of the above mentioned 3 tables the time of an eventually loaded movie will jump to the time of the selected record. See also the below notes about "Comments"
Selecting source files currently doesn't have any effect.

So why to get an overview?
Some examples:
In some cases like 24, 24@25 or 23.976 there may be problems with way clips have been conformed and the clip's play timebase is different from TC timebase - which may also differ from the sequence timebase. This often has no real impact on the visual performance, but definitively on the data output when it comes to the point to interchange data with other applications.
Filters are another good example

• Simple "Find" function.
Different from FCP you can search within a sequence not only for names or timecodes.
You can search for nearly every thing, in some cases even within groups - so for example you can search for a string in every comment, or whether a marker contains a string in either title or comment.
Even though you can't build a "logical search pipe", can still search a set of found results, and refine a search this way
As with any of the tables (excluding source table): selecting a row will put the timecode to the clipboard and you can go to FCP and paste, to go to this time.


• Simple print function.
You just may want to print some of the information you got.
Since there is a lot of information depending on the table you want to print, there is some little help to "format" the table for a better print layout.
First use "Page Setup…" from the "File" menu to do some basic settings. Select "Table Setup…" from the application menu. Here you got some options for each table: setting a grid and the row height. Changing the row height will resize the window to reflect the match of tables and the printed page. Now you can resize columns or drag them around. The column order is saved, the row height isn't.
The "Test Layout" does resize the window for same purposes, if you changed the page setup and want to get a preview.
When printing, choosing the "Preview" option first is a good choice to test first - and not waste paper.


• Simple Sequence(Clip) Comments or Transciption
Having imported a sequence, you can open the "Movie Window" and import a reference movie for this sequence.

The "Movie Window" will give you some simple settings and visual feedbacks.
In the upper left a popup allows the set the visual scaling for the movie, the button right of it allows to "un-squeeze" anamorphic footage. The top right time display shows the duration (either NTSC or PAL)
Below the movie there are three other numerical displays: Timecode (blue), real world zero-based timecode (green) and framecount (transparent).
The "Find" button will do a search in the database and will show you all "involved" clips at that time.
That seems to be somehow useless since a simple click in the sequence in FCP will do the same, additionally with the advantage to be able to do some changes - but quite often there are co-workers which either don't have access to FCP, the project, the source files etc., and it's quite complicated to keep projects synchronized thru several locations.
Now seeing the items involved you got an overview of the values for this item; and maybe you want to make some notes here - or make a note regardless of what is involved. Here comes the "Text Window".
The "Text Window" has to tabs, where both of them show a simple text editor. Below the text editor you got a timecode display, each with the same color coding as in the movie window. With the "Comments" text editor you got an additional check box "Include Graphics".
Clicking one of the (blue/green) "Timecode" fields (both in the movie window or text window) will insert the timecode as text at the insertion point of the text (comment/QTtext) editor. Having the "Include Graphics" button checked will also add the current frame as a picture below the timecode to the "Comment" text editor. You can add other text now.
Adding the timecode to the QTtext editor will take the real world zero-based timecode and puts it into brackets (as needed for QTtext). The QTtext editor is currently not that helpful for people, especially if working with NTSC, except they know how to setup a QTtext file. I will add some examples to this page for that in a few days.
Both the comment and QTtext can't be saved directly, but copied and pasted to TextEdit or a similar application. You can reformat the content there and then print or save it


• Simple export of markers
Maybe you want to export markers for something like MPEG encoders. You can do that as well.
Using the "Marker Column Setup…" under the application menu, you can setup which data column should be exported. The order can be stup up as well. If you click the ">>move>>" button and a row in the right table is selected, the value from the left will be inserted before the selected one. If no row is selected the value will be inserted at the end of the rows.

After the setup is done, just click either the "Export All Markers" or the "Export Current Markers" and the selected rows are exported to the clipboard (including column headers.

You can download the readXML archive here.

You can make a donation below:

System Requirements:
  • Apple PowerMac G4 (the faster the better).
  • 512 MB RAM (more = better), enough space for virtual memory
  • MacOS X 10.3.9
  • FCP 4.1 or higher
For further information contact:

Andreas Kiel
Spherico
Nelkenstr. 25, D-76135 Karlsruhe
eMail: kiel@spherico.com,