Hello! I’m Chris from south-west London, retired software developer, keen musician (keyboard, oboe: classical, jazz, rock). I found SPi via a recent episode of the Cool Tools podcast. Hoping to teach it to my 5 grandkids when they’re old enough.
Spi now running on a Win7 workstation; failed to get it to work on my Chromebook, though I would love to sort this out. Also have a RPi 3 Model B on my shelf which I will dust off.
A coding question: Can I retrieve the number of elements in a list? For example, to audition all the synths I’ve written…
loop do
use_synth synth_names[tick]
print look, synth_names[look]
play 60
sleep 1
end
…which works, but repeats ad infinitum. I’d like to do the equivalent of the javascriptesque pseudo-code…
for (let index = 0; index < synth_names.length; ++index) {
use_synth synth_names[index];
print look, synth_names[look];
play 60;
sleep 1;
}
Apologies if the answer is obvious, but I’ve read though the tutorials and not found it.
Here is one possible solution. It will repeat indefinitely until you press stop
live_loop :synthNames do
n=tick%synth_names.length #n will increment with each tick, and start again when all the synths have played
use_synth synth_names.look #picks the next synth name
puts n, synth_names.look #prints n and synth name
play 60
sleep 1
end
EDIT
the number of synths available is synth_names.length
Hi, alternatively, if you wanted to stop after playing all the synths, you could do it this way:
define :audition_synths do
num_of_synths = synth_names.length
num_of_synths.times do
use_synth synth_names.tick
play 60
sleep 1
end
end
audition_synths
By the way Chris, glad to see some fellow retired guys finding the time now to play with stuff that isn’t work. Seems like you got the answers you were looking for and I hope your grandkids have have some fun with Sonic.pi.
That makes me happy to no end! I’m just 62 and coming up on my well-deserved retirement from public service. I’ve been into the tech world for just about forever. Literally since the days of my Timex/Sinclair 1000. I’ve been saying to everyone that will tolerate my pontificating that retired people are itching, and I mean it, to have fun with stuff they couldn’t dive into while work called. At the rate I’m going, I’ll have to install a second mains line into the house just to power it all!
I started out in the '70s with an EMS Synthi A, after turning up unannounced at Peter Zinovieff’s house in Putney with iirc £300 cash to buy it. It was versatile, albeit with no temperature compensation on the oscillators, at least on the early version I had. Eventually someone stole it - I note from Wikipedia it would be quite valuable now!
You could do a lot with the Synthi and a TEAC reel-to-reel recorder. I even got to play with the Synthi 100 at Cardiff University one summer - amazing. Anyway, loving SPi…