This is the expected result acoustically. If you are exactly between two speakers and the same sound is played at the same time, those two sounds will be perceived as a single mono sound. In this case, your thread sleep is delaying the start time of your second sound, causing it to be out of phase with your first sound and creating a more noticeable difference.
Further modifying the symmetry of either channel in any way will prevent this merging effect from occurring. Perhaps randomizing the pitch ever so slightly with Channel::setPitch
would be a good way to ensure some audible distinction between each playing sound. Otherwise, if the player was moving in 3D space while both sounds were playing then each sound would still be perceived as distinct, even if they crossed over the nexus between these two sounds at some point in time.
1 Like