lorand / hirand
The region will play if the random number is equal to or higher than
lorand, and lower than
Random values. The player will generate a new random number on every note-on event, in the range 0 to 1.
lorand=0.2 hirand=0.4 lorand=0.4 hirand=1
The most common application for this is randomized round robins. Note that
hirand for a region should equal
lorand for the next region - if we had, for
hirand=0.249 for the first region and
lorand=0.25 for the next,
that would result in no sound playing if the random number generated was, for
example, 0.2496343491. So, an 0.001 chance of no sound at all - a difficult
problem to spot when testing.
<region> hirand=0.25 sample=kick_vl1_rr1.wav <region> lorand=0.25 hirand=0.5 sample=kick_vl1_rr2.wav <region> lorand=0.5 hirand=0.75 sample=kick_vl1_rr3.wav <region> lorand=0.75 sample=kick_vl1_rr4.wav
It is also possible to combine this with the seq_length and seq_position opcodes to split round robins into two subsets, and randomize within each subset. This results in randomization, but prevents the possibility of the same sample being triggered twice in a row when the random number generated falls into the same range as the previously generated number. This can be good when there are a lot (6 or more) round robin samples available. The code for 8 samples split into two sequential subsets might look like this:
<region> seq_length=2 seq_position=1 hirand=0.25 sample=kick_vl1_rr1.wav <region> seq_length=2 seq_position=1 lorand=0.25 hirand=0.5 sample=kick_vl1_rr2.wav <region> seq_length=2 seq_position=1 lorand=0.5 hirand=0.75 sample=kick_vl1_rr3.wav <region> seq_length=2 seq_position=1 lorand=0.75 sample=kick_vl1_rr4.wav <region> seq_length=2 seq_position=2 hirand=0.25 sample=kick_vl1_rr5.wav <region> seq_length=2 seq_position=2 lorand=0.25 hirand=0.5 sample=kick_vl1_rr6.wav <region> seq_length=2 seq_position=2 lorand=0.5 hirand=0.75 sample=kick_vl1_rr7.wav <region> seq_length=2 seq_position=2 lorand=0.75 sample=kick_vl1_rr8.wav
There are other potential uses which have nothing to do with round robins, for example having key fingering noises on a clarinet trigger sometimes (but not always) when a note is played.
|hirand||SFZ v1||float||1||0 to 1|
Category: Region Logic, Internal Conditions