aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/playback.scm
AgeCommit message (Collapse)Author
2023-04-09New transition effect syntaxThomas White
Instead of this: (cue 3 (lighting-state ...) (crossfade 3 5)) We now have this: (cue 3 (crossfade 3 5 (lighting-state ...))) This makes a simple snap blackout very succinct: (cue 6 (snap blackout))
2023-04-01Separate 'engine' and 'scanout'Thomas White
The new module "engine" contains everything to do with working out the final attribute values. This module should be referenced for anything that needs to register states, get values etc. Now, "scanout" is only about converting attribute values to DMX values and sending them to OLA. This module only needs to be referenced by fixture definitions, and once by the top level program.
2022-11-12Introduce new type for attribute namesThomas White
There's a serious problem with the design so far, where symbols are used for attribute names (intensity, strobe, colour etc), and also for attribute values (on, off, random etc). There's no way for 'at' to tell the difference between the two. For example, this form is ambiguous: (at myfixture 'strobe 'on) This commit introduces a new class, <starlet-attribute>, to replace the use of symbols here. The attributes are enumerated in (starlet attributes), and new ones can be added later. The attribute objects remember their 'canonical' names, to allow states to be printed. Apart from solving the ambiguity problem, this has two further advantages. First, attribute names no longer need to be quoted everywhere. Second, multiple names can be used to refer to the same attribute. For example: (define color colour).
2022-07-09Playback: Factorise start-fixture-playback! and clock logicThomas White
2022-06-18Playback: avoid more trouble if current cue doesn't existThomas White
2022-06-18Add num-cuesThomas White
2022-06-11Fixture display: Clearer indication when a cue is runningThomas White
2022-06-07Add fast recovery mechanism to playbackThomas White
2022-06-06run-cue-index!: Add an implicit transitiom to 0/no-value for values in playbackThomas White
2022-02-21Fix (write <starlet-playback> _) on last cueThomas White
2022-02-13Show only cue numbers (not indices) in playbackThomas White
2022-02-08playback: Remove unused exportThomas White
2022-02-05playback: Start new playbacks in cue zeroThomas White
2022-01-30Remove states and transitions from cue (leave only cue parts)Thomas White
2022-01-26Add a commentThomas White
2022-01-25Track time taken for cue transitionThomas White
2022-01-25Restore update-state for playbackThomas White
2022-01-25Define write method for playbackThomas White
2022-01-25Overlay all of the part transitions before applying to playbackThomas White
This prevents any individual cue part being visible on stage before the others.
2022-01-25Initial working demonstration of 'snap' transitionThomas White
2022-01-25cut!: Handle end of cue listThomas White
2022-01-25Separate cue lists from playbacks and crossfadesThomas White
2021-11-02get-playback-cue-number: Return #f if current cue doesn't existThomas White
2021-10-24Reset the cue clock when the cue is runThomas White
2021-10-24Move cue-clock into the cue itselfThomas White
Effects in the cue state may need to reference the cue's clock. Otherwise, there's no way to synchronise any kind of effect to the time of running the cue. For this to be possible, the cue clock needs to exist at the time of cue creation.
2021-10-24FormattingThomas White
2021-10-23Add 'reassert-current-cue!'Thomas White
2021-10-19Replace partial application functions with SRFI-26 "cut"Thomas White
2021-07-03Add option to store cue list in a file, and reload itThomas White
2021-05-28Add "cut!" (cut forwards)Thomas White
2021-05-28Apply preset for running cue when the playback reverts to ready stateThomas White
2021-05-27Set the preset state when cutting between cuesThomas White
2021-05-27Calculate presets for all cues when cue list is createdThomas White
2021-05-27Calculate tracking when cue list is createdThomas White
2021-05-25Set default attribute fade time to zeroThomas White
Rationale: get the lights in position for the current cue. If you want to see them move, set the time yourself.
2021-05-24Factorise set-playback-stateThomas White
2021-05-24Move preset from fade-times to cue propertiesThomas White
2021-05-24Add hook for state changes on a playbackThomas White
2021-05-22Indicate playback paused via LEDsThomas White
2021-05-22Add 'stop!' and 'back!'Thomas White
2021-05-22Add home-fixture!/blackout!Thomas White
2021-05-16Remove newly redundant with-fade-times macroThomas White
2021-05-16Fix copy/paste errorThomas White
2021-05-16Get rid of time parameter and use clock objects for cross-fadesThomas White
Because we can stop a clock object, but not "gettimeofday".
2021-05-10Run cues as single atomic operationsThomas White
This avoids a potential situation where one parameter of a fixture is reconfigured before another, which could (in theory) lead to flickering of lights.
2021-05-10Split 'base' module up into 'fixture', 'state' and 'scanout'Thomas White
2021-05-06Add GPL boilerplate everywhereThomas White
2021-04-08Neater abstraction for fade typesThomas White
2021-04-07Fade colours nicelyThomas White
2021-04-06Initial abstraction layer for coloursThomas White