openvisengine/rust-agent/presets/wonder-bout.ava
2026-10-21 14:13:58 +00:00

40 lines
1.2 KiB
Text

# Adapted from "wonder 'bout" by zamuz (Winamp AVS / visbot.net)
# The original spawned Texer II ring sprites: ss = ss + .05 per frame,
# size = |ss| * min(w,h)*.006, random color & position on wrap,
# grow-scale sampled from the bass (getspec(.1,.1,0)).
name: wonder 'bout
author: zamuz (adapted)
mode: lines
blend: additive
persist: 0.88
linewidth: 1.8
[init]
n = 480
groups = 12
hue = 0
[frame]
# expansion speed rises with the smoothed bass (original: reg01 = .05/frame)
speed = 0.25 + bass_att * 0.9
hue = hue + dt * 0.1
[point]
g = floor(i * groups)
gi = frac(i * groups)
# per-ring phase, drifting at its own tempo
ph = frac(rand(g * 7.3 + 1) + time * speed * (0.7 + rand(g + 31) * 0.6))
px0 = rand(g + 3.7) * 1.7 - 0.85
py0 = rand(g + 9.1) * 1.7 - 0.85
rad = ph * (0.3 + bass * 0.6)
cr = rand(g + 21.7)
cg = rand(g + 15.3)
cb = rand(g + 27.9)
fade = (1 - ph) * (0.25 + ph * 2.2)
a = 6.28318 * (gi * 1.05 - 0.025)
x = px0 + cos(a) * rad / aspect
y = py0 + sin(a) * rad
red = cr * fade * (0.7 + 0.3 * sin(hue * 6.28318 + g))
green = cg * fade * (0.7 + 0.3 * sin(hue * 6.28318 + g + 2.09))
blue = cb * fade * (0.7 + 0.3 * sin(hue * 6.28318 + g + 4.19))
skip = if(below(gi, 0.025), 1, 0)