don't do this until we're ready to make our own playroutine (#74) because of the waveform slot allocation complexity
the reason: generated wave slots eat into the waveform pool.
2 channels playing the same sfx is actually troublesome... we don't want to duplicate sfx, or force sfx into a pool system, but we can't have them crossing channels because there will always be a scenario that causes glitches.
better idea: use waveform slots a bit like a very simple voice allocator. Not fixed waveform -> channel mapping. Keep a table of waveformIndex -> [sfx, channel].
don't do this until we're ready to make our own playroutine (#74) because of the waveform slot allocation complexity
the reason: generated wave slots eat into the waveform pool.
2 channels playing the same sfx is actually troublesome... we don't want to duplicate sfx, or force sfx into a pool system, but we can't have them crossing channels because there will always be a scenario that causes glitches.
better idea: use waveform slots a bit like a very simple voice allocator. Not fixed waveform -> channel mapping. Keep a table of
waveformIndex -> [sfx, channel].sfx,chan, use it as your "target slot".