A demand-rate UGen which outputs a randomly shuffled version of an input
sequence. The sequence is only shuffled once, thus when repeats is greater
than one, the same randomized sequence will be repeated, until the UGen is
reset. This happens for example, when it is nested inside a Dseq , as shown in
the example "reshuffle".
Examples
// sequence of constants
play {
val in = Dshuf(Seq(3, 5, 7, 8, 11), inf)
val tr = Impulse.kr(5)
val v = Demand.kr(tr, in)
v.poll(tr)
val f = (v + 62).midicps
SinOsc.ar(f) * 0.1
}
// reshuffle
play {
val in = Dseq(Seq[GE](Dshuf(Seq(3, 5, 7, 8, 11), 4), 24), inf)
val tr = Impulse.kr(5)
val v = Demand.kr(tr, in)
v.poll(tr)
val f = (v + 62).midicps
SinOsc.ar(f) * 0.1
}
// audio rate
play {
val in = Dseq(Seq(Dshuf(Seq.fill(81)(util.Random.nextInt(10)), 5)), inf)
val tr = Impulse.ar(500)
val f = Demand.ar(tr, in) * 30 + 340
SinOsc.ar(f) * 0.1
}
// embedded structures
play {
val in = Dseq(repeats = inf, seq =
Dshuf(repeats = 8, seq = Seq[GE](
Drand(Seq(1, 2, 3), 1),
3,
Drand(Seq(20, 23, 56), 1),
7, 8.5)))
val tr = Impulse.kr(MouseX.kr(1, 40, 1))
val f = Demand.kr(tr, in) * 30 + 340
SinOsc.ar(f) * 0.1
}
A demand-rate UGen which outputs a randomly shuffled version of an input sequence. The sequence is only shuffled once, thus when
repeats
is greater than one, the same randomized sequence will be repeated, until the UGen is reset. This happens for example, when it is nested inside aDseq
, as shown in the example "reshuffle".Examples
Dshuf
Drand
Dser
Demand