diff --git a/light9/effect/effecteval.py b/light9/effect/effecteval.py --- a/light9/effect/effecteval.py +++ b/light9/effect/effecteval.py @@ -154,6 +154,30 @@ def effect_animRainbow(effectSettings, s }) 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 @@ def effect_orangeSearch(effectSettings, (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