No, i was not talking about your sound engine. I mean your engine needs to be thread safe so it's a good idea to use a command queue for that.
It's about the SoundManager class:
Minecraft has an interface (ISound) for all sounds. It contains the location, pitch, volume etc. The SoundManager connects the minecraft way of using sounds with your sound engine. Once a sound will be played, minecraft generates a uuid for it and places it together with the ISound object in a hashmap (Map<String,ISound>). Through this way they can link a given uuid to a sound, but most commonly you would need it the other way round, that's why they are using a reversed hashmap (Map<ISound, string>) a so called HashBiMap (library from google). Those two hashmaps should be equal, but reversed. Sadly this is not the cause, since they will not be synchronized immediately, which causes a tone amount of issues.
I'm currently rewriting my mod AmbientSounds (
https://minecraft.curseforge.com/projects/ambientsounds), which adds some more atmospheric sounds to minecraft. Theoretically it should play a sound, loop it until it will be stopped at some point, but that does not really work since minecraft acts quite strange (stopping sounds for no reason, continues to play the sound from the start every 2 seconds).

So all i have to do know, is to create my own connector to your sound engine and everything should work fine
