aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-15Add clock durationsThomas White
2021-05-15Add clock moduleThomas White
This will be the basis for a simplification of how cue fade times are handled, making it possible to implement "stop" and "back" operations for playbacks.
2021-05-13Export copy-stateThomas White
2021-05-13Avoid mutation of state objects by "set-state-name!"Thomas White
2021-05-12Trigger apply-fader when fader crosses its original valueThomas White
This fixes a problem whereby lights couldn't be turned off via the fader
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-10Make state objects' hash tables immutable with atomic updatesThomas White
States often get updated while they're being scanned out. The obvious case is when manually setting values in the programmer-state, but the more pernicious one is when running a cue. This means that the updates have to be atomic.
2021-05-10Start OLA scanout automaticallyThomas White
2021-05-10Split 'base' module up into 'fixture', 'state' and 'scanout'Thomas White
2021-05-06Add GPL boilerplate everywhereThomas White
2021-05-06Remove state-rwThomas White
2021-05-06Update README.mdThomas White
2021-05-06Update compile.shThomas White
2021-05-06Slow down MIDI transmisisonsThomas White
My control surface (A&H Xone:K2) seems to respond badly to being blasted with note on/off events to turn its LEDs on and off: some of the LEDs end up in the wrong state. The effect is reproducible using a small test program using the ALSA API from C, which excludes multi-threading problems in Starlet and buffer overruns in the ALSA device. The controller simply doesn't cope well with large numbers of events arriving in quick succession. Adding a very small delay seems to completely fix the problem without causing any noticable flicker.
2021-05-03Don't hammer OLA with unnecessary updatesThomas White
As well as reducing CPU load, this vastly reduces the number of problems caused by data frames being accidentally interleaved with RDM.
2021-05-02Use wrapper for OLA's C++ API instead of the web APIThomas White
2021-04-18Update MIDI buttonsThomas White
2021-04-18Update demo fileThomas White
- Add Arduino fixture - Add ltruss group - Add more MIDI buttons
2021-04-18Add <arduino-dmx-thing>Thomas White
2021-04-18Use individual CMY channels in MIDI control mapThomas White
2021-04-18Special case colour components for MIDI fadersThomas White
2021-04-18Extend attribute-handling functions to handle colour component IDsThomas White
The following routines become generic functions with special cases for when a specific colour channel is being referred to: - set-in-state! - find-attr - get-attr-home-val - state-find - current-value
2021-04-18Add <colour-component-id>Thomas White
2021-04-11Add colour-as-rgbThomas White
2021-04-08Neater abstraction for fade typesThomas White
2021-04-07Coerce values in programmer to real valuesThomas White
2021-04-07Convert everything else to use <colour>Thomas White
2021-04-07Fade colours nicelyThomas White
2021-04-07fixup initial abstractionThomas White
2021-04-06FormattingThomas White
2021-04-06Initial abstraction layer for coloursThomas White
2021-04-05When using jogwheel control, clamp values to end of rangeThomas White
2021-04-04Actually fade attribute values (when appropriate)Thomas White
2021-04-04Add the ability to make certain states uniqueThomas White
This allows easy re-assignment of faders with state-on-fader
2021-04-04New state-on-faderThomas White
2021-04-04Handle intensities returning no value in HTP mergeThomas White
2021-04-03New state-on-faderThomas White
2021-04-03Fix sel/at (again)Thomas White
2021-04-02Give programmer values absolute priorityThomas White
2021-04-02Replace merging of states with search through list of statesThomas White
This is LOADS faster.
2021-04-02Update README.mdThomas White
2021-03-31Update demo.scmThomas White
2021-03-31current-value: Make REALLY sure that no-value does not leak throughThomas White
2021-03-31add-state-to-state: Make sure that no-value does not leak throughThomas White
2021-03-31print-playback: Return unspecifiedThomas White
2021-03-31at: Handle unspecified fixture when nothing is selectedThomas White
2021-03-31Factorise ensure-numberThomas White
2021-03-31Get rid of have-valueThomas White
It seems clearer just to check explicitly.