Having a rummage around the documentation... I think, for your purposes you will be better suited using a TBassSample.
You can call the function :
TBassSample.SampleMemLoad(mem:Byte Ptr, length:Int, maxPlaybacks:Int, flags:Int)
or
New TBassSample.MemLoad(mem:Byte Ptr, length:Int, maxPlaybacks:Int, flags:Int)
maxPlaybacks parameter is
Maximum number of simultaneous playbacks... 1 (min) - 65535 (max). Use one of the BASS_SAMPLE_OVER flags to choose the override decider, in the case of there being no free channel available for playback (ie. the sample is already playing max times).
You can then use GetChannel() on the sample every time you want to generate that sound, and channel.Play() it. BASS will allocate channels on the fly for you.
Yes, I really need to sort out the documentation, as there is a lot I haven't done yet.
Let BASS manage channels for you :-)
(unless you have reasons not to!)