completed

Why would you dispose a channel if you are going to play more
sounds soon? If you are trying to write a game, you shouldn't
be using SndPlay. Instead, make a channel and use BufferCmds
to play sounds on it. It works great. You can add CallBacks to
the channel also to let you know when the channel is getting
empty. Before it gets empty.

7.1,

Callbacks are very reliable, I found them 100% reliable, even
under System 4.1. I was doing continuous background sound with
interrupting sound effects on System 6.0 with the IM-V
documentation.

You probably were cancelling your callback commands out of
your channels, of course you didn't get called. In general, if
you have problems with sounds working when you play one per
channel and then close the channel (with the related
slowdown), but then when you play more than one you don't
work, then you are adding more than one synthesizer to a
channel, possibly the same one multiple times. This might be
because you are calling SndPlay on a preexisting channel with
a sound resource which adds the sampled sound synthesizer to
the channel first thing before it plays. Most sampled sounds
have this command at the start of them. You need to resedit
the sound and remove that command, then when you create your
channel, specify the sampled sound synthesizer to be the
channel's synth. Then you can use asynch sndplay's all you
want. You'll probably want to switch to BufferCmd's, since you
are going to have to use SndDoCommand anyway to add callbacks.

Now before you go ahead and tell me I am full of it, and the
sound manager doesn't work for games, remember, Spectre uses
it. And it works great. If Spectre can spare the CPU time, you
can too.

One little disclaimer: There are some out there who say the
Sound Manager in the IIsi can't be made to work right. I'm not
sure either way, but I know for sure that you can make your
sounds work 100% correctly on every other machine using the
Sound Manager.