How Final Cut and Avid Import BWF Time Code Metadata

Apple Final Cut Pro and Avid Media Composer use Broadcast Wave file time code metadata in different ways. This tech note highlights a few important things to be aware when importing WAV files containing BWF time code into these editing tools.

BWF Time Code

The recorded files generated by Sound Devices 7-Series recorders and the 552 mixer contain extensive metadata describing their contents. This metadata is stored in the BeXT and iXML chunks within the Broadcast Wave format. To represent time code the primary metadata parameters include:

  • Start TC:  stored in both the bEXT and iXML chunks as a ‘Samples Since Midnight’ value.
  • TC frame rate:  This is the frames per second rate. It is also used to convert the HH:MM:SS:FF time code value to a ‘Samples Since Midnight’ value and visa versa. It is stored in the bEXT chunk as the ‘SPEED’ parameter and in iXML as the ‘TIMECODE_RATE’ parameter.
  • Sampling Rate:  This is stored in the ‘fmt’ (format) and iXML chunks. This tells the playback device at what speed to playback the file, typically 48 kHz in sound-for-picture applications.

Final Cut Pro (version 6.02 and higher)

Final Cut Pro changes an imported audio file’s playback speed if it detects that the file’s iXML TIMECODE_RATE flag is different from the Project frame rate. This results in sound playing back at a different rate than its original sampling rate, resulting in drift between picture and sound.

To make certain that Broadcast Wave files play back at the correct speed in Final Cut Pro, it is important to ensure that their time code frame rate is the same as the Final Cut Project frame rate. This also ensures that the start time code value is calculated correctly, preventing  time code offsets between picture and sound.

Here is an example of what can go wrong . . .

The Sound Devices 552 running version 1.1 firmware stamps the iXML TIMECODE_RATE with the frame rate of the connected external time code source. When the 552 is used in a non-sync scenario, with no external TC source connected, the 552 defaults the iXML TIMECODE_RATE to 30 fps and uses the time-of-day for its time code value. If the files are to be imported into a 29.97 fps-based Final Cut project, FCP will detect the iXML TIMECODE_RATE of 30 fps and assume that the files should be slowed down by 0.1% during playback. This will show up as an increasing drift of audio against picture. The drift becomes more severe as file length increases.

Workarounds:

  • Use Wave Agent to batch-convert the BWF files to 29.97ND, even the though time code value is not relevant.
  • During production, feed 29.97ND time code to the 552 from an Ambient, Denecke or similar sync box even if the material is to be manually synced in FCP.
  • To prevent this issue in the future, the next 552-firmware release will clear the iXML TIMECODE_RATE flag when there is no valid external time code detected. This will prevent Final Cut from altering playback speed of the 552 files.

AVID

Avid is straightforward and flexible in its handling of BWF time code metadata. Avid Media Composer will always playback 48 kHz stamped files at 48 kHz, regardless of the TC frame rate metadata value. Playing a 48 kHz 30 fps audio file in a 29.97-based (or 23.98 fps) project will playback at the correct speed. In addition, when importing BWFs into AVID, a dialog box appears asking the operator which TC frame rate should be used to calculate the start TC values. This helps troubleshoot situations where TC offset errors occur due to wrong frame rate selection in the field.