changeset 1486:9b2fc3e2b223

pulserainbow effect Ignore-this: ab3b6020c52da3ae99dd0e83e0ba759e
author drewp@bigasterisk.com
date Mon, 13 Jun 2016 08:38:55 +0000
parents e3c08d7824fa
children 8fab8267b88e
files light9/effect/effecteval.py
diffstat 1 files changed, 24 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/light9/effect/effecteval.py	Mon Jun 13 08:38:46 2016 +0000
+++ b/light9/effect/effecteval.py	Mon Jun 13 08:38:55 2016 +0000
@@ -154,6 +154,30 @@
             })
     return out
 
+def effect_pulseRainbow(effectSettings, strength, songTime):
+    out = {}
+    tint = effectSettings.get(L9['tint'], '#ffffff')
+    tintStrength = float(effectSettings.get(L9['tintStrength'], 0))
+    print tint, tintStrength
+    tr, tg, tb = hex_to_rgb(tint)
+    for n in range(1, 5+1):
+        scl = strength 
+        col = literalColor(
+            scl * lerp(nsin(songTime + n * .2), tr/255, tintStrength),
+            scl * lerp(nsin(songTime + n * .2 + .3), tg/255, tintStrength),
+            scl * lerp(nsin(songTime + n * .3 + .6), tb/255, tintStrength))
+
+        dev = L9['device/aura%s' % n]
+        out.update({
+            (dev, L9['color']): col,
+            (dev, L9['zoom']): .5,
+            })
+        out.update({
+        (dev, L9['rx']): lerp(.27, .7, (n-1)/4),
+        (dev, L9['ry']): lerp(.46, .52, (n-1)/4),
+            })
+    return out
+
 def effect_orangeSearch(effectSettings, strength, songTime):
     dev = L9['device/auraStage']
     return {(dev, L9['color']): '#c1905d',
@@ -162,29 +186,6 @@
             (dev, L9['zoom']): .88,
             }
     
-    tint = effectSettings.get(L9['tint'], '#ffffff')
-    tintStrength = float(effectSettings.get(L9['tintStrength'], 0))
-    print tint, tintStrength
-    tr, tg, tb = hex_to_rgb(tint)
-    for n in range(1, 5+1):
-        scl = strength * nsin(songTime + n * .3)**3
-        col = literalColor(
-            scl * lerp(nsin(songTime + n * .2), tr/255, tintStrength),
-            scl * lerp(nsin(songTime + n * .2 + .3), tg/255, tintStrength),
-            scl * lerp(nsin(songTime + n * .3 + .6), tb/255, tintStrength))
-
-        dev = L9['device/aura%s' % n]
-        out.update({
-            (dev, L9['color']): col,
-            (dev, L9['zoom']): .9,
-            })
-        ang = songTime * 4
-        out.update({
-        (dev, L9['rx']): lerp(.27, .7, (n-1)/4) + .2 * math.sin(ang+n),
-        (dev, L9['ry']): lerp(.46, .52, (n-1)/4) + .5 * math.cos(ang+n),
-            })
-    return out
-
 def effect_Strobe(effectSettings, strength, songTime):
     rate = 2
     duty = .3