hsc3-0.3: Help/UGen/Demand/tDuty.help.lhs
tDuty rate duration reset doneAction level gap
Demand results as trigger from demand rate ugens.
A value is demanded each ugen in the list and output as a trigger
according to a stream of duration values. The unit generators in
the list should be 'demand' rate. When there is a trigger at the
reset input, the demand rate ugens in the list and the duration are
reset. The reset input may also be a demand ugen, providing a
stream of reset times.
duration - time values. Can be a demand ugen or any signal.
The next trigger value is acquired after the
duration provided by the last time value.
reset - trigger or reset time values. Resets the list of ugens
and the duration ugen when triggered. The reset input
may also be a demand ugen, providing a stream of reset
times.
doneAction - a doneAction that is evaluated when the duration
stream ends.
level - demand ugen providing the output values.
gap - if true the dirst duration precedes the first level,
else it follows it.
Play a little rhythm
> do { d <- dseq dinf (mce [0.1, 0.2, 0.4, 0.3])
> ; audition (out 0 (tDuty AR d 0 DoNothing 1 1)) }
Amplitude changes
> do { d0 <- dseq dinf (mce [0.1, 0.2, 0.4, 0.3])
> ; d1 <- dseq dinf (mce [0.1, 0.4, 0.01, 0.5, 1.0])
> ; audition (out 0 (ringz (tDuty AR d0 0 DoNothing d1 1) 1000 0.1)) }
Mouse control.
> do { d <- dseq dinf (mce [0.1, 0.4, 0.01, 0.5, 1.0])
> ; let x = mouseX KR 0.003 1 Exponential 0.1
> in audition (out 0 (ringz (tDuty AR x 0 DoNothing d 1) 1000 0.1)) }
Note that the 440 is the shorter pitch, since gap is set to false
> do { d0 <- dser 12 (mce [0.1, 0.3])
> ; d1 <- dser 12 (mce [440, 880])
> ; let t = tDuty AR d0 0 RemoveSynth d1 0
> in audition (out 0 (sinOsc AR (latch t t) 0 * 0.1)) }