I don't think you should be using loadsound each time you fire.
An attempt to answer some questions (some guessing going on here)...
1) The variables out of scope but 'play' has automatically created a TChannel which still exists.
2) Destroy method could check whether the channel is playing and stop using stopchannel.
3) Setpan, SetDepth *and* Setvolume. There's an example in the docs.
4) Don't think there's a limit as each channel is an TChannel Object. I guess, once these are out of scope, flushmem will remove them.
<edit> I reserve the right to be very wrong
An attempt to answer some questions (some guessing going on here)...
1) The variables out of scope but 'play' has automatically created a TChannel which still exists.
2) Destroy method could check whether the channel is playing and stop using stopchannel.
3) Setpan, SetDepth *and* Setvolume. There's an example in the docs.
4) Don't think there's a limit as each channel is an TChannel Object. I guess, once these are out of scope, flushmem will remove them.
<edit> I reserve the right to be very wrong