Demand demand results from demand rate ugens
superclass: MultiOutUGen
Demand.ar(trig, reset, [..ugens..])
When there is a trigger at the trig input, a value is demanded each ugen in the list and output. 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 are reset.
trig - trigger. Can be any signal. A trigger happens when the signal changes from non-positive to positive.
reset - trigger. Resets the list of ugens when triggered.
// examples
(
{
var trig, seq, freq;
trig = Impulse.kr(24);
seq = Drand([Dseq((1..5).mirror1, 1), Drand((4..10), 8)], 2000);
freq = Demand.kr(trig, 0, seq * 100);
SinOsc.ar(freq + [0,0.7]).cubed.cubed.scaleneg(MouseX.kr(-1,1)) * 0.1;
}.play;
)
(
{
var trig, seq, freq;
trig = Impulse.kr(12);
seq = Drand([Dseq((1..5).mirror1, 1), Drand((4..10), 8)], 2000) * Drand([1,2,4,8],2000);
freq = Demand.kr(trig, 0, seq * 100);
SinOsc.ar(freq + [0,0.7]).cubed.cubed.scaleneg(MouseX.kr(-1,1)) * 0.1;
}.play;
)
(
{
var freq, trig, reset, seq;
trig = Impulse.kr(10);
seq = Diwhite(60, 72, inf).midicps;
freq = Demand.kr(trig, 0, seq);
SinOsc.ar(freq + [0,0.7]).cubed.cubed * 0.1;
}.play;
)
(
{
var freq, trig, reset, seq;
trig = Impulse.kr(10);
seq = Dseq([72, 75, 79, Drand([82,84,86])], inf).midicps;
freq = Demand.kr(trig, 0, seq);
SinOsc.ar(freq + [0,0.7]).cubed.cubed * 0.1;
}.play;
)
(
{
var freq, trig, reset, seq;
trig = Impulse.kr(10);
seq = Dswitch1(
[
Diwhite(60, 72, inf),
Dseq([72, 75, 79, Drand([82,84,86])], inf)
],
LFPulse.kr(0.2)
);
freq = Demand.kr(trig, 0, seq.midicps);
SinOsc.ar(freq + [0,0.7]).cubed.cubed * 0.1;
}.play;
)
(
{
var freq, trig, reset, seq1, seq2;
trig = Impulse.kr(10);
seq1 = Drand([72, 75, 79, 82] - 12, inf).midicps;
seq2 = Dseq([72, 75, 79, Drand([82,84,86])], inf).midicps;
freq = Demand.kr(trig, 0, [seq1, seq2]);
SinOsc.ar(freq + [0,0.7]).cubed.cubed * 0.1;
}.play;
)
(
{
var trig, seq;
trig = Impulse.kr(8);
seq = Drand([
Dseq([4,0,0,1,2,1,0,1]),
Dseq([4,0,2,0,1,0,1,1]),
Dseq([4,0,0,2,0,0,1,1]),
Dseq([4,0,1,2,0,1,2,0]),
Dseq([4,1,1,1,2,2,3,3]),
Dseq([4,1,0,1,0,1,0,1])
], inf);
trig = Demand.kr(trig, 0, seq * 0.4) * trig;
{LPF.ar(PinkNoise.ar, 5000)}.dup * Decay.kr(trig, 0.5);
}.play;
)