(use-modules (starlet fixture) (starlet state) (starlet playback) (starlet scanout) (starlet effects) (starlet colours) (starlet clock) (starlet fixture-library generic dimmer) (starlet fixture-library generic rgb) (starlet fixture-library robe mmxspot mode1) (starlet fixture-library robe mmxwashbeam mode1) (starlet midi-control base) (starlet midi-control button-utils) (starlet midi-control faders)) ;; Start MIDI control (define controller (make-midi-controller "/dev/snd/midiC0D0" 14)) ;; Fixtures are normal GOOPS objects, fixture types are GOOPS classes (patch-fixture! led 1 #:universe 4) (patch-many! red '(9 13 20 24)) ;; Multiple fixtures can be defined at once ;; Example: foh1, foh2, foh3, ... foh8 on channels 1-8 of universe 0 (patch-many! foh (iota 8 1)) (patch-fixture! ltruss1 1 #:universe 1) (patch-fixture! ltruss2 39 #:universe 1) (patch-fixture! ltruss3 77 #:universe 1) (patch-fixture! ltruss4 115 #:universe 1) (patch-fixture! ltruss5 153 #:universe 1) (patch-fixture! ltruss6 191 #:universe 1) (patch-fixture! rtruss1 229 #:universe 1) (patch-fixture! rtruss2 267 #:universe 1) (patch-fixture! rtruss3 305 #:universe 1) (patch-fixture! rtruss4 343 #:universe 1) (patch-fixture! rtruss5 381 #:universe 1) (patch-fixture! rtruss6 419 #:universe 1) (patch-fixture! floor1 100) (patch-fixture! floor2 134) (patch-fixture! floor3 168) (patch-fixture! floor4 202) (patch-fixture! floor5 236) (patch-fixture! floor6 270) ;; Fixtures can be grouped together (define ltruss (list ltruss1 ltruss2 ltruss3 ltruss4 ltruss5 ltruss6)) (define rtruss (list rtruss1 rtruss2 rtruss3 rtruss4 rtruss5 rtruss6)) (define floor (list floor1 floor2 floor3 floor4 floor5 floor6)) (define my-state (lighting-state (at ltruss6 (quote zoom) 5300/127) (at ltruss6 (quote intensity) 100) (at ltruss6 (quote colour) (make-colour-cmy 3500/127 0 0)) (at ltruss6 (quote pan) 306) (at ltruss6 (quote tilt) 120) (at rtruss1 (quote pan) 223) (at rtruss1 (quote zoom) 5100/127) (at rtruss1 (quote tilt) 120) (at rtruss1 (quote colour) (make-colour-cmy 0 4100/127 3400/127)) (at rtruss1 (quote intensity) 100))) ;; Put a lighting state on a MIDI fader (state-on-fader controller 19 my-state) (set-midi-control-map! controller (list (list 'intensity 'fader 16 '(108 72)) (list 'pan 'jogwheel 0 124) (list 'tilt 'jogwheel 1 125) (list (colour-component-id 'cyan) 'fader 4 '(120 84)) (list (colour-component-id 'magenta) 'fader 5 '(121 85)) (list (colour-component-id 'yellow) 'fader 6 '(122 86)) (list 'cto 'fader 7 '(123 87)) (list 'iris 'fader 8 '(116 80)) (list 'zoom 'fader 9 '(117 81)) (list 'focus 'fader 10 '(118 82)))) (make-sensitivity-knob controller 20) (define pb (make-playback #:cue-list-file "examples/show.qlist.scm")) ;; Set up MIDI controller buttons to run cues (make-go-button controller pb 12 #:ready-note 20 #:pause-note 16) (make-stop-button controller pb 24 #:ready-note 24) (make-back-button controller pb 28 #:ready-note 28) ;; A second set of go/stop buttons, because this works well on my controller (make-go-button controller pb 15 #:ready-note 23 #:pause-note 19) (make-stop-button controller pb 27 #:ready-note 27) (make-back-button controller pb 31 #:ready-note 31) ;; Set up some buttons for quick access to fixtures (select-on-button controller 32 ltruss #:ready-note 68) (select-on-button controller 33 rtruss #:ready-note 69) (select-on-button controller 34 foh #:ready-note 70) (select-on-button controller 35 floor #:ready-note 71) ;; Red button de-selects everything (select-on-button controller 26 #f #:ready-note 26) (cut-to-cue-number! pb 0)