#lang scribble/manual
@(require (for-label racket))

@title{(phasor trig rate start end resetpos)}


triggered linear ramp between two levels.  Starts a linear ramp
when trig input crosses from non-positive to positive.

trig       - sets phase to resetPos (default: 0, equivalent to start)
rate       - rate value in 1 / frameDur (at 44.1 kHz sample rate: rate 
             1 is eqivalent to 44100/sec)
start, end - start and end points of ramp
resetPos   - determines where to jump to on recieving a trigger.  the
	value at that position can be calculated as follows:
	(end - start) * resetPos

phasor controls sine frequency: end frequency matches a second sine wave.


@racketblock[
(let* ((r (mouse-x kr 0.2 2 1 0.1))
       (t (impulse ar r 0))
       (x (phasor ar t (fdiv r sample-rate) 0 1 0))
       (f (mce2 (lin-lin x 0 1 600 1000) 1000)))
  (audition (out 0 (mul (sin-osc ar f 0) 0.2))))
]


