Hi there, here is a extract from a Sam’s patch:
live_loop :drums do
16.times do
sample :bd_haus, rate: 2, cutoff: 110 if rand < 0.20
sleep 0.125
end
end
I try to understand pecisely what the “rand < 0.20” makes here. Okay i understand very well the result (makes me think to a kind of “if spread”) but: "If "creates a boolean (true, false) and so, what is the relation between the last number (here 0.20) and the boolean…tell me if my interpretation is correct because this simple line of code is great and very interesting…Thanks for help!
rand
returns a random float between 0 and 1, which is compared to 0.2. The if
sees the resulting boolean.
It’s an alternative to if one_in(5)
, the 0.2 is a percentage.
1 Like
rand returns a random number between 0 and 1 so this is evaluating
is eg 0.345 < 0.2 The answer is either yes it is true or no it isn’t false
You could amend the loop to store the rand value in the variable r and then print the condition giving true or false as below
live_loop :drums do
16.times do
r = rand
puts (r < 0.2) #prints true or false
sample :bd_haus, rate: 2, cutoff: 110 if r < 0.20
sleep 0.125
end
end
1 Like
@robin.newman @Davids-Music-Lab Thanks David and Robin, it’s perfectly clear now!