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.scm | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 examples/show.scm (limited to 'examples/show.scm') 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