aboutsummaryrefslogtreecommitdiff
path: root/shows/demo-show/demo-show.scm
blob: 7491d9fdd764366f0306f43e0b743bbb1611e228 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
;; FIXME: Obviously, a better way of loading is needed
(add-to-load-path "/home/taw/starlet/guile")
(add-to-load-path "/home/taw/starlet/shows")

(use-modules
 (starlet base)
 (starlet playback)
 (starlet midi-control base)
 (starlet midi-control button-utils)
 (starlet midi-control faders)
 (demo-show patch))

(define cue-list-module
  (resolve-module '(demo-show cue-list) #t))

(module-use! (current-module) cue-list-module)

;; Create playback
(define pb
  (make-playback my-cue-list))
(register-state! pb)
(cut-to-cue-number! pb 0)

;; Start readout to OLA
(start-ola-output)

;; Start MIDI control
(start-midi-control "/dev/snd/midiC1D0"
                    #:channel 14)

;;;; Set up cue list go/stop buttons, and light up LEDs to show
(make-go-button pb 12)
(make-stop-button pb 24)
(send-note-on 20)
(send-note-on 24)

;; A second set of go/stop buttons
(make-go-button pb 15)
(make-stop-button pb 27)
(send-note-on 23)
(send-note-on 27)

;; Put some fixture selections on buttons
(select-on-button 26 #f)
(select-on-button 36 mh1)
(select-on-button 37 mh2)
(select-on-button 38 ledpar)
(send-note-on 72)
(send-note-on 73)
(send-note-on 74)

;; Set up a fader for quick access to some working light
(on-fader 19
          (lighting-state
           (at dim1 100)
           (at dim2 100)
           (at dim3 100)
           (at dim10 50)
           (at dim11 50)
           (at dim12 50)))

(define (reload-cue-list)
  (reload-module cue-list-module)
  (set-playback-cue-list! pb my-cue-list)
  (cut-to-cue-number! pb
                      (get-playback-cue-number pb)))

(define (auto-reload)
  (while #t
    (sleep 1)
    (reload-cue-list)))