changeset 1847:eca35927bdd4

add qpan Ignore-this: af3eafc1acf82df2ed7e1aa17e1dcc6a
author drewp@bigasterisk.com
date Sun, 10 Jun 2018 21:52:23 +0000
parents 23765682d925
children f1618af3b9cb
files light9/effect/effecteval.py
diffstat 1 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/light9/effect/effecteval.py	Sun Jun 10 21:07:42 2018 +0000
+++ b/light9/effect/effecteval.py	Sun Jun 10 21:52:23 2018 +0000
@@ -31,7 +31,9 @@
     return a + (b - a) * t
 def noise(t):
     return pnoise1(t % 1000.0, 2)
-
+def clamp(lo, hi, x):
+    return max(lo, min(hi, x))
+    
 class EffectEval(object):
     """
     runs one effect's code to turn effect attr settings into output
@@ -127,6 +129,19 @@
             })
     return out
 
+def effect_qpan(effectSettings, strength, songTime, noteTime):
+    dev = L9['device/q2']
+    dur = 4
+    col = scale(scale('#ffffff', strength),
+                effectSettings.get(L9['colorScale']) or '#ffffff')
+    return {
+        (dev, L9['color']): col,
+        (dev, L9['focus']): 0.589,
+        (dev, L9['rx']): lerp(0.778, 0.291, clamp(0, 1, noteTime / dur)),
+        (dev, L9['ry']): 0.383,
+        (dev, L9['zoom']): 0.714,
+    }
+
 def effect_pulseRainbow(effectSettings, strength, songTime, noteTime):
     out = {}
     tint = effectSettings.get(L9['tint'], '#ffffff')