@@ -74,6 +74,48 @@ The created effect instances can then be used by a timeline class deciding what
74
74
effects should be rendered at any given point in time.
75
75
The default timeline configured just grabs the first runnable effect it finds and render only that one.
76
76
77
+ Timers
78
+ ------
79
+
80
+ Timers are classes responsible for controlling the current time.
81
+ It simply reports the number of seconds as a float since effect rendering started.
82
+ Timers also need to support pausing and time seeking so we can
83
+ freely move around in the timeline.
84
+
85
+ This time value is passed through the configured timeline class and forwarded
86
+ to each active effect through their ```draw() `` method.
87
+ We should assume time can move in any direction at any speed and suddenly
88
+ jump forward and backwards in time.
89
+
90
+ The default timer if not specified in settings:
91
+
92
+ .. code-block :: shell
93
+
94
+ TIMER = ' demosys.timers.clock.Timer'
95
+
96
+ Standard Timers
97
+ ^^^^^^^^^^^^^^^
98
+
99
+ - :py:class: `demosys.timers.clock.Timer `: Default timer just tracking time in seconds using pythons ``time `` module.
100
+ - :py:class: `demosys.timers.music.Timer `: Timer playing music reporting duration in the song
101
+ - :py:class: `demosys.timers.rocket.Timer `: Timer using the rocket sync system
102
+ - :py:class: `demosys.timers.rocketmusic.Timer `: Timer using the rocket sync system with
103
+ music playback
104
+
105
+ You create a custom timer by extending :py:class: `demosys.timers.base.BaseTimer `.
106
+
107
+ Timelines
108
+ ---------
109
+
110
+ A timeline is a project responsible for knowing exactly when an effect instance
111
+ is active based on the reported time from a timer.
112
+
113
+ The current standard timelines are:
114
+
115
+ * :py:class: `demosys.timeline.single.Timeline `: Grabs a the single effect instance from your project rendering it
116
+ * :py:class: `demosys.timeline.rocket.Timeline `: The active status of each effect is decided by rocket
117
+
118
+ New timeline classes can be created by extending :py:class: `demosys.timeline.base.BaseTimeline `.
77
119
78
120
Effects Package Organization
79
121
----------------------------
0 commit comments