Hi
back again for more noobish questions - is there a method for forcing (range 0, 10, 1) to return an integer please; I’m trying to index through a folder of samples, have already LMGTFY
Love
Brendan
Hi
back again for more noobish questions - is there a method for forcing (range 0, 10, 1) to return an integer please; I’m trying to index through a folder of samples, have already LMGTFY
Love
Brendan
a = [0,1,2,3]
live_loop :notes do
sample glocken, a.tick
sleep 2
end
I have NO idea why SPi was complaining about floats earlier - probably the difference between an array of explicit integers, and a ring/range returning floats. My bad.
It seems that Sonic Pi’s range function always returns floats, even when all the arguments are integers, so using range here will fail. You can work around it by converting the result to an integer like this:
a = (range 0, 4)
live_loop :notes do
sample glocken, a.tick.to_i
sleep 2
end
But that’s not ideal, as you have to remember to do the conversion - it would be nicer if range would return integers when it was given integer parameters.
However, now that I think about it, you don’t really need range here at all, since tick is already counting up, and you could use % to limit how high it gets before it wraps around, so this should do the same thing:
live_loop :notes do
sample glocken, tick % 4
sleep 2
end
Thanks for the helpful tips!
.to_i is what I was looking for, but as you say, there are other, better, ways to do this
Brendan