#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)))) ]