aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/midi-control
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-06-26Remove tnow parameter from current-valueThomas White
2021-05-24Indicate when stop button can be pressedThomas 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-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-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-10Split 'base' module up into 'fixture', 'state' and 'scanout'Thomas White
2021-05-06Add GPL boilerplate everywhereThomas 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-04-18Update MIDI buttonsThomas White
2021-04-18Use individual CMY channels in MIDI control mapThomas White
2021-04-18Special case colour components for MIDI fadersThomas White
2021-04-05When using jogwheel control, clamp values to end of rangeThomas 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-03New state-on-faderThomas White
2021-04-03Fix sel/at (again)Thomas White
2021-04-02Replace merging of states with search through list of statesThomas White
This is LOADS faster.
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-08Remove home state and abolish fixture-attribute use in statesThomas White
The "home state" has no reason to exist. The home values are already stored perfectly well in the attribute lists of the fixtures. Any time we need to look up a home value, we already have the fixture itself available. This also gets rid of any use of <fixture-attribute> in states. This was confusing me. Better to just pass symbols around and only get the real attribute objects when needed (which isn't very often).
2021-03-02Refuse to start MIDI control twiceThomas White
2021-02-25Gracefully handle unavailable MIDI control deviceThomas White
2021-02-21Make MIDI callbacks (optionally) uniqueThomas White
2021-01-30Move useful stuff to utilsThomas White
2021-01-26Move "sel" to base, and add a callbackThomas White
2021-01-26New, scaled approach to MIDI fadersThomas White
2021-01-25FormattingThomas White
2021-01-19Rename "on-fader" to "state-on-fader"Thomas White
More specific name.
2021-01-19on-fader: Soft pickupThomas White
This is a bit nasty, because we might not know what value the fader was at before it was moved.
2021-01-19sel: Handle listsThomas White
2021-01-19Implement selection of multiple fixtures at onceThomas White
2021-01-15Remove selection-stateThomas White
There's no reason for this to exist. Just change things directly in programmer-state.
2021-01-09Add select-on-buttonThomas White
2021-01-03Start MIDI control only for attributes in the fixtureThomas White
2021-01-02Print backtraces for MIDI receive threadThomas White
2021-01-02Turn off all MIDI notes at startupThomas White
2021-01-02Implement at-midi-faderThomas White
get-cc-value now returns #f if the position of the fader is unknown. Some other changes were needed to accommodate that.
2020-12-31Manage LEDs for parameter adjustmentThomas White
2020-12-31Reduce scope of merge-rule-replaceThomas White
2020-12-31Select fixture and change parameters via MIDIThomas White
2020-12-30Generalise MIDI callbacks to CCs as well as notesThomas White
2020-12-29Simplify MIDI control interfaceThomas White
This removes the midi-led and midi-control classes, which only seemed to be making things more complicated.
2020-12-27Add fader controlThomas White
2020-12-23Move 'guile-midi' into Starlet namespaceThomas White