Fix initial sync to LTC with small buffersizes

Multimedia / Ardour - Robin Gareus [gareus.org] - 26 July 2017 16:58 EDT

Ardour follow_slave() does nothing (not even seek) if the slave is not locked.

The LTC-slave assumes it's locked if LTC is stable for 5 continuous process-calls.

If the difference of Ardour's transport-position to the LTC-timecode is large (> 2sec), the slave reset itself (assuming drift, seek don't vari-speed).

A LTC-slave does reset does reset the locked counter.

Hence: If initially Ardour's transport differs > 2 sec and the buffersize is small (many process-callbacks), the slave kept resetting itself never informing Ardour that it locked to the external TC, and Ardour never issued a seek.

28c29ab Fix initial sync to LTC with small buffersizes
libs/ardour/ardour/slave.h | 2 +-
libs/ardour/ltc_slave.cc | 13 +++++++------
2 files changed, 8 insertions(+), 7 deletions(-)

  • Share