aboutsummaryrefslogtreecommitdiff
path: root/guile
AgeCommit message (Collapse)Author
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-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-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-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.
2021-03-31Remove combined state from scanout loopThomas White
This gives only one remaining place where the state stack is combined. Soon, it will be made faster.
2021-03-31Remove unnecessary exportsThomas White
2021-03-31Get rid of set-state-hash-tableThomas White
2021-03-31Replace playback implementationThomas White
The old version was getting too complex. As it turns out, it can be done without duplicating information in the fade-record structure. This way also allows much more flexiblity and is a more clear abstraction.
2021-03-28Get rid of attr-booleanThomas White
A list attribute works fine.
2021-03-28WIP on playbacksThomas White
2021-03-28Add some error checkingThomas White
2021-03-21Fix incorrect results when running cues out of orderThomas White
2021-03-13Store the real states in a cue list, not the functionsThomas White
This shouldn't be a big memory burden, even lots of large states. It also makes for a more consistent language by allow lighting-state to be used in cue lists, rather than cue-state.
2021-03-08enqueue-midi-bytes: Actually enqueue, rather than waiting for empty queueThomas White
This avoids a deadlock if the midi readout isn't happening for some reason.
2021-03-08Add register-state! back to list of exportsThomas White
It's needed in (starlet playback), of course.