aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-11Add examples/demo-show.scmThomas White
2023-04-11Fixture library: almost full Robe DL7S definitionThomas White
2023-04-11Add 'lookup' utilityThomas White
2023-04-11Add an optional comment field to the fixture's attributesThomas White
2023-04-11Add lots of default attribute namesThomas White
2023-04-11Get rid of 'categorize'Thomas White
Good riddance. Here's to proper argument handling.
2023-04-10Add attribute friendly namesThomas White
2023-04-09More documentation cleaningThomas White
2023-04-09Tidy up docsThomas White
2023-04-09Docs: fix grammarThomas White
2023-04-09Fuss over documentationThomas White
2023-04-09Fix documentationThomas White
2023-04-09Update docs for new transition syntaxThomas White
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-02Move stuff to (taw controls)Thomas White
2023-04-02Fixture library: Robe DL7S: add missing modules and fix typoThomas White
2023-04-01Fixture display: Retrieve combined state only onceThomas White
Note that this use of state-find doesn't look up the home value if there's no value in the combined state. We assume that no intensity means zero intensity, i.e. that the home value for intensity is always zero.
2023-04-01Scanout: Retrieve the combined state only onceThomas White
2023-04-01'colour -> colourThomas White
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.
2023-04-01Send the combined state to OLAThomas White
2023-04-01Build a general combined stateThomas White
2023-04-01docs/new-fixture.rst: Remove old quotingThomas White
2023-04-01Update README.mdThomas White
2022-11-13Some symbol-><starlet-attribute> conversions I missedThomas White
2022-11-12Fixture display: snap text colour at 50% intensityThomas White
There's no way around it. Either we have a snap change like this (distracting), or the intensity is invisible at some value.
2022-11-12Add write method for <starlet-state>Thomas White
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-11-12Fixture display: Make sure that attributes are initialisedThomas White
2022-11-12crossfade: Set default attribute fade timeThomas White
Previously it was zero, which is almost never what we want. Now it's the smaller of the up and down times.
2022-10-30Fixture library: <stairville-z120m-6ch> Add random strobe modeThomas White
2022-10-30Add flash-chaseThomas White
2022-10-30Fixture display: Bail out if we get a Scheme errorThomas White
2022-10-30Fixture display: Add a fence after requesting fixturesThomas White
2022-10-30MIDI control: Set go button LED on startupThomas White
Previously, the LED would not be lit until the first playback event (go/back etc) after startup.
2022-10-30Add find-midi-deviceThomas White
2022-10-29Fixture display: Don't sent new requests until old ones come throughThomas White
Overlapping requests (due to slowness of some kind) can have disastrous consequences.
2022-10-27Improve cue list errorsThomas White
2022-08-13cue-list: Ignore unspecified valuesThomas White
This allows the following kind of thing: (cue-list (cue 1 ...) (when something (cue 2 ...)) (cue 3 ...))
2022-07-17Add more information about cue listsThomas White
2022-07-17Add documentation about multi-part cuesThomas White
2022-07-17Add documentation about physical controlsThomas White
2022-07-17Improve the syntax of "set-midi-control-map!"Thomas White
This replaces the mess of "list" forms: (set-midi-control-map! controller (list (list 'intensity 'fader 16 '(108 72)) ...)) With something a bit clearer: (set-midi-control-map! controller (fader 16 'intensity #:congruent 108 #:incongruent 72) ...) There's a corresponding improvement in the internal code.
2022-07-17Update docsThomas White
2022-07-10Add "remove-selection-from-programmer!"Thomas White
2022-07-10Add 'ps' as a synonym for programmer-stateThomas White
2022-07-10Add "remove-fixture[s]-from-state!"Thomas White
2022-07-10Don't send fix/attr/val to state update hookThomas White
It's not used anywhere, and it doesn't work - there are many other kinds of update apart from setting an individual value.
2022-07-10Fixture display: Show a red warning if programmer state is not emptyThomas White
This helps avoid a whole category of showtime mistakes.
2022-07-10Add "state-empty?"Thomas White