Μεγάλη δραστηριότητα τις τελευταίες μέρες παρατηρείται στη κοινότητα του TOPLAP 1 σχετικά το TOPLAP Clock Protocol 2. Η συγκεκριμένη προσπάθεια έχει ώς σκοπό να βρεθεί ένα πρωτόκολλο για διανομή συγχρονισμένου ορολόγιου (clock synchronization) και μουσικού μέτρου (musical metre). Πιο συγκεκριμένα η κοινότητα του TOPLAP έχει ως σκοπό να παράξει έναν μηχανισμό οποίος θα μοιράζεται μεταξύ των μελών για να συγχρονίζονται χρησιμοποιόντας ο καθένας την αρχιτεκτονική του.
H ομάδα ανάπτυξης του περιβάλλοντος Extempore 3 έχει δοκιμάσει το παραπάνω πρωτόκολλο και παρακολουθεί την ανάπτυξη του. Ο κώδικας του παραδείγματος είναι ο παρακάτω:
;;
;; metronome test for topclock.
;;
;; run this on several machines at once.
;;
(sys:load "libs/core/topclock.xtm")
(sys:load "libs/core/instruments.xtm")
(bind-func dsp:DSP 1000000
(let ((t 0.0))
(lambda (in time chan dat)
(if (= t 0.0) (set! t time))
(if (< chan 1.5)
(+ (fmsynth in time chan dat)
0.0)
0.0))))
(dsp:set! dsp)
;; turn off all effects
(fmsynth_fx.wet .0)
(fmsynth_fx.dfb .0)
;; any client can send tempo/cycle changes
(define test
(lambda (beat dur)
(if (and (= (modulo beat 4) 0)
(> (random) .8))
(topclock-bpm (*metro* beat) (random 80 280) beat (random '(6 5 4 3))))
;; 'pos returns the metric position in the current cycle
(println 'beat: (*metro* 'pos beat))
(if (= (*metro* 'pos beat) 0)
(play fmsynth (random '(63 65 67 70 72)) 80 .1)
(play fmsynth 60 80 .1))
(callback (*metro* (+ beat (* .5 dur))) 'test (+ beat dur) dur)))
(define teststart
(lambda ()
(test (*metro* 'get-beat 4) 1)))
;; give topclock a few seconds to get sync'd
(callback (+ (now) (* *second* 10)) 'teststart)