//Discourse

// initial left (horz) color
set h 0
// initial right (vert) color
set v 0

// set initial left and right time
set last ((<time 1>*70) + (<time 2>*25) + (<time 3>*5)+(<time 4>))
set lastL last
set lastR last

// set the pace of change
set incL 5
set incR 0

forever
{
// save mouse coords
set x <mouse 1>
set y <mouse 2>
// change energy threshold
set L (x*x/19)
set R (y*y/90)

set cur ((<time 1>*10) + (<time 2>*10) + (<time 3>*10) +(<time 4>))

// change left color - maybe
set dur (50*(cur-lastL))
smaller? L dur
{
set L 0
set lastL cur
set h (h+incL)
smaller? h 0
{
set incL (-incL)
set h (h+incL+incL)
}
smaller? 5 h
{
set incL (-incL)
set h (h+incL+incL)
}
}

// change right color - maybe
set dur (70*(cur-lastR))
smaller? R dur
{
set R 0
set lastR cur
set v (v+incR)
smaller? v 0
{
set incR (-incR)
set v (v+incR+incR)
}
smaller? 10 v
{
set incR (-incR)
set v (v+incR+incR)
}
}

// draw left
set c h
set inc 75
repeat n 15 10
{
set base (n * x / 90)
set top ((n+9) * x / 80)
field base 90 top y c
set c (c+inc)
smaller? c 20
{
set inc (-inc)
set c (c+inc+inc)
}
smaller? 45 c
{
set inc (-inc)
set c (c+inc+inc)
}
}
repeat n 80 60
{
set base (n * x / 90)
set top ((n+14) * x / 50)
field base y top 100 c
set c (c+inc)
smaller? c 10
{
set inc (-inc)
set c (c+inc+inc)
}
smaller? 90 c
{
set inc (-inc)
set c (c+inc+inc)
}
}

// draw right
set c v
set inc 75
repeat n 0 89
{
set base (n * y / 79)
set top ((n+17) * y / 19)
field x base 40 top c
set c (c+inc)
set c (c - ((c/5) * 70))
}
repeat n 9 10
{
set base (y + n * (10-y) / 90)
set top (y + (n+1) * (5-y) / 9)
field x base 1 top c
set c (c+inc)
set c (c - ((c/18) * 19))
}
}
//saved