TIMECODE Protocols
I have now finalised the Timecode protocol for the GENER8 modules. If you are developing your own module(s) and wish to access this data, here’s a brief explanation of how it works.
I have tried to ‘future-proof’ the Timecode, giving it a full spectrum of possible data types. And although I have made changes to it with this last release of GENER8 (0.52), I promise not to meddle with it further (at least not too much).
The Timecode data is output from the GENER8 Launchpad module, and is available through the sharedDict library as:
sharedDict[‘TIMECODE’]
The Timecode is of data type Dictionary, and contains the following values:
sharedDict[‘TIMECODE’][‘BPM’] – The number of beats per minute.
sharedDict[‘TIMECODE’][‘BAR_BEATS’] – The number of beats in a bar.
sharedDict[‘TIMECODE’][‘BEATS’] – The number of elapsed beats. This value is in the form of a list with values for Bar, Beat, Percent of Beat. (ie, sharedDict[‘TIMECODE’][‘BEATS’][0] = Bars, sharedDict[‘TIMECODE’][‘BEATS’][1] = Beats, sharedDict[‘TIMECODE’][‘BEATS’][2] = Cents,)
sharedDict[‘TIMECODE’][‘SEC’] – Elapsed time in Seconds (This could be used to calculate SMPTE values if required).
sharedDict[‘TIMECODE’][‘START’] – Boolean value to indicate if Clock is running. 0 = Off
sharedDict[‘TIMECODE’][‘LOOP_ON’] – The Timecode can also work in a looped form, this is a Boolean value to indicate if the loop is in effect.
sharedDict[‘TIMECODE’][‘LOOP_START’] – An offset value for the loop in beats. Do not use values of 0, a start value of 1 indicates there is no offset.
sharedDict[‘TIMECODE’][‘LOOP_LENGTH’] – Length of the loop in beats.
Note: Timecode values will be output when clock is controlled via external Midi clock.