Atomic Synchronator

(yes it's a facetious title)
Beyond 1967 SMPTE timecode: an affordable GPS based audio AUX syncing track generator for dual-system sound

Similar projects worth following
There are numerous past and current projects (and shipping commercial products) related to video editing and sound syncing. Although most of them are using SMPTE linear time code (LTC), I don't plan to use it anymore (see the project former home).

Why not LTC?

#1 I'm targeting low end users with cameras lacking sound input and LTC modulation (bi-phase mark) doesn't cope well with acoustic coupling.

#2 Most hobby level and not-so-hobby NLE softwares don't read LTC, e.g.: Premiere neither FCP natively read it...(ya: videotoolshed, PluralEyes, etc...) Isn't there a NLE LTC conformity matrix somewhere? Let me know.

#3 And finally: 29.97 fps DF; 29.97 NDF; 23.976 DF; 23.976 NDF? WTF?? Seriously?

So I'll implement an audio sync track using the 1 PPS from a GPS receptor (those pulses are precise to 10 nanoseconds typically). Between each seconds the time of day will be encoded into the track and parsed in post-production by  PPSsoundmerge (a program to be written) that will merge sound clips with their corresponding video tracks (thanks to FFmpeg!) and this, before importing into your NLE.

The HH:MM:SS UTC time of day will be, for now, OOK  (or ASK) modulated so maybe (just maybe) NLE softwares doing wave form analysis syncing can use it (PluralEyes, Syncaila, FCP, Kdenlive, Resolve, any other?).

  • 1 × a SAMD21 board (Adafruit, Sparkfun...)
  • 1 × a GPS module with 1PPS output
  • 1 × some analog components to adapt the DAC output to audio levels, LM358?
  • 1 × Arduino IDE, python and FFmpeg installed

  • Soon in a μCtrlr near you

    Raymond Lutz01/31/2021 at 21:10 0 comments

    FSK is coming! (this was done in python to check my math, 3:2 ratio is used for illustration purpose only)

  • DSO Screen Grabs!

    Raymond Lutz01/03/2021 at 20:47 0 comments

    Who doesn't love them?

    The illustrated 15ms interval is the maximum tolerable delay of desynchronization between voice and image, according to this article .

    The 2 sine pulse train is generated on the DAC output of SAMD21 (with Direct Digital Synthesis rather than PWM) and is triggered by the appearance of a 1 PPS pulse from the GPS.

    Note that the oscilloscope (low) sampling frequency is deliberately set to 50 kSa/s to get near to the audio recording frequency in cinema (48 kHz). Fitting of the sin pulse will be done on the desktop with available python libraries.

  • Turning on the soldering iron

    Raymond Lutz12/31/2020 at 04:12 0 comments

    I've set up a gitlab repository for the firmware, ppssync, and cabled the prototype. Below is an artistically blurred picture of it:

    The external antenna is for testing purpose only, the GPS is quite capable to fix indoor with its ceramic antenna. Here's the hookup guide between the Trinket M0 and the GPS board:

    The trinket provides the 3.3 V power (from onboard regulator) to the GPS, greatly simplifying the set up! Thanks, Adafruit!

  • Captain's Log, Stardate 000.0

    Raymond Lutz12/07/2020 at 11:27 0 comments

    Task list status:

    • source boards
    • test MTK3339 GPS module indoor fixing ability
    • test SAMD21 direct digital synthesis (DDS) of a sin sync pulse with its 10 bits DAC.
    • test SAMD21 hardware interrupts handling with the 1PPS signal
    • buy a copy of AoE third edition
    • research analog stage configuration
    • order some LM358 (with extra magic smoke in them)
    • move project home from Blogger (!) to Hackaday
    • test waveform analysis on Kdenlive
    • research NLEs handling of timecode metadata
    • launch gitlab repository
      • for firmware
      • for PPSSoundmerge python desktop post-prod script
    • final Arduino coding:
      • code NMEA parsing on UART (use Adafruit lib?)
      • code UTC time DDS ASK modulation to DAC
    • desktop python coding:
      • code ASK software demodulation
      • code merging clips fct with ffmpeg-python
    • analog stage:
      • measure some input impedances (cam and audio recorder)
      • implement reference voltage for true audio AC with LM358
      • test mic level output
      • test line level output
      • test small speaker for acoustic coupling

    Maybe I shouldn't reveal I've been researching this project for ten years! It would cast a shadow over my capacity to deliver... 8-) But you wouldn't have access to my treasure trove of related links...

    The first traces of my journey are links kept on Delicious, now Pinboard: they are tagged smpte and date back to 2011. I later diversified my classification and introduced year after year more nuanced tags, here are direct links to them: (this is stratigraphic information paleontology!)

    From now on, maybe the project will stall again... I'm back to school this January after a sabbatical semester (ducking down during COVID: I just can't stand doing zoom classes), we'll see.

View all 4 project logs

Enjoy this project?



Sean McVeigh wrote 01/03/2021 at 22:25 point

Considering this is an indoor device, why not use a chip-scale atomic clock?
EDIT: never mind, thought the price had come down, although you could sell as pro product :D

  Are you sure? yes | no

Raymond Lutz wrote 01/03/2021 at 22:36 point

ah ah! You got me on that one! And I thought you were joking until I looked it up!!! Those devices DO exist!!!  But for now prohibitively onerous...

Anyway, you would have the hassle to jam sync them before use... Also this GPS chipset works OK indoor, even in a modern building with a steel framing (but in a basement reception in spotty).

  Are you sure? yes | no

Sean McVeigh wrote 01/03/2021 at 22:47 point

Yeah I worked on one in grad school (modded as magnetometer):

  Are you sure? yes | no

Sean McVeigh wrote 01/03/2021 at 22:51 point

Wait, I assumed you only need one clock source? Use Ethernet for sync to capture devices:

This is the technique used for multi-AP clock sync for triangulation in indoor location, often using GPS as CLK source. Didn't look too carefully if the recent updates meet your timing requirements.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates