TIMECODE Protocols

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.

Making Modules Compatible with GENER8

Making Modules Compatible with GENER8

With the inclusion of GENER8 in your projects, the standard form of Layer Contextual modules becomes a little less relevant, as we start to change video at the GENER8 Clip level.

I have written GENER8 with this in mind, and it is a fairly simple process to produce an update of your own Layer Contextual modules which include a sensitivity to the GENER8 Clip changes produced by The GENER8 Launchpad module.

All that is required is a small script which to be included in the Periodical Script, which listens out for changes, and a few Functions in the Init script to collect information about settings, and update changes.

I am currently in the process of finalising the protocols to this, and will be making the finished scripts available as soon as I get a fully tested Alpha version available.

If you would like to update a module to be compatible with GENER8, or create a new one from scratch, let me know about it and we can have a chat – I may be able to help you with some of the planning.