aboutsummaryrefslogtreecommitdiff
path: root/guile
AgeCommit message (Collapse)Author
2021-09-11Re-assert MIDI control map on parameter changeThomas White
This makes the MIDI controller stay in sync with the programmer state values. It's kind of a coarse solution, though. It would be better to: 1. Only re-assert the map if the changed parameter currently appears on the MIDI control surface 2. Only re-assert the part of the map related to the parameter Almost as a side-effect, this enables switching between multiple control maps. Just call 'set-midi-control-map!' on the controller with the new map.
2021-08-08Add hook for state updatesThomas White
This includes a "source", intended to be used for avoiding hook users from responding to their own changes.
2021-08-08Make each MIDI controller into its own objectThomas White
2021-07-03Add option to store cue list in a file, and reload itThomas White
2021-06-27Fixture display: Show selectionThomas White
2021-06-26Remove tnow parameter from current-valueThomas White
2021-06-19Add patched-fixture-namesThomas White
2021-06-03Add patch-manyThomas White
This time it works.
2021-05-29Split fixture library down to one file per fixture typeThomas White
Perhaps different personalities could be combined for each fixture, but I don't think I'd go further than that.
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-24Indicate when stop button can be pressedThomas White
2021-05-24Add hook for state changes on a playbackThomas White
2021-05-22Handle LED via select-on-buttonThomas White
2021-05-22Indicate playback paused via LEDsThomas White
2021-05-22send-note-on/off: Handle #f argumentThomas White
2021-05-22Add make-back-buttonThomas White
2021-05-22Add 'stop!' and 'back!'Thomas White
2021-05-22Add clock expiration timesThomas White
2021-05-22Add home-fixture!/blackout!Thomas White
2021-05-22Add total-num-attrsThomas White
2021-05-20Add get-fixture-attrsThomas White
2021-05-16Restore effects using clocksThomas White
2021-05-16Special case for zero duration clocksThomas 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-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-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