The problem is a bug (introduced in 1.13.0, I think) is causing snd.instrument.new(synth)
to return the synth, not the instrument. You can work around this by doing the old style
instrument[i]=snd.instrument.new()
instrument[i]:addVoice(synth[i])
Thanks for catching this! It's filed and I'll get a fix in the queue as soon as we can get the current backlog flushed out.