From 9f80dbf5c3b8ad17ea2d563e729af1171a3c6d86 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 26 Jun 2022 21:35:06 +0200 Subject: Implement missing strobe channels (including in documentation) --- .../fixture-library/stairville/octagon-theater-cw-ww.scm | 14 ++++++++++++-- guile/starlet/fixture-library/stairville/z120m.scm | 11 +++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) (limited to 'guile') diff --git a/guile/starlet/fixture-library/stairville/octagon-theater-cw-ww.scm b/guile/starlet/fixture-library/stairville/octagon-theater-cw-ww.scm index b42de26..cbabe1e 100644 --- a/guile/starlet/fixture-library/stairville/octagon-theater-cw-ww.scm +++ b/guile/starlet/fixture-library/stairville/octagon-theater-cw-ww.scm @@ -30,11 +30,21 @@ (fixture-attributes (attr-continuous 'intensity '(0 100) 0) - (attr-continuous 'colour-temperature '(2800 6400) 3200)) + (attr-continuous 'colour-temperature '(2800 6400) 3200) + (attr-list 'strobe '(#f #t) #f) + ;; FIXME: Strobe frequency is not stated in manual. + ;; I've assumed that "slow" means 1 Hz, "fast" 25 Hz + (attr-continuous 'strobe-frequency '(1 25) 1)) (let ((coltemp (get-attr 'colour-temperature))) (set-chan8 1 (scale-and-clamp-to-range coltemp '(2800 6400) '(0 255))) (set-chan8 2 (scale-and-clamp-to-range coltemp '(2800 6400) '(255 0)))) - (set-chan8 3 0) ;; Strobe + (if (get-attr 'strobe) + (set-chan8 3 (scale-and-clamp-to-range + (get-attr 'strobe-frequency) + '(1 25) + '(16 255))) + (set-chan8 3 0)) + (set-chan8 3 0) ;; Strobe (set-chan8 4 0) ;; Mode (0-15 = direct control) (set-chan8 5 (percent->dmxval8 (get-attr 'intensity)))) diff --git a/guile/starlet/fixture-library/stairville/z120m.scm b/guile/starlet/fixture-library/stairville/z120m.scm index 73037ac..60e34b3 100644 --- a/guile/starlet/fixture-library/stairville/z120m.scm +++ b/guile/starlet/fixture-library/stairville/z120m.scm @@ -31,12 +31,19 @@ (fixture-attributes (attr-continuous 'intensity '(0 100) 0) - (attr-colour 'colour white)) + (attr-colour 'colour white) + (attr-continuous 'strobe-frequency '(1 25) 1) + (attr-list 'strobe '(#f #t) #f)) (let ((intensity (get-attr 'intensity)) (rgbw (colour-as-rgbw (get-attr 'colour)))) (set-chan8 1 (percent->dmxval8 intensity)) - (set-chan8 2 255) + (if (get-attr 'strobe) + (set-chan8 2 (scale-and-clamp-to-range + (get-attr 'strobe-frequency) + '(1 25) + '(106 165))) + (set-chan8 2 255)) (set-chan8 3 (percent->dmxval8 (car rgbw))) (set-chan8 4 (percent->dmxval8 (cadr rgbw))) (set-chan8 5 (percent->dmxval8 (caddr rgbw))) -- cgit v1.2.3