// CurveTable: flexible Curve/Line Segment table generator // make one CurveTable c; // coeffs are all FLOATS, specifying proportional times, values, and curvature: // [time0, value0, curvature to next, time1, value1, curvature,.. // timeN-1, valueN-1, curvaturen-1, timeN, valueN] // times => ascending unitless values (NOT Chuck Time values) // values => whatever // curvature(0) => linear // curvature(<0) => convex // curvature(>0) => concave // see: // http://www.music.columbia.edu/cmc/Rtcmix/docs/scorefile/maketable.html#curve // for more documentation // set [0., 0., -0.5, 1., 1., 0.5, 2., -1.] => c.coefs; // create an envelope to scan through the table values Envelope e => blackhole; e.duration(10000::ms); 0. => e.value; e.keyOn(); //ramp to 1 in 10 seconds // patch Phasor p => c => dac; // set 440. => p.freq; // ready while (true) { // print <<< e.value(), c.lookup(e.value()) >>>; // end if(e.value() == 1.) break; // advance time 10::ms => now; }