Visualization... honestly I couldn't think of any better name for it.
Really, it's a Windows Media Player Effect imitate, not that good to be honest, but I spent a little over a hour experimenting with drawscroll and stuff.
Check out the video I made of myself making it, http://bluethen.the-brotherhood.org/Vis/Vis.htm
;Visualization 1.0
;Made by BlueThen on May 12, 2008.
;To install, paste this remote into your remotes (alt + r)
;then type /vis or right click the channel and click Visualization to play.
;BlueThen.com :D
alias vis {
window -paoCzdk0 +tnbL @Vis -1 -1 400 400 | window -poCzdhk0 +tnbL @Vis.buf -1 -1 800 800
window -poCzdhk0 +tnbL @vis.buf2 -1 -1 800 800 | vis.init
}
alias -l vis.init {
set %vis.r 100 | set %vis.g 0 | set %vis.b 255 | set %vis.fr dec | set %vis.fg inc
set %vis.fb dec | drawfill @vis.buf 1 1 1 1 | set %vis.a 0 | set %vis.a2 0 | %vis.x = 4
while (%vis.x) {
drawline @vis.buf 16711780 10 $calc(400 + (300 * $cos($calc(90 * %vis.x)).deg)) $calc(400 + (300 * $sin($calc(90 * %vis.x)).deg)) $calc(400 + (300 * $cos($calc(90 * (1 + %vis.x))).deg)) $calc(400 + (300 * $sin($calc(90 * (%vis.x + 1))).deg))
dec %vis.x
}
set %vis.i 1 | set %vis.& inc | drawcopy -m @vis.buf 0 0 800 800 @vis 0 0 400 400 | vis.frame
}
alias -l vis.frame {
if (%vis.c != y) {
drawfill @vis.buf 1 1 1 1 | %vis.x = 4
while (%vis.x) {
drawline -r @vis.buf $rgb(%vis.r, %vis.g, %vis.b) 10 $calc(400 + (300 * $cos($calc(%vis.a + (90 * %vis.x))).deg)) $calc(400 + (300 * $sin($calc(%vis.a + (90 * %vis.x))).deg)) $calc(400 + (300 * $cos($calc(%vis.a + (90 * (1 + %vis.x)))).deg)) $calc(400 + (300 * $sin($calc(%vis.a + (90 * (%vis.x + 1)))).deg))
dec %vis.x
}
drawcopy -m @vis.buf 0 0 800 800 @vis.buf2 0 0 800 800 | inc %vis.a 4 | inc %vis.a2 6
%vis.fr %vis.r $r(1,4) | %vis.fg %vis.g $r(1,4) | %vis.fb %vis.b $r(1,4)
if (%vis.r > 250) { set %vis.fr dec } | if (%vis.r < 10) { set %vis.fr inc }
if (%vis.g > 250) { set %vis.fg dec } | if (%vis.g < 10) { set %vis.fg inc }
if (%vis.b > 250) { set %vis.fb dec } | if (%vis.b < 10) { set %vis.fb inc } | %vis.y = 400
while (%vis.y) { drawscroll @vis.buf2 $calc((0.01 * %vis.y) + %vis.i) 0 0 $calc((%vis.y * 2) -2) 900 4 | dec %vis.y }
drawdot -r @vis.buf2 $rgb($calc(255- %vis.r), $calc(255- %vis.g), $calc(255- %vis.b)) 30 $calc(400 + (200 * $cos(%vis.a2).deg)) $calc(400 + (200 * $sin(%vis.a2).deg))
drawdot -r @vis.buf2 $rgb($calc(255- %vis.r), $calc(255- %vis.g), $calc(255- %vis.b)) 30 $calc(400 + (200 * $cos($calc(180 + %vis.a2)).deg)) $calc(400 + (200 * $sin($calc(%vis.a2 + 180)).deg))
%vis.& %vis.i 4
if (%vis.i > 100) set %vis.& dec
if (%vis.i < -100) set %vis.& inc
drawcopy -m @vis.buf2 0 0 800 800 @vis.buf 0 0 800 800
drawcopy -m @vis.buf 0 0 800 800 @vis 0 0 400 400 | .timer 1 0 vis.frame
}
else unset %vis.c
}
on *:close:@vis: set %vis.c y | window -c @vis.buf | window -c @vis.buf2 | unset %vis.r %vis.g %vis.b %vis.fg %vis.fb %vis.a %vis.a2 %vis.x %vis.i %vis.& %vis.y %vis.fr
alias -l getangle2 {
%p1.x = $1 | %p1.y = $2 | %p2.x = $3 | %p2.y = $4 | %p3.x = %p2.x | %p3.y = %p1.y | %opposite = $sqrt($calc((%p2.x - %p3.x)^2 + (%p2.y - %p3.y)^2))
%hypotenuse = $sqrt($calc((%p2.x - %p1.x)^2 + (%p2.y - %p1.y)^2)) | %angle = $asin($calc( %opposite / %hypotenuse )).deg
if (%p1.y < %p2.y) %angle = $calc(360 - %angle) | if ((%p1.x > %p2.x) && (%p1.y > %p2.y)) %angle = $calc(180 - %angle)
elseif ((%p1.x > %p2.x) && (%p1.y < %p2.y)) %angle = $calc(180 +(360 - %angle)) | return $iif(%angle == 360,0,$v1)
}
menu channel,status {
Visualization: { vis }
}