aboutsummaryrefslogtreecommitdiff
path: root/guile
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2023-04-11 22:18:37 +0200
committerThomas White <taw@physics.org>2023-04-11 22:18:37 +0200
commit14b3c31368e869519104403f51648b63a7a5ba25 (patch)
treef7d9a9c16e3bd91dd9a5d20e5d5cb227163fbbfe /guile
parent8b64630d79c3d485dea7161c3e917e06f75ecc4a (diff)
Fixture library: almost full Robe DL7S definition
Diffstat (limited to 'guile')
-rw-r--r--guile/starlet/fixture-library/robe/dl7s.scm296
1 files changed, 283 insertions, 13 deletions
diff --git a/guile/starlet/fixture-library/robe/dl7s.scm b/guile/starlet/fixture-library/robe/dl7s.scm
index 303b393..81e4261 100644
--- a/guile/starlet/fixture-library/robe/dl7s.scm
+++ b/guile/starlet/fixture-library/robe/dl7s.scm
@@ -1,7 +1,7 @@
;;
;; starlet/fixture-library/robe/dl7s/mode1.scm
;;
-;; Copyright © 2020-2021 Thomas White <taw@bitwiz.org.uk>
+;; Copyright © 2020-2023 Thomas White <taw@bitwiz.org.uk>
;;
;; This file is part of Starlet.
;;
@@ -28,6 +28,9 @@
#:export (<robe-dl7s-mode1>))
+;; FIXME: Gobo shaking (both wheels)
+;; FIXME: Rainbow effect on colour wheel (???)
+;; FIXME: Fine control iris, zoom
(define-fixture
<robe-dl7s-mode1>
@@ -36,28 +39,295 @@
(attr-continuous intensity '(0 100) 0)
(attr-continuous pan '(0 540) 270)
(attr-continuous tilt '(0 270) 135)
- (attr-list strobe '(#t #f) #f)
+ (attr-list strobe '(#f on random) #f)
+ (attr-continuous strobe-frequency '(0 25) 25 "Frequencies not calibrated")
(attr-list prism '(#t #f) #f)
(attr-colour colour white)
- (attr-continuous colour-temperature '(2700 8000) 3200))
-
- (set-chan16 50 (percent->dmxval16 (get-attr intensity)))
+ (attr-list colwheel '(#f
+ lee4-medium-bastard-amber
+ lee10-medium-yellow
+ lee19-fire
+ lee26-bright-red
+ lee58-lavender
+ lee68-sky-blue
+ lee71-tokyo-blue
+ lee79-just-blue
+ lee88-lime-green
+ lee90-dark-yellow-green
+ lee100-spring-yellow
+ lee101-yellow
+ lee102-light-amber
+ lee103-straw
+ lee104-deep-amber
+ lee105-orange
+ lee106-primary-red
+ lee111-dark-pink
+ lee115-peacock-blue
+ lee116-medium-blue-green
+ lee117-steel-blue
+ lee118-light-blue
+ lee119-dark-blue
+ lee120-deep-blue
+ lee121-lee-green
+ lee128-bright-pink
+ lee131-marine-blue
+ lee132-medium-blue
+ lee134-golden-amber
+ lee135-deep-golden-amber
+ lee136-pale-lavender
+ lee137-special-lavender
+ lee138-pale-green
+ lee139-primary-green
+ lee141-bright-blue
+ lee147-apricot
+ lee148-bright-rose
+ lee152-pale-gold
+ lee154-pale-rose
+ lee157-pink
+ lee158-deep-orange
+ lee162-bastard-amber
+ lee164-flame-red
+ lee165-daylight-blue
+ lee169-lilac-tint
+ lee170-deep-lavender
+ lee172-lagoon-blue
+ lee179-chrome-orange
+ lee180-dark-lavender
+ lee181-congo-blue
+ lee197-alice-blue
+ lee201-full-ct-blue
+ lee202-half-ct-blue
+ lee203-quarter-ct-blue
+ lee204-full-ct-orange
+ lee205-half-ct-orange
+ lee206-quarter-ct-orange
+ lee247-lee-minus-green
+ lee248-half-minus-green
+ lee281-threequarter-ct-blue
+ lee285-threequarter-ct-orange
+ lee352-glacier-blue
+ lee353-lighter-blue
+ lee715-cabana-blue
+ lee778-millennium-gold
+ lee793-vanity-fair
+ deep-red
+ deep-blue
+ orange
+ green
+ magenta
+ congo-blue
+ pink
+ lavender
+ laser-green
+ ctb
+ minus-green
+ minus-half-green)
+ #f "Has priority over 'colour' attribute")
+ (attr-continuous colour-temperature '(2700 8000) 3200)
+ (attr-list animation-wheel '(#t #f) #f)
+ (attr-continuous animation-wheel-position '(-100 100) 0)
+ (attr-continuous animation-wheel-speed '(-100 100) 0)
+ (attr-list gobo '(#f
+ water
+ rugged-isles
+ quadrangle-screen
+ whirl
+ breakup
+ blur-breakup
+ knitting
+ grit)
+ #f)
+ (attr-continuous gobo-shift '(0 100) 0)
+ (attr-list rotating-gobo '(#f
+ rose
+ water-line
+ tree-trunk
+ high-window
+ grid
+ clouds)
+ #f)
+ (attr-continuous rotating-gobo-speed '(-100 100) 0)
+ (attr-continuous prism-rotation-speed '(-100 100) 0)
+ (attr-continuous frost '(0 100) 0)
+ (attr-continuous zoom '(0 100) 50)
+ (attr-continuous iris '(0 100) 0)
+ (attr-continuous barndoor-all-rotation '(-45 45) 0)
+ (attr-continuous barndoor1 '(0 100) 0)
+ (attr-continuous barndoor2 '(0 100) 0)
+ (attr-continuous barndoor3 '(0 100) 0)
+ (attr-continuous barndoor4 '(0 100) 0)
+ (attr-continuous barndoor1-rotation '(-25 25) 0)
+ (attr-continuous barndoor2-rotation '(-25 25) 0)
+ (attr-continuous barndoor3-rotation '(-25 25) 0)
+ (attr-continuous barndoor4-rotation '(-25 25) 0)
+ (attr-continuous focus '(0 100) 50))
(set-chan16 1 (scale-to-range (get-attr pan) '(0 540) '(0 65535)))
(set-chan16 3 (scale-to-range (get-attr tilt) '(0 270) '(0 65535)))
- (set-chan8 49 (if (get-attr strobe) 95 32))
-
- (set-chan8 28 (if (get-attr prism) 50 0))
-
+ (set-chan8 5 0) ;; Pan/tilt speed/time: maximum speed
(set-chan8 6 0) ;; Power/special function: default
(set-chan8 7 0) ;; Colour mode: default
+ (set-chan8 8
+ (lookup
+ (get-attr colwheel)
+ '((#f 0)
+ (lee4-medium-bastard-amber 2)
+ (lee10-medium-yellow 4)
+ (lee19-fire 6)
+ (lee26-bright-red 8)
+ (lee58-lavender 10)
+ (lee68-sky-blue 12)
+ (lee71-tokyo-blue 14)
+ (lee79-just-blue 16)
+ (lee88-lime-green 18)
+ (lee90-dark-yellow-green 20)
+ (lee100-spring-yellow 22)
+ (lee101-yellow 24)
+ (lee102-light-amber 26)
+ (lee103-straw 28)
+ (lee104-deep-amber 30)
+ (lee105-orange 32)
+ (lee106-primary-red 34)
+ (lee111-dark-pink 36)
+ (lee115-peacock-blue 38)
+ (lee116-medium-blue-green 40)
+ (lee117-steel-blue 42)
+ (lee118-light-blue 44)
+ (lee119-dark-blue 46)
+ (lee120-deep-blue 48)
+ (lee121-lee-green 50)
+ (lee128-bright-pink 52)
+ (lee131-marine-blue 54)
+ (lee132-medium-blue 56)
+ (lee134-golden-amber 58)
+ (lee135-deep-golden-amber 60)
+ (lee136-pale-lavender 62)
+ (lee137-special-lavender 64)
+ (lee138-pale-green 66)
+ (lee139-primary-green 68)
+ (lee141-bright-blue 70)
+ (lee147-apricot 72)
+ (lee148-bright-rose 74)
+ (lee152-pale-gold 76)
+ (lee154-pale-rose 78)
+ (lee157-pink 80)
+ (lee158-deep-orange 82)
+ (lee162-bastard-amber 84)
+ (lee164-flame-red 86)
+ (lee165-daylight-blue 88)
+ (lee169-lilac-tint 90)
+ (lee170-deep-lavender 92)
+ (lee172-lagoon-blue 94)
+ (lee179-chrome-orange 96)
+ (lee180-dark-lavender 98)
+ (lee181-congo-blue 100)
+ (lee197-alice-blue 102)
+ (lee201-full-ct-blue 104)
+ (lee202-half-ct-blue 106)
+ (lee203-quarter-ct-blue 108)
+ (lee204-full-ct-orange 110)
+ (lee205-half-ct-orange 112)
+ (lee206-quarter-ct-orange 114)
+ (lee247-lee-minus-green 116)
+ (lee247-half-minus-green 118)
+ (lee281-threequarter-ct-blue 120)
+ (lee285-threequarter-ct-orange 122)
+ (lee352-glacier-blue 124)
+ (lee353-lighter-blue 126)
+ (lee715-cabana-blue 128)
+ (lee778-millennium-gold 130)
+ (lee793-vanity-fair 132)
+ (deep-red 193)
+ (deep-blue 195)
+ (orange 197)
+ (green 199)
+ (magenta 201)
+ (congo-blue 203)
+ (pink 205)
+ (lavender 207)
+ (laser-green 209)
+ (ctb 211)
+ (minus-green 213)
+ (minus-half-green 215))))
+
+ (let ((cmy (colour-as-cmy (get-attr colour))))
+ (set-chan16 9 (percent->dmxval16 (cyan cmy)))
+ (set-chan16 11 (percent->dmxval16 (magenta cmy)))
+ (set-chan16 13 (percent->dmxval16 (yellow cmy))))
+
(set-chan8 15
(scale-and-clamp-to-range (get-attr colour-temperature)
'(8000 2700) '(0 255)))
- (let ((cmy (colour-as-cmy (get-attr colour))))
- (set-chan16 9 (percent->dmxval16 (car cmy)))
- (set-chan16 11 (percent->dmxval16 (cadr cmy)))
- (set-chan16 13 (percent->dmxval16 (caddr cmy)))))
+ (set-chan8 16 0) ;; Green correction: uncorrected white
+ (set-chan8 17 0) ;; Colour mix control: virtual colour wheel has priority
+ (set-chan8 18 0) ;; Rotating gobo selection speed: maximum
+ (set-chan8 19 0) ;; Everything time: off (???)
+
+ (let ((ani-active (get-attr animation-wheel)))
+ (set-chan8 20 (if ani-active
+ 0
+ (scale-to-range (get-attr animation-wheel-position)
+ '(-100 100) '(19 127)))) ;; 73 = stop
+ (set-chan8 21 (scale-to-range (get-attr animation-wheel-speed)
+ '(100 -100) '(1 255)))) ;; 128 = stop
+ (set-chan8 22 0) ;; Animation wheel macro: no function
+
+ (set-chan8 23 (lookup
+ (get-attr gobo)
+ '((#f 0)
+ (water 7)
+ (rugged-isles 14)
+ (quadrangle-screen 21)
+ (whirl 28)
+ (breakup 36)
+ (blur-breakup 43)
+ (knitting 50)
+ (grit 57))))
+ (set-chan8 24 (percent->dmxval8 (get-attr gobo-shift)))
+
+ (set-chan8 25 (lookup
+ (get-attr rotating-gobo)
+ '((#f 0)
+ (rose 7)
+ (water-line 11)
+ (tree-trunk 15)
+ (high-window 20)
+ (grid 24)
+ (clouds 29))))
+ (set-chan8 26 (scale-to-range (get-attr rotating-gobo-speed)
+ '(-100 100) '(1 255))) ;; 128 = stop
+ (set-chan8 27 0) ;; Rotating gobo fine adjustment (default)
+
+ (set-chan8 28 (if (get-attr prism) 50 0))
+ (set-chan8 29 (scale-to-range (get-attr prism-rotation-speed)
+ '(100 -100) '(1 255))) ;; 128 = stop, <128=forwards
+ (set-chan8 30 (scale-to-range (get-attr frost) '(0 100) '(0 180)))
+ (set-chan8 31 (scale-to-range (get-attr iris) '(0 100) '(0 180)))
+ (set-chan16 33 (percent->dmxval16 (get-attr zoom)))
+ (set-chan16 35 (percent->dmxval16 (get-attr focus)))
+
+ (set-chan8 38 (scale-to-range (get-attr barndoor-all-rotation) '(-45 45) '(0 255)))
+ (set-chan8 39 (percent->dmxval8 (get-attr barndoor1)))
+ (set-chan8 40 (scale-to-range (get-attr barndoor1-rotation) '(-25 25) '(0 255)))
+ (set-chan8 41 (percent->dmxval8 (get-attr barndoor2)))
+ (set-chan8 42 (scale-to-range (get-attr barndoor2-rotation) '(-25 25) '(0 255)))
+ (set-chan8 43 (percent->dmxval8 (get-attr barndoor3)))
+ (set-chan8 44 (scale-to-range (get-attr barndoor3-rotation) '(-25 25) '(0 255)))
+ (set-chan8 45 (percent->dmxval8 (get-attr barndoor4)))
+ (set-chan8 46 (scale-to-range (get-attr barndoor4-rotation) '(-25 25) '(0 255)))
+ (set-chan8 47 0) ;; Framing shutter macro: no function
+ (set-chan8 48 128) ;; Framing shutter macro speed: default
+
+ (let ((strb (get-attr strobe)))
+ (set-chan8 49
+ (cond
+ ((not strb) 32)
+ ((eq? strb 'on)
+ (scale-to-range (get-attr strobe-frequency) '(1 25) '(64 95)))
+ ((eq? strb 'random)
+ (scale-to-range (get-attr strobe-frequency) '(1 25) '(192 223))))))
+
+ (set-chan16 50 (percent->dmxval16 (get-attr intensity))))