blob: 1fe76fb42a3633e9cbff96e1990cecd8a0e68730 (
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
;; Example invokation, from top level project folder:
;; $ guile -L guile -l examples/demo.scm
(use-modules
(starlet base)
(starlet playback)
(starlet effects)
(venues demo-venue)
(guile-midi control))
(start-ola-output)
(start-midi-control "/dev/snd/midiC1D0")
(all-notes-off! 14)
;; Set up working lights on a MIDI fader
(define working-light-fader
(make-midi-controller! #:channel 14
#:cc-number 19))
(define (worklight)
(let ((state (make-empty-state))
(fader-pos (get-controller-value working-light-fader)))
(set-attr! state dim11 'intensity fader-pos)
(set-attr! state dim12 'intensity fader-pos)
(set-attr! state dim13 'intensity fader-pos)
state))
(register-state! worklight)
(define pot1
(make-midi-controller! #:channel 14
#:cc-number 7))
(define (example-state-1)
(let ((state (make-empty-state)))
;; Front wash
(set-attr! state dim11 'intensity 50)
(set-attr! state dim12 'intensity 50)
(set-attr! state dim13 'intensity 50)
;; Sidelight
(set-attr! state dim7 'intensity (flash 2))
(set-attr! state dim8 'intensity 50)
(set-attr! state dim48 'intensity
(lambda (a)
(get-controller-value pot1)))
state))
(define (example-state-2)
(let ((state (make-empty-state)))
;; Front wash
(set-attr! state dim1 'intensity 10)
(set-attr! state dim2 'intensity 10)
(set-attr! state dim3 'intensity 10)
;; Sidelight
(set-attr! state dim7 'intensity (flash 5))
state))
(define cue-list
(list (cue 0 (make-empty-state)
#:fade-up 1
#:fade-down 1)
(cue 1 example-state-1
#:fade-up 3
#:fade-down 5)
(cue 2 example-state-2
#:fade-up 3
#:fade-down 1
#:down-delay 3)
(cue 3 (make-empty-state)
#:fade-up 0
#:fade-down 2)))
;; Create a playback for the cue list, and register it for output
(define pb
(make-playback cue-list))
(register-state! pb)
;; Jump to zero (blackout) cue
(cut-to-cue-number! pb 0)
;; Left-hand playback buttons
(define go1 (make-midi-led #:channel 14 #:note-number 20))
(set-midi-led! go1 #t)
(define stop1 (make-midi-led #:channel 14 #:note-number 24))
(set-midi-led! stop1 #t)
(register-midi-note-callback!
#:channel 14
#:note-number 12
#:func (lambda () (go! pb)))
(register-midi-note-callback!
#:channel 14
#:note-number 24
#:func (lambda () (display "Stop/back!\n")))
;; Right-hand playback buttons
(define go2 (make-midi-led #:channel 14 #:note-number 23))
(set-midi-led! go2 #t)
(define stop2 (make-midi-led #:channel 14 #:note-number 27))
(set-midi-led! stop2 #t)
(register-midi-note-callback!
#:channel 14
#:note-number 15
#:func (lambda () (go! pb)))
(register-midi-note-callback!
#:channel 14
#:note-number 27
#:func (lambda () (display "Stop/back!\n")))
|