When creating the demos I have used a lot of external counters, which is counter intuitive. In order to synchronise the update and display times a delta value needs to be passed to these functions. This should help with timing signatures.