trigphasor — A resettable linear ramp between two levels
Plugin opcode in scugens.
A resettable linear ramp between two levels (port of Supercollider's Phasor). trigphasor is a linear ramp between kstart and kend values. When its trigger input crosses from non-positive to positive, trigphasor's output will jump to its reset position (or to kstartif no reset value was given). Upon reaching the end of its ramp, trigphasor will wrap back to its start.
aindex trigphasor xtrig, xrate, kstart, kend [, kresetPos]
kindex trigphasor xtrig, xrate, kstart, kend [, kresetPos]
xtrig -- trigger, whenever this crosses from non-positive to possitive
xrate -- value added at each evaluation. When running at k-rate, this value is added at each cycle; at a-rate, this value is added per sample (ksmps per cycle).
kstart, kend -- start and end values of the phasor
xtrig -- trigger, whenever this crosses from non-positive to possitive
kresetPos -- if specified, this value will be used to jump to after a trigger. Otherwise, a trigger will set the position back to kstart
To generate a phasing signal from kstart to kend with a given period (duration of each cycle), the calculation would be:
rate = (end - start) / (period * sr)
In the case of phasor being used at k-rate, use kr instead of sr in the above formula.
Here is an example of the trigphasor opcode. It uses the file trigphasor.csd.
Example 1112. Example of the trigphasor opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> sr = 44100 ksmps = 64 nchnls = 2 0dbfs = 1.0 gisnd ftgen 0, 0, 0, -1, "finneganswake1.flac", 0, 0, 0 instr 1 ; use trigphasor to read a soundfile inumsamps = nsamp(gisnd) irate = 1 ; play at original speed ktrig metro 0.25 aphase trigphasor ktrig, irate, 0, inumsamps asig table3 aphase, gisnd asig *= linsegr:a(0, 0.01, 1, 0.01, 0) outch 1, asig endin </CsInstruments> <CsScore> i 1 0 20 f0 3600 </CsScore> </CsoundSynthesizer>