From 85b4a9f3050541446b39467f93b82d124a94d036 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sat, 3 Jul 2021 22:51:48 +0200 Subject: Add example of loading cue lists from file --- examples/show.qlist.scm | 59 +++++++++++++++++++++++++ examples/show.scm | 115 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 examples/show.qlist.scm create mode 100644 examples/show.scm diff --git a/examples/show.qlist.scm b/examples/show.qlist.scm new file mode 100644 index 0000000..bacecb6 --- /dev/null +++ b/examples/show.qlist.scm @@ -0,0 +1,59 @@ +(cue-list + + (cue 1 + (lighting-state + (at ltruss1 (quote pan) 206) + (at ltruss1 (quote tilt) 108.0) + (at ltruss1 (quote zoom) 6300/127) + (at ltruss1 (quote intensity) 80) + (at ltruss1 (quote colour) (make-colour-cmy 0 600/127 3800/127)) + + (at rtruss6 (quote pan) 334) + (at rtruss6 (quote intensity) 80) + (at rtruss6 (quote zoom) 4200/127) + (at rtruss6 (quote tilt) 111) + (at rtruss6 (quote colour) (make-colour-cmy 0 100/127 3100/127)) + + (at red (quote intensity) 30) + + (at led 'intensity 20) + (at led 'colour (make-colour-cmy 50 21 0)))) + + (cue 1.5 + (lighting-state + (at red 'intensity 50))) + + (cue 2 + (lighting-state + (apply-state my-state)) + #:up-time 1 + #:down-time 1) + + (cue 2.5 + (lighting-state + (apply-state my-state) + (at ltruss6 'colour (make-colour-cmy 100 0 0)) + (at rtruss1 'colour (make-colour-cmy 0 80 0)) + + (at led 'intensity 100) + (at led 'colour (make-colour-cmy 50 100 0))) + #:up-time 3 + #:down-time 3 + #:attr-time 3 + + (cue-part (led) #:up-time 1 #:up-delay 4)) + + (cue 3 + (lighting-state + (at floor3 (quote pan) 299) + (at floor3 (quote intensity) 156) + (at floor3 (quote tilt) 48) + (at floor4 'colour (make-colour-cmy 200/127 11500/127 100)) + (at floor3 'colour (make-colour-cmy 200/127 11500/127 100)) + (at floor4 (quote intensity) 127) + (at floor4 (quote pan) 239) + (at floor4 (quote tilt) 49) + (at led 'colour (make-colour-rgb 0 50 80)) + (at led 'intensity 100)) + #:up-time 3 + #:down-time 3)) diff --git a/examples/show.scm b/examples/show.scm new file mode 100644 index 0000000..770beae --- /dev/null +++ b/examples/show.scm @@ -0,0 +1,115 @@ +(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 +(start-midi-control "/dev/snd/midiC1D0" + #:channel 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 19 my-state) + + +(define pb + (make-playback + #:cue-list-file "examples/show.qlist.scm")) + + +;; Set up MIDI controller buttons to run cues +(make-go-button pb 12 + #:ready-note 20 + #:pause-note 16) +(make-stop-button pb 24 + #:ready-note 24) +(make-back-button pb 28 + #:ready-note 28) + +;; A second set of go/stop buttons, because this works well on my controller +(make-go-button pb 15 + #:ready-note 23 + #:pause-note 19) +(make-stop-button pb 27 + #:ready-note 27) +(make-back-button pb 31 + #:ready-note 31) + + +;; Set up some buttons for quick access to fixtures +(select-on-button 32 ltruss + #:ready-note 68) +(select-on-button 33 rtruss + #:ready-note 69) +(select-on-button 34 foh + #:ready-note 70) +(select-on-button 35 floor + #:ready-note 71) + + +;; Red button de-selects everything +(select-on-button 26 #f + #:ready-note 26) + +(cut-to-cue-number! pb 0) -- cgit v1.2.3